sd: Disable support for 256 byte/sector disks
PATCH 1/1 sd: Disable support for 256 byte/sector disks
256 bytes per sector support has been broken since 2.6.X, and no-one stepped up to fix this.
So disable support for it.
--- drivers/scsi/sd.c | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-)
drivers/scsi/sd.c +5 -14
@@ -1600,6 +1600,7 @@ static unsigned int sd_completed_bytes(struct scsi_cmnd *scmd) {u64 start_lba =blk_rq_pos (scmd->request);u64 end_lba =blk_rq_pos (scmd->request) + (scsi_bufflen (scmd) /512 ); +u64 factor = scmd->device->sector_size /512 ;u64 bad_lba;int info_valid;/*
@@ -1621,16 +1622,9 @@ static unsigned int sd_completed_bytes(struct scsi_cmnd *scmd)if (scsi_bufflen (scmd) <= scmd->device->sector_size)return 0 ; -if (scmd->device->sector_size <512 ) { -/* only legitimate sector_size here is 256 */ - start_lba <<=1 ; - end_lba <<=1 ; - }else { -/* be careful ... don't want any overflows */ -unsigned int factor = scmd->device->sector_size /512 ; -do_div (start_lba, factor); -do_div (end_lba, factor); - } +/* be careful ... don't want any overflows */ +do_div (start_lba, factor); +do_div (end_lba, factor);/* The bad lba was reported incorrectly, we have no idea where * the error is.
@@ -2188,8 +2182,7 @@ got_data:if (sector_size !=512 && sector_size !=1024 && sector_size !=2048 && - sector_size !=4096 && - sector_size !=256 ) { + sector_size !=4096 ) {sd_printk (KERN_NOTICE , sdkp,"Unsupported sector size %d.\n" , sector_size);/*
@@ -2244,8 +2237,6 @@ got_data: sdkp->capacity <<=2 ; else if (sector_size == 1024) sdkp->capacity <<= 1; - else if (sector_size == 256) - sdkp->capacity >>= 1; blk_queue_physical_block_size(sdp->request_queue, sdkp->physical_block_size);
Signature · 1 line
1.8.5.2
Quoted 54 lines · Hannes Reinecke
256 bytes per sector support has been broken since 2.6.X, and no-one stepped up to fix this.
So disable support for it.Signed-off-by Mark Hounschell <[email protected]>Signed-off-by Hannes Reinecke <[email protected]>--- drivers/scsi/sd.c | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-)drivers/scsi/sd.c +5
-12@@ -1600,6 +1600,7 @@ static unsigned int sd_completed_bytes(struct scsi_cmnd *scmd) {u64 start_lba =blk_rq_pos (scmd->request);u64 end_lba =blk_rq_pos (scmd->request) + (scsi_bufflen (scmd) /512 ); +u64 factor = scmd->device->sector_size /512 ;u64 bad_lba;int info_valid;/* @@ -1621,16 +1622,9 @@ static unsigned int sd_completed_bytes(struct scsi_cmnd *scmd)if (scsi_bufflen (scmd) <= scmd->device->sector_size)return 0 ; -if (scmd->device->sector_size <512 ) { -/* only legitimate sector_size here is 256 */ - start_lba <<=1 ; - end_lba <<=1 ; - }else { -/* be careful ... don't want any overflows */ -unsigned int factor = scmd->device->sector_size /512 ; -do_div (start_lba, factor); -do_div (end_lba, factor); - } +/* be careful ... don't want any overflows */ +do_div (start_lba, factor); +do_div (end_lba, factor);/* The bad lba was reported incorrectly, we have no idea where * the error is. @@ -2188,8 +2182,7 @@ got_data:if (sector_size !=512 && sector_size !=1024 && sector_size !=2048 && - sector_size !=4096 && - sector_size !=256 ) { + sector_size !=4096 ) {sd_printk (KERN_NOTICE , sdkp,"Unsupported sector size %d.\n" , sector_size);/*
drivers/scsi/sd.c got_data: · line 2242
Quoted 8 lines
drivers/scsi/sd.c +0
-2@@ -2244,8 +2237,6 @@ got_data: sdkp->capacity <<=2 ; else if (sector_size == 1024) sdkp->capacity <<= 1; - else if (sector_size == 256) - sdkp->capacity >>= 1; blk_queue_physical_block_size(sdp->request_queue, sdkp->physical_block_size);
Mark
James Bottomley
maintainerQuoted 3 lines · Hannes Reinecke
256 bytes per sector support has been broken since 2.6.X, and no-one stepped up to fix this.
So disable support for it.
I assume this should have a
From: Mark Hounschell <[email protected]>
at the top?
James
Quoted 5 lines · James Bottomley
Quoted 3 lines · Hannes Reinecke
256 bytes per sector support has been broken since 2.6.X, and no-one stepped up to fix this.
So disable support for it.
Quoted 8 lines
I assume this should have a
From: Mark Hounschell <[email protected]>
at the top?
James
I wasn't sure, as I've pulled the patch off bugzilla. But do whatever you see fit.
Cheers,
Hannes
Signature · 9 lines
Dr. Hannes Reinecke zSeries & Storage [email protected] +49 911 74053 688 SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton HRB 21284 (AG Nürnberg) -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
James Bottomley
maintainerQuoted 8 lines · Hannes Reinecke
Quoted 7 lines · James Bottomley
Quoted 3 lines · Hannes Reinecke
256 bytes per sector support has been broken since 2.6.X, and no-one stepped up to fix this.
So disable support for it.I assume this should have a
Quoted 8 lines
Quoted 6 lines
From: Mark Hounschell <[email protected]>
at the top?
James
I wasn't sure, as I've pulled the patch off bugzilla. But do whatever you see fit.
It needs authorship (From: field) of whoever wrote it and put it on bugzilla in the first place. According to the entry, it was him:
https://bugzilla.kernel.org/show_bug.cgi?id=16058#c18
James
Quoted 15 lines · James Bottomley
Quoted 14 lines · Hannes Reinecke
Quoted 13 lines · James Bottomley
Quoted 3 lines · Hannes Reinecke
256 bytes per sector support has been broken since 2.6.X, and no-one stepped up to fix this.
So disable support for it.I assume this should have a
From: Mark Hounschell <[email protected]>
at the top?
James
Quoted 8 lines
Quoted 2 lines
I wasn't sure, as I've pulled the patch off bugzilla. But do whatever you see fit.
It needs authorship (From: field) of whoever wrote it and put it on bugzilla in the first place. According to the entry, it was him:
I am the author of that patch. What would you like me to do? My home email address is what I used in bugzilla "[email protected]" years back when I originally submitted the bug. I'm sending this email from work.
I am Mark Hounschell and am the author of that patch and you can do with it whatever you see fit?
Regards
Mark