ata: libata-core: fix parameter type in ata_xfer_mode2shift()
The data transfer mode that corresponds to the 'xfer_mode' parameter for ata_xfer_mode2shift() is a 8-bit *unsigned* value. Using *unsigned long* to declare the parameter leads to a problematic implicit *int* to *unsigned long* cast and was most probably a result of a copy/paste mistake -- use the 'u8' type instead, as in ata_xfer_mode2mask()... Found by Linux Verification Center (linuxtesting.org) with the SVACE static analysis tool. Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru> Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
This commit is contained in:
Родитель
4f1a22ee7b
Коммит
a28c1ab312
|
@ -898,7 +898,7 @@ EXPORT_SYMBOL_GPL(ata_xfer_mode2mask);
|
|||
* RETURNS:
|
||||
* Matching xfer_shift, -1 if no match found.
|
||||
*/
|
||||
int ata_xfer_mode2shift(unsigned long xfer_mode)
|
||||
int ata_xfer_mode2shift(u8 xfer_mode)
|
||||
{
|
||||
const struct ata_xfer_ent *ent;
|
||||
|
||||
|
|
|
@ -1110,7 +1110,7 @@ extern void ata_unpack_xfermask(unsigned long xfer_mask,
|
|||
unsigned long *udma_mask);
|
||||
extern u8 ata_xfer_mask2mode(unsigned long xfer_mask);
|
||||
extern unsigned long ata_xfer_mode2mask(u8 xfer_mode);
|
||||
extern int ata_xfer_mode2shift(unsigned long xfer_mode);
|
||||
extern int ata_xfer_mode2shift(u8 xfer_mode);
|
||||
extern const char *ata_mode_string(unsigned long xfer_mask);
|
||||
extern unsigned long ata_id_xfermask(const u16 *id);
|
||||
extern int ata_std_qc_defer(struct ata_queued_cmd *qc);
|
||||
|
|
Загрузка…
Ссылка в новой задаче