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

Commit 2fadd831 authored by Mike Marciniszyn's avatar Mike Marciniszyn Committed by Roland Dreier
Browse files

IB/qib: Fix txselect regression



Commit 7fac3301("IB/qib: checkpatch fixes") was overzealous in
removing a simple_strtoul for a parse routine, setup_txselect().  That
routine is required to handle a multi-value string.

Unwind that aspect of the fix.

Cc: <stable@vger.kernel.org>
Signed-off-by: default avatarMike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: default avatarRoland Dreier <roland@purestorage.com>
parent 78a58864
Loading
Loading
Loading
Loading
+5 −6
Original line number Diff line number Diff line
@@ -6190,21 +6190,20 @@ static int setup_txselect(const char *str, struct kernel_param *kp)
{
	struct qib_devdata *dd;
	unsigned long val;
	int ret;

	char *n;
	if (strlen(str) >= MAX_ATTEN_LEN) {
		pr_info("txselect_values string too long\n");
		return -ENOSPC;
	}
	ret = kstrtoul(str, 0, &val);
	if (ret || val >= (TXDDS_TABLE_SZ + TXDDS_EXTRA_SZ +
	val = simple_strtoul(str, &n, 0);
	if (n == str || val >= (TXDDS_TABLE_SZ + TXDDS_EXTRA_SZ +
				TXDDS_MFG_SZ)) {
		pr_info("txselect_values must start with a number < %d\n",
			TXDDS_TABLE_SZ + TXDDS_EXTRA_SZ + TXDDS_MFG_SZ);
		return ret ? ret : -EINVAL;
		return -EINVAL;
	}

	strcpy(txselect_list, str);

	list_for_each_entry(dd, &qib_dev_list, list)
		if (dd->deviceid == PCI_DEVICE_ID_QLOGIC_IB_7322)
			set_no_qsfp_atten(dd, 1);