Commit a7faf81d authored by Anand Lodnoor's avatar Anand Lodnoor Committed by Martin K. Petersen
Browse files

scsi: megaraid_sas: Set no_write_same only for Virtual Disk

Disable WRITE_SAME (no_write_same) for Virtual Disks only.  For System PDs
and EPDs (Enhanced PDs), WRITE_SAME need not be disabled by default.

Link: https://lore.kernel.org/r/1579000882-20246-3-git-send-email-anand.lodnoor@broadcom.com


Signed-off-by: default avatarAnand Lodnoor <anand.lodnoor@broadcom.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 499e7246
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -1887,6 +1887,10 @@ void megasas_set_dynamic_target_properties(struct scsi_device *sdev,

		mr_device_priv_data->is_tm_capable =
			raid->capability.tmCapable;

		if (!raid->flags.isEPD)
			sdev->no_write_same = 1;

	} else if (instance->use_seqnum_jbod_fp) {
		pd_index = (sdev->channel * MEGASAS_MAX_DEV_PER_CHANNEL) +
			sdev->id;
@@ -3416,7 +3420,6 @@ static struct scsi_host_template megasas_template = {
	.bios_param = megasas_bios_param,
	.change_queue_depth = scsi_change_queue_depth,
	.max_segment_size = 0xffffffff,
	.no_write_same = 1,
};

/**
+14 −3
Original line number Diff line number Diff line
@@ -865,8 +865,19 @@ struct MR_LD_RAID {
	__le16     seqNum;

struct {
#ifndef MFI_BIG_ENDIAN
	u32 ldSyncRequired:1;
	u32 regTypeReqOnReadIsValid:1;
	u32 isEPD:1;
	u32 enableSLDOnAllRWIOs:1;
	u32 reserved:28;
#else
	u32 reserved:28;
	u32 enableSLDOnAllRWIOs:1;
	u32 isEPD:1;
	u32 regTypeReqOnReadIsValid:1;
	u32 ldSyncRequired:1;
		u32 reserved:31;
#endif
	} flags;

	u8	LUN[8]; /* 0x24 8 byte LUN field used for SCSI IO's */