浏览代码

ahci: Fix gcc 4.4 compiler warning

ahci.c: In function 'ata_scsiop_read_capacity10':
ahci.c:616: warning: dereferencing type-punned pointer will break strict-aliasing rules

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Kumar Gala 16 年之前
父节点
当前提交
cb6d0b72c2
共有 1 个文件被更改,包括 6 次插入8 次删除
  1. 6 8
      drivers/block/ahci.c

+ 6 - 8
drivers/block/ahci.c

@@ -602,7 +602,7 @@ static int ata_scsiop_read10(ccb * pccb)
  */
 static int ata_scsiop_read_capacity10(ccb *pccb)
 {
-	u8 buf[8];
+	u32 cap;
 
 	if (!ataid[pccb->target]) {
 		printf("scsi_ahci: SCSI READ CAPACITY10 command failure. "
@@ -611,14 +611,12 @@ static int ata_scsiop_read_capacity10(ccb *pccb)
 		return -EPERM;
 	}
 
-	memset(buf, 0, 8);
+	cap = le32_to_cpu(ataid[pccb->target]->lba_capacity);
+	memcpy(pccb->pdata, &cap, sizeof(cap));
 
-	*(u32 *) buf = le32_to_cpu(ataid[pccb->target]->lba_capacity);
-
-	buf[6] = 512 >> 8;
-	buf[7] = 512 & 0xff;
-
-	memcpy(pccb->pdata, buf, 8);
+	pccb->pdata[4] = pccb->pdata[5] = 0;
+	pccb->pdata[6] = 512 >> 8;
+	pccb->pdata[7] = 512 & 0xff;
 
 	return 0;
 }