Commit 770b0ffe authored by Linus Torvalds's avatar Linus Torvalds
Browse files
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
parents 6a2fcc51 4f9eedfa
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -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;
	}
		
+1 −1
Original line number Diff line number Diff line
@@ -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) +
+7 −5
Original line number Diff line number Diff line
@@ -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;
		}