[PATCH] enum safety (sata_qstor)
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>
This commit is contained in:
parent
b181d3b012
commit
0420dd121d
@ -51,8 +51,6 @@ enum {
|
|||||||
QS_PRD_BYTES = QS_MAX_PRD * 16,
|
QS_PRD_BYTES = QS_MAX_PRD * 16,
|
||||||
QS_PKT_BYTES = QS_CPB_BYTES + QS_PRD_BYTES,
|
QS_PKT_BYTES = QS_CPB_BYTES + QS_PRD_BYTES,
|
||||||
|
|
||||||
QS_DMA_BOUNDARY = ~0UL,
|
|
||||||
|
|
||||||
/* global register offsets */
|
/* global register offsets */
|
||||||
QS_HCF_CNFG3 = 0x0003, /* host configuration offset */
|
QS_HCF_CNFG3 = 0x0003, /* host configuration offset */
|
||||||
QS_HID_HPHY = 0x0004, /* host physical interface info */
|
QS_HID_HPHY = 0x0004, /* host physical interface info */
|
||||||
@ -101,6 +99,10 @@ enum {
|
|||||||
board_2068_idx = 0, /* QStor 4-port SATA/RAID */
|
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;
|
typedef enum { qs_state_idle, qs_state_pkt, qs_state_mmio } qs_state_t;
|
||||||
|
|
||||||
struct qs_port_priv {
|
struct qs_port_priv {
|
||||||
|
Loading…
Reference in New Issue
Block a user