Re: [PATCH] sd: Micro-optimize READ / WRITE CDB encoding

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 2017-10-17 at 18:17 -0400, Douglas Gilbert wrote:
> On 2017-10-17 05:03 PM, Bart Van Assche wrote:
> > @@ -1025,7 +1025,6 @@ static int sd_setup_read_write_cmnd(struct scsi_cmnd *SCpnt)
> >   	struct gendisk *disk = rq->rq_disk;
> >   	struct scsi_disk *sdkp = scsi_disk(disk);
> >   	sector_t block = blk_rq_pos(rq);
> 
> s/block/lba/		# use the well understood SCSI abbreviation

Since blk_rq_pos() returns the offset in units of 512 bytes, how about renaming
'block' into 'sector' and using the name 'lba' for the number obtained after the
shift operation?

> 
> > -	sector_t threshold;
> >   	unsigned int this_count = blk_rq_sectors(rq);
> >   	unsigned int dif, dix;
> >   	bool zoned_write = sd_is_zoned(sdkp) && rq_data_dir(rq) == WRITE;
> > @@ -1071,20 +1070,22 @@ static int sd_setup_read_write_cmnd(struct scsi_cmnd *SCpnt)
> >   		goto out;
> >   	}
> >   
> > -	/*
> > -	 * Some SD card readers can't handle multi-sector accesses which touch
> > -	 * the last one or two hardware sectors.  Split accesses as needed.
> > -	 */
> > -	threshold = get_capacity(disk) - SD_LAST_BUGGY_SECTORS *
> > -		(sdp->sector_size / 512);
> > +	if (unlikely(sdp->last_sector_bug)) {
> > +		sector_t threshold;
> 
> s/threshold/threshold_lba/	# a bit long but more precise

A similar comment applies here - shouldn't this be called 'threshold_sector'?

> >   		}
> >   	}
> >   	if (rq_data_dir(rq) == WRITE) {
> > @@ -1173,56 +1157,26 @@ static int sd_setup_read_write_cmnd(struct scsi_cmnd *SCpnt)
> >   		SCpnt->cmnd[7] = 0x18;
> >   		SCpnt->cmnd[9] = (rq_data_dir(rq) == READ) ? READ_32 : WRITE_32;
> 
> Perhaps rq_data_dir(rq) could be placed in a local variable

I will keep that for a separate patch.

Bart.




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux