SCSI fixes on 20240831
Minor fixes only. The sd.c one ignores a sync cache request if format is in progress which can happen if formatting a drive across suspend/resume. Signed-off-by: James E.J. Bottomley <James.Bottomley@HansenPartnership.com> -----BEGIN PGP SIGNATURE----- iJwEABMIAEQWIQTnYEDbdso9F2cI+arnQslM7pishQUCZtM61CYcamFtZXMuYm90 dG9tbGV5QGhhbnNlbnBhcnRuZXJzaGlwLmNvbQAKCRDnQslM7pishZ+yAQDz47pp ZEr9bOMueiIYs+ZpmK1KRBHviFApXr9JJGzoHAD/WsUN43+5+y12QhGWSA0/M4qo Tog2K3HXvb4kIsDoXEg= =n2gm -----END PGP SIGNATURE----- Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi Pull SCSI fixes from James Bottomley: "Minor fixes only. The sd.c one ignores a sync cache request if format is in progress which can happen if formatting a drive across suspend/resume" * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: scsi: sd: Ignore command SYNCHRONIZE CACHE error if format in progress scsi: aacraid: Fix double-free on probe failure scsi: lpfc: Fix overflow build issue
This commit is contained in:
commit
770b0ffe28
@ -642,6 +642,7 @@ struct aac_dev *aac_init_adapter(struct aac_dev *dev)
|
||||
|
||||
if (aac_comm_init(dev)<0){
|
||||
kfree(dev->queues);
|
||||
dev->queues = NULL;
|
||||
return NULL;
|
||||
}
|
||||
/*
|
||||
@ -649,6 +650,7 @@ struct aac_dev *aac_init_adapter(struct aac_dev *dev)
|
||||
*/
|
||||
if (aac_fib_setup(dev) < 0) {
|
||||
kfree(dev->queues);
|
||||
dev->queues = NULL;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -5410,7 +5410,7 @@ lpfc_get_cgnbuf_info(struct bsg_job *job)
|
||||
struct get_cgnbuf_info_req *cgnbuf_req;
|
||||
struct lpfc_cgn_info *cp;
|
||||
uint8_t *cgn_buff;
|
||||
int size, cinfosz;
|
||||
size_t size, cinfosz;
|
||||
int rc = 0;
|
||||
|
||||
if (job->request_len < sizeof(struct fc_bsg_request) +
|
||||
|
@ -1823,13 +1823,15 @@ static int sd_sync_cache(struct scsi_disk *sdkp)
|
||||
(sshdr.asc == 0x74 && sshdr.ascq == 0x71)) /* drive is password locked */
|
||||
/* this is no error here */
|
||||
return 0;
|
||||
|
||||
/*
|
||||
* This drive doesn't support sync and there's not much
|
||||
* we can do because this is called during shutdown
|
||||
* or suspend so just return success so those operations
|
||||
* can proceed.
|
||||
* If a format is in progress or if the drive does not
|
||||
* support sync, there is not much we can do because
|
||||
* this is called during shutdown or suspend so just
|
||||
* return success so those operations can proceed.
|
||||
*/
|
||||
if (sshdr.sense_key == ILLEGAL_REQUEST)
|
||||
if ((sshdr.asc == 0x04 && sshdr.ascq == 0x04) ||
|
||||
sshdr.sense_key == ILLEGAL_REQUEST)
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user