The failure initially observed as boot failure on rx3600 ia64 machine with RAID bus controller: Hewlett-Packard Company Smart Array P600: kernel unaligned access to 0xe000000105dd8b95, ip=0xa000000100b87551 kernel unaligned access to 0xe000000105dd8e95, ip=0xa000000100b87551 hpsa 0000:14:01.0: Controller reports max supported commands of 0 Using 16 instead. Ensure that firmware is up to date. swapper/0[1]: error during unaligned kernel access Here unaligned access comes from 'struct CommandList' that happens to be packed. The change f749d8b7a ("scsi: hpsa: Correct dev cmds outstanding for retried cmds") introduced unexpected padding and un-aligned atomic_t from natural alignment to something else. This change removes packing annotation from struct not intended to be sent to controller as is. This restores natural `atomic_t` alignment. The change is tested on the same rx3600 machine. CC: linux-ia64@xxxxxxxxxxxxxxx CC: linux-kernel@xxxxxxxxxxxxxxx CC: storagedev@xxxxxxxxxxxxx CC: linux-scsi@xxxxxxxxxxxxxxx CC: Joe Szczypek <jszczype@xxxxxxxxxx> CC: Scott Benesh <scott.benesh@xxxxxxxxxxxxx> CC: Scott Teel <scott.teel@xxxxxxxxxxxxx> CC: Tomas Henzl <thenzl@xxxxxxxxxx> CC: "Martin K. Petersen" <martin.petersen@xxxxxxxxxx> CC: Don Brace <don.brace@xxxxxxxxxxxxx> Reported-by: John Paul Adrian Glaubitz <glaubitz@xxxxxxxxxxxxxxxxxxx> Suggested-by: Don Brace <don.brace@xxxxxxxxxxxxx> Fixes: f749d8b7a "scsi: hpsa: Correct dev cmds outstanding for retried cmds" Signed-off-by: Sergei Trofimovich <slyfox@xxxxxxxxxx> --- drivers/scsi/hpsa_cmd.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/scsi/hpsa_cmd.h b/drivers/scsi/hpsa_cmd.h index 280e933d27e7..885b1f1fb20a 100644 --- a/drivers/scsi/hpsa_cmd.h +++ b/drivers/scsi/hpsa_cmd.h @@ -452,7 +452,7 @@ struct CommandList { bool retry_pending; struct hpsa_scsi_dev_t *device; atomic_t refcount; /* Must be last to avoid memset in hpsa_cmd_init() */ -} __packed __aligned(COMMANDLIST_ALIGNMENT); +} __aligned(COMMANDLIST_ALIGNMENT); /* Max S/G elements in I/O accelerator command */ #define IOACCEL1_MAXSGENTRIES 24 -- 2.31.1