Paul, Could you also share the panic info? Thanks. Jack > We encountered panic during stress tesing on our platform, > due to unaligned data access in the mvsas driver. > > > Signed-off-by: Paul Guo <ggang@xxxxxxxxxx> > --- > drivers/scsi/mvsas/mv_sas.c | 5 +++-- > drivers/scsi/mvsas/mv_sas.h | 1 + > 2 files changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/scsi/mvsas/mv_sas.c b/drivers/scsi/mvsas/mv_sas.c > index fd3b283..be4989e 100644 > --- a/drivers/scsi/mvsas/mv_sas.c > +++ b/drivers/scsi/mvsas/mv_sas.c > @@ -1852,10 +1852,11 @@ int mvs_slot_complete(struct mvs_info *mvi, u32 > rx_desc, u32 flags) > } > > /* error info record present */ > - if (unlikely((rx_desc & RXQ_ERR) && (*(u64 *) slot->response))) { > + if (unlikely((rx_desc & RXQ_ERR) && > + get_unaligned_le64((u64 *) slot->response))) { > mv_dprintk("port %d slot %d rx_desc %X has error info" > "%016llX.\n", slot->port->sas_port.id, slot_idx, > - rx_desc, (u64)(*(u64 *)slot->response)); > + rx_desc, get_unaligned_le64((u64 *)slot->response)); > tstat->stat = mvs_slot_err(mvi, task, slot_idx); > tstat->resp = SAS_TASK_COMPLETE; > goto out; > diff --git a/drivers/scsi/mvsas/mv_sas.h b/drivers/scsi/mvsas/mv_sas.h > index c04a4f5..1bc093a 100644 > --- a/drivers/scsi/mvsas/mv_sas.h > +++ b/drivers/scsi/mvsas/mv_sas.h > @@ -39,6 +39,7 @@ > #include <linux/irq.h> > #include <linux/slab.h> > #include <linux/vmalloc.h> > +#include <asm/unaligned.h> > #include <scsi/libsas.h> > #include <scsi/scsi.h> > #include <scsi/scsi_tcq.h> > -- > 1.7.10.3 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-scsi" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html