libata: Use integer return value for atapi_command_packet_set
authorShan Hai <shan.hai@windriver.com>
Mon, 18 Mar 2013 02:30:43 +0000 (10:30 +0800)
committerBen Hutchings <ben@decadent.org.uk>
Thu, 25 Apr 2013 19:25:31 +0000 (20:25 +0100)
commit d8668fcb0b257d9fdcfbe5c172a99b8d85e1cd82 upstream.

The function returns type of ATAPI drives so it should return integer value.
The commit 4dce8ba94c7 (libata: Use 'bool' return value for ata_id_XXX) since
v2.6.39 changed the type of return value from int to bool, the change would
cause all of the ATAPI class drives to be treated as TYPE_TAPE and the
max_sectors of the drives to be set to 65535 because of the commit
f8d8e5799b7(libata: increase 128 KB / cmd limit for ATAPI tape drives), for the
function would return true for all ATAPI class drives and the TYPE_TAPE is
defined as 0x01.

Signed-off-by: Shan Hai <shan.hai@windriver.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
include/linux/ata.h

index 32df2b6..5856c9e 100644 (file)
@@ -937,7 +937,7 @@ static inline int atapi_cdb_len(const u16 *dev_id)
        }
 }
 
        }
 }
 
-static inline bool atapi_command_packet_set(const u16 *dev_id)
+static inline int atapi_command_packet_set(const u16 *dev_id)
 {
        return (dev_id[ATA_ID_CONFIG] >> 8) & 0x1f;
 }
 {
        return (dev_id[ATA_ID_CONFIG] >> 8) & 0x1f;
 }