SCSI: aic94xx: Remove broken fallback for missing Ctrl-A user settings

svn path=/dists/sid/linux/; revision=21821
This commit is contained in:
Ben Hutchings 2014-09-12 13:38:52 +00:00
parent b705f88f51
commit 0beb6526a3
3 changed files with 59 additions and 0 deletions

1
debian/changelog vendored
View File

@ -56,6 +56,7 @@ linux (3.16.2-3) UNRELEASED; urgency=medium
* [!x86] staging: Enable R8712U, R8188EU as modules (Closes: #742055, #760859)
* i2o: Disable I2O_EXT_ADAPTEC on 64-bit, as it assumes 32-bit virtual
addresses
* SCSI: aic94xx: Remove broken fallback for missing 'Ctrl-A' user settings
[ Ian Campbell ]
* [armel/orion5x] udeb: Include mvmdio in nic-modules udeb.

View File

@ -0,0 +1,57 @@
From: Ben Hutchings <ben@decadent.org.uk>
Date: Sun, 08 Jun 2014 23:37:44 +0100
Subject: [SCSI] aic94xx: Remove broken fallback for missing 'Ctrl-A' user settings
Forwarded: http://mid.gmane.org/1402267064.23860.42.camel@deadeye.wl.decadent.org.uk
asd_process_ctrl_a_user() attempts to find user settings in flash, and
if they are missing it prepares a substitute structure containing
default values for PHY settings. But having done so, it will still
try to read user settings - from some random address in flash, as the
local variable 'offs' has not been initialised.
Since asd_common_setup() already sets default PHY settings, there
seems to be no need to repeat them here, and we can just return 0.
Compile-tested only.
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
---
drivers/scsi/aic94xx/aic94xx_sds.c | 18 ++----------------
1 file changed, 2 insertions(+), 16 deletions(-)
diff --git a/drivers/scsi/aic94xx/aic94xx_sds.c b/drivers/scsi/aic94xx/aic94xx_sds.c
index edb43fd..f5d51d2 100644
--- a/drivers/scsi/aic94xx/aic94xx_sds.c
+++ b/drivers/scsi/aic94xx/aic94xx_sds.c
@@ -981,29 +981,15 @@ static int asd_process_ctrla_phy_settings(struct asd_ha_struct *asd_ha,
static int asd_process_ctrl_a_user(struct asd_ha_struct *asd_ha,
struct asd_flash_dir *flash_dir)
{
- int err, i;
+ int err;
u32 offs, size;
struct asd_ll_el *el;
struct asd_ctrla_phy_settings *ps;
- struct asd_ctrla_phy_settings dflt_ps;
err = asd_find_flash_de(flash_dir, FLASH_DE_CTRL_A_USER, &offs, &size);
if (err) {
ASD_DPRINTK("couldn't find CTRL-A user settings section\n");
- ASD_DPRINTK("Creating default CTRL-A user settings section\n");
-
- dflt_ps.id0 = 'h';
- dflt_ps.num_phys = 8;
- for (i =0; i < ASD_MAX_PHYS; i++) {
- memcpy(dflt_ps.phy_ent[i].sas_addr,
- asd_ha->hw_prof.sas_addr, SAS_ADDR_SIZE);
- dflt_ps.phy_ent[i].sas_link_rates = 0x98;
- dflt_ps.phy_ent[i].flags = 0x0;
- dflt_ps.phy_ent[i].sata_link_rates = 0x0;
- }
-
- size = sizeof(struct asd_ctrla_phy_settings);
- ps = &dflt_ps;
+ return 0;
}
if (size == 0)

View File

@ -111,3 +111,4 @@ features/x86/x86-make-x32-syscall-support-conditional.patch
features/all/virtio-scsi-Implement-change_queue_depth-for-virtscs.patch
debian/revert-staging-sm7xxfb-remove-driver.patch
debian/i2o-disable-i2o_ext_adaptec-on-64bit.patch
bugfix/all/aic94xx-remove-broken-fallback-for-missing-ctrl-a.patch