• Sergey Shtylyov's avatar
    ata: libata-scsi: fix result type of ata_ioc32() · 0184898d
    Sergey Shtylyov authored
    While ata_ioc32() returns 'int', its result gets assigned to and compared
    with the 'unsigned long' variable 'val' in ata_sas_scsi_ioctl(), its only
    caller, which implies a problematic implicit cast (with sign extension).
    Fix this by returning 'bool' instead -- the implicit cast then implies
    zero extension which is OK.  Note that actually the object code doesn't
    change because ata_ioc32() is always inlined -- I can see the expected
    code changes with 'noinline'...
    
    Found by Linux Verification Center (linuxtesting.org) with the SVACE
    static analysis tool.
    Signed-off-by: default avatarSergey Shtylyov <s.shtylyov@omp.ru>
    Signed-off-by: default avatarDamien Le Moal <damien.lemoal@opensource.wdc.com>
    0184898d
libata-scsi.c 113 KB