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

Commit 9bd0859a authored by K. Y. Srinivasan's avatar K. Y. Srinivasan Committed by Greg Kroah-Hartman
Browse files

Staging: hv: Simplify blkvsc_init_rw()



Simplyfify blkvsc_init_rw() by using a single scsi command independent of
the start sector.

Signed-off-by: default avatarK. Y. Srinivasan <kys@microsoft.com>
Signed-off-by: default avatarHaiyang Zhang <haiyangz@microsoft.com>
Signed-off-by: default avatarHank Janssen <hjanssen@microsoft.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 3880914a
Loading
Loading
Loading
Loading
+13 −45
Original line number Diff line number Diff line
@@ -305,7 +305,6 @@ static void blkvsc_init_rw(struct blkvsc_request *blkvsc_req)

	blkvsc_req->cmd_len = 16;

	if (blkvsc_req->sector_start > 0xffffffff) {
	if (rq_data_dir(blkvsc_req->req)) {
		blkvsc_req->write = 1;
		blkvsc_req->cmnd[0] = WRITE_16;
@@ -321,37 +320,6 @@ static void blkvsc_init_rw(struct blkvsc_request *blkvsc_req)
	cpu_to_be64(blkvsc_req->sector_start);
	*(unsigned int *)&blkvsc_req->cmnd[10] =
	cpu_to_be32(blkvsc_req->sector_count);
	} else if ((blkvsc_req->sector_count > 0xff) ||
		   (blkvsc_req->sector_start > 0x1fffff)) {
		if (rq_data_dir(blkvsc_req->req)) {
			blkvsc_req->write = 1;
			blkvsc_req->cmnd[0] = WRITE_10;
		} else {
			blkvsc_req->write = 0;
			blkvsc_req->cmnd[0] = READ_10;
		}

		blkvsc_req->cmnd[1] |=
			(blkvsc_req->req->cmd_flags & REQ_FUA) ? 0x8 : 0;

		*(unsigned int *)&blkvsc_req->cmnd[2] =
				cpu_to_be32(blkvsc_req->sector_start);
		*(unsigned short *)&blkvsc_req->cmnd[7] =
				cpu_to_be16(blkvsc_req->sector_count);
	} else {
		if (rq_data_dir(blkvsc_req->req)) {
			blkvsc_req->write = 1;
			blkvsc_req->cmnd[0] = WRITE_6;
		} else {
			blkvsc_req->write = 0;
			blkvsc_req->cmnd[0] = READ_6;
		}

		*(unsigned int *)&blkvsc_req->cmnd[1] =
				cpu_to_be32(blkvsc_req->sector_start) >> 8;
		blkvsc_req->cmnd[1] &= 0x1f;
		blkvsc_req->cmnd[4] = (unsigned char)blkvsc_req->sector_count;
	}
}