aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/libata.h
diff options
context:
space:
mode:
authorSergey Shtylyov <s.shtylyov@omp.ru>2022-04-09 22:13:56 +0300
committerDamien Le Moal <damien.lemoal@opensource.wdc.com>2022-04-12 09:35:04 +0900
commita28c1ab312712c26a8d004af1f68628d625dafac (patch)
tree11a5c5c0f62901c509c4843b627edb5291463a42 /include/linux/libata.h
parentlibata: Improve ATA queued command allocation (diff)
downloadlinux-dev-a28c1ab312712c26a8d004af1f68628d625dafac.tar.xz
linux-dev-a28c1ab312712c26a8d004af1f68628d625dafac.zip
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>
Diffstat (limited to 'include/linux/libata.h')
-rw-r--r--include/linux/libata.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/include/linux/libata.h b/include/linux/libata.h
index 16107122e587..732de9014626 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -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);