[PATCH] enum safety (sata_qstor)
authorAl Viro <viro@ftp.linux.org.uk>
Fri, 21 Oct 2005 05:46:02 +0000 (06:46 +0100)
committerJeff Garzik <jgarzik@pobox.com>
Fri, 21 Oct 2005 06:05:31 +0000 (02:05 -0400)
sata_qstor strays into a nasty area - gcc handling of wide enums is
full of bugs that got fixed between gcc versions creating portability
nightmare.  Single-member enums are safe, so are ones that stay within
the range of int or unsigned int.  Anything beyond that is asking for
trouble.

Declaration of constants split in two enums, taking the ~0UL one into
a separate enum.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
drivers/scsi/sata_qstor.c

index ffcdeb68641cf5a2493abf7be5b68b1da32f329c..e1c1dae27c522970eefb541e9a66a1b994896de0 100644 (file)
@@ -51,8 +51,6 @@ enum {
        QS_PRD_BYTES            = QS_MAX_PRD * 16,
        QS_PKT_BYTES            = QS_CPB_BYTES + QS_PRD_BYTES,
 
-       QS_DMA_BOUNDARY         = ~0UL,
-
        /* global register offsets */
        QS_HCF_CNFG3            = 0x0003, /* host configuration offset */
        QS_HID_HPHY             = 0x0004, /* host physical interface info */
@@ -101,6 +99,10 @@ enum {
        board_2068_idx          = 0,    /* QStor 4-port SATA/RAID */
 };
 
+enum {
+       QS_DMA_BOUNDARY         = ~0UL
+};
+
 typedef enum { qs_state_idle, qs_state_pkt, qs_state_mmio } qs_state_t;
 
 struct qs_port_priv {