From: Allen Pais Date: Wed, 29 Mar 2017 08:51:58 +0000 (+0530) Subject: megaraid: Fix unaligned warning X-Git-Tag: v4.1.12-98.0.20170517_2143~37^2 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=c4f18c64a5b4a05df7255204a9e88977acbf7e8d;p=users%2Fjedix%2Flinux-maple.git megaraid: Fix unaligned warning The MegaRAID userland descriptor structures do not properly align pointers on their natural boundaries. This causes warnings to be issued when storcli or the SNMP daemon are in use. Quiesce the warning until the user-kernel interface has been fixed. Orabug: 24817799 Signed-off-by: Kashyap Desai Signed-off-by: Martin K. Petersen (cherry picked from commit 069af368ac74dc0130f91836b9f85f7cd5b18749) Signed-off-by: Martin K. Petersen Signed-off-by: Allen Pais --- diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c b/drivers/scsi/megaraid/megaraid_sas_base.c index 890637fdd61e3..99195a6312f52 100644 --- a/drivers/scsi/megaraid/megaraid_sas_base.c +++ b/drivers/scsi/megaraid/megaraid_sas_base.c @@ -43,6 +43,7 @@ #include #include #include +#include #include #include #include @@ -6178,7 +6179,8 @@ megasas_mgmt_fw_ioctl(struct megasas_instance *instance, sense_ptr = (unsigned long *) ((unsigned long)ioc->frame.raw + ioc->sense_off); - if (copy_to_user((void __user *)((unsigned long)(*sense_ptr)), + unsigned long tmp = get_unaligned((unsigned long *) sense_ptr); + if (copy_to_user((void __user *)((unsigned long)tmp), sense, ioc->sense_len)) { printk(KERN_ERR "megasas: Failed to copy out to user " "sense data\n");