Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 55652400 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull SCSI fixes from James Bottomley:
 "Six minor and error leg fixes, plus one major change: the reversion of
  scsi-mq as the default.

  We're doing the latter temporarily (with a backport to stable) to give
  us time to fix all the issues that turned up with this default before
  trying again"

* tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
  scsi: cxgb4i: call neigh_event_send() to update MAC address
  Revert "scsi: default to scsi-mq"
  scsi: sd_zbc: Write unlock zone from sd_uninit_cmnd()
  scsi: aacraid: Fix out of bounds in aac_get_name_resp
  scsi: csiostor: fail probe if fw does not support FCoE
  scsi: megaraid_sas: fix error handle in megasas_probe_one
parents 98b9f8a4 71eb2ac5
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -47,6 +47,17 @@ config SCSI_NETLINK
	default	n
	depends on NET

config SCSI_MQ_DEFAULT
	bool "SCSI: use blk-mq I/O path by default"
	depends on SCSI
	---help---
	  This option enables the new blk-mq based I/O path for SCSI
	  devices by default.  With the option the scsi_mod.use_blk_mq
	  module/boot option defaults to Y, without it to N, but it can
	  still be overridden either way.

	  If unsure say N.

config SCSI_PROC_FS
	bool "legacy /proc/scsi/ support"
	depends on SCSI && PROC_FS
+7 −2
Original line number Diff line number Diff line
@@ -549,7 +549,9 @@ static void get_container_name_callback(void *context, struct fib * fibptr)
	if ((le32_to_cpu(get_name_reply->status) == CT_OK)
	 && (get_name_reply->data[0] != '\0')) {
		char *sp = get_name_reply->data;
		sp[sizeof(((struct aac_get_name_resp *)NULL)->data)] = '\0';
		int data_size = FIELD_SIZEOF(struct aac_get_name_resp, data);

		sp[data_size - 1] = '\0';
		while (*sp == ' ')
			++sp;
		if (*sp) {
@@ -579,12 +581,15 @@ static void get_container_name_callback(void *context, struct fib * fibptr)
static int aac_get_container_name(struct scsi_cmnd * scsicmd)
{
	int status;
	int data_size;
	struct aac_get_name *dinfo;
	struct fib * cmd_fibcontext;
	struct aac_dev * dev;

	dev = (struct aac_dev *)scsicmd->device->host->hostdata;

	data_size = FIELD_SIZEOF(struct aac_get_name_resp, data);

	cmd_fibcontext = aac_fib_alloc_tag(dev, scsicmd);

	aac_fib_init(cmd_fibcontext);
@@ -593,7 +598,7 @@ static int aac_get_container_name(struct scsi_cmnd * scsicmd)
	dinfo->command = cpu_to_le32(VM_ContainerConfig);
	dinfo->type = cpu_to_le32(CT_READ_NAME);
	dinfo->cid = cpu_to_le32(scmd_id(scsicmd));
	dinfo->count = cpu_to_le32(sizeof(((struct aac_get_name_resp *)NULL)->data));
	dinfo->count = cpu_to_le32(data_size - 1);

	status = aac_fib_send(ContainerCommand,
		  cmd_fibcontext,
+1 −1
Original line number Diff line number Diff line
@@ -2274,7 +2274,7 @@ struct aac_get_name_resp {
	__le32		parm3;
	__le32		parm4;
	__le32		parm5;
	u8		data[16];
	u8		data[17];
};

#define CT_CID_TO_32BITS_UID 165
+3 −1
Original line number Diff line number Diff line
@@ -3845,8 +3845,10 @@ csio_hw_start(struct csio_hw *hw)

	if (csio_is_hw_ready(hw))
		return 0;
	else
	else if (csio_match_state(hw, csio_hws_uninit))
		return -EINVAL;
	else
		return -ENODEV;
}

int
+8 −4
Original line number Diff line number Diff line
@@ -969,11 +969,15 @@ static int csio_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)

	pci_set_drvdata(pdev, hw);

	if (csio_hw_start(hw) != 0) {
	rv = csio_hw_start(hw);
	if (rv) {
		if (rv == -EINVAL) {
			dev_err(&pdev->dev,
				"Failed to start FW, continuing in debug mode.\n");
			return 0;
		}
		goto err_lnode_exit;
	}

	sprintf(hw->fwrev_str, "%u.%u.%u.%u\n",
		    FW_HDR_FW_VER_MAJOR_G(hw->fwrev),
Loading