diff options
Diffstat (limited to 'drivers/scsi/advansys.c')
| -rw-r--r-- | drivers/scsi/advansys.c | 8 | 
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/scsi/advansys.c b/drivers/scsi/advansys.c index 22626abdb63..9201afe6560 100644 --- a/drivers/scsi/advansys.c +++ b/drivers/scsi/advansys.c @@ -4781,12 +4781,14 @@ static ushort AscInitAsc1000Driver(ASC_DVC_VAR *asc_dvc)  	if (err) {  		printk(KERN_ERR "Failed to load image \"%s\" err %d\n",  		       fwname, err); +		asc_dvc->err_code |= ASC_IERR_MCODE_CHKSUM;  		return err;  	}  	if (fw->size < 4) {  		printk(KERN_ERR "Bogus length %zu in image \"%s\"\n",  		       fw->size, fwname);  		release_firmware(fw); +		asc_dvc->err_code |= ASC_IERR_MCODE_CHKSUM;  		return -EINVAL;  	}  	chksum = (fw->data[3] << 24) | (fw->data[2] << 16) | @@ -5110,12 +5112,14 @@ static int AdvInitAsc3550Driver(ADV_DVC_VAR *asc_dvc)  	if (err) {  		printk(KERN_ERR "Failed to load image \"%s\" err %d\n",  		       fwname, err); +		asc_dvc->err_code = ASC_IERR_MCODE_CHKSUM;  		return err;  	}  	if (fw->size < 4) {  		printk(KERN_ERR "Bogus length %zu in image \"%s\"\n",  		       fw->size, fwname);  		release_firmware(fw); +		asc_dvc->err_code = ASC_IERR_MCODE_CHKSUM;  		return -EINVAL;  	}  	chksum = (fw->data[3] << 24) | (fw->data[2] << 16) | @@ -5624,12 +5628,14 @@ static int AdvInitAsc38C0800Driver(ADV_DVC_VAR *asc_dvc)  	if (err) {  		printk(KERN_ERR "Failed to load image \"%s\" err %d\n",  		       fwname, err); +		asc_dvc->err_code = ASC_IERR_MCODE_CHKSUM;  		return err;  	}  	if (fw->size < 4) {  		printk(KERN_ERR "Bogus length %zu in image \"%s\"\n",  		       fw->size, fwname);  		release_firmware(fw); +		asc_dvc->err_code = ASC_IERR_MCODE_CHKSUM;  		return -EINVAL;  	}  	chksum = (fw->data[3] << 24) | (fw->data[2] << 16) | @@ -6124,12 +6130,14 @@ static int AdvInitAsc38C1600Driver(ADV_DVC_VAR *asc_dvc)  	if (err) {  		printk(KERN_ERR "Failed to load image \"%s\" err %d\n",  		       fwname, err); +		asc_dvc->err_code = ASC_IERR_MCODE_CHKSUM;  		return err;  	}  	if (fw->size < 4) {  		printk(KERN_ERR "Bogus length %zu in image \"%s\"\n",  		       fw->size, fwname);  		release_firmware(fw); +		asc_dvc->err_code = ASC_IERR_MCODE_CHKSUM;  		return -EINVAL;  	}  	chksum = (fw->data[3] << 24) | (fw->data[2] << 16) |  |