disable packing of the TAG_TW_Device_Extension
structure to prevent kernel unaligned accesses when
accessing the spinlock inside the ioctl_wqueue structure.
Fixes smartmontools kernel panic on alpha SMP

Signed-off-by: Gabriele Gorla <[EMAIL PROTECTED]>
---

--- linux-2.6.23/drivers/scsi/3w-xxxx.h 2007-10-09 13:31:38.000000000 -0700
+++ linux-2.6.23a/drivers/scsi/3w-xxxx.h 2007-12-06 17:46:05.000000000 -0800
@@ -392,6 +392,8 @@
        unsigned char padding[12];
 } TW_Passthru;

+#pragma pack()
+
 typedef struct TAG_TW_Device_Extension {
        u32             base_addr;
        unsigned long           *alignment_virtual_address[TW_Q_LENGTH];
@@ -430,6 +432,4 @@
        wait_queue_head_t       ioctl_wqueue;
 } TW_Device_Extension;

-#pragma pack()
-
 #endif /* _3W_XXXX_H */


-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to