From c43886fcad59b9043de21be3c5a2a915bce3a544 Mon Sep 17 00:00:00 2001 From: Smith Dhumbumroong Date: Mon, 21 Nov 2011 22:00:44 +0700 Subject: Remove fix autosense emulation patch because it has been included in the latest version of the kernel. Signed-off-by: Smith Dhumbumroong --- kernel-eee/PKGBUILD | 5 +- kernel-eee/fix_autosense_emulation.patch | 95 -------------------------------- 2 files changed, 2 insertions(+), 98 deletions(-) delete mode 100644 kernel-eee/fix_autosense_emulation.patch diff --git a/kernel-eee/PKGBUILD b/kernel-eee/PKGBUILD index 30fd499..01b1c3c 100644 --- a/kernel-eee/PKGBUILD +++ b/kernel-eee/PKGBUILD @@ -19,7 +19,7 @@ source=(ftp://ftp.kernel.org/pub/linux/kernel/v3.0/linux-$_kernver.tar.bz2 #ftp://ftp.archlinux.org/other/linux/patch-$pkgver.gz 61-eee-ssd.rules kernelconfig) -_patches=(fix_autosense_emulation.patch) +_patches=() source=(${source[@]} ${_patches[@]}) build() { @@ -68,5 +68,4 @@ package() { md5sums=('8d43453f8159b2332ad410b19d86a931' '740634b4d2e9c733642c7f9148d535eb' '73a20e8bf2bb29ba342f43460c6291cb' - '5345f0492b1eaf0e578e4ddea078c3a8' - '9e52c15f69cfc7884f5785787ddd52e7') + '5345f0492b1eaf0e578e4ddea078c3a8') diff --git a/kernel-eee/fix_autosense_emulation.patch b/kernel-eee/fix_autosense_emulation.patch deleted file mode 100644 index 99476d9..0000000 --- a/kernel-eee/fix_autosense_emulation.patch +++ /dev/null @@ -1,95 +0,0 @@ -This patch solves two things: -1) Enables autosense emulation code to correctly -interpret descriptor format sense data, and -2) Fixes a bug whereby the autosense emulation -code would overwrite descriptor format sense data -with SENSE KEY HARDWARE ERROR in fixed format, to -incorrectly look like this: - -Oct 21 14:11:07 localhost kernel: sd 7:0:0:0: [sdc] Sense Key : Recovered Error [current] [descriptor] -Oct 21 14:11:07 localhost kernel: Descriptor sense data with sense descriptors (in hex): -Oct 21 14:11:07 localhost kernel: 72 01 04 1d 00 00 00 0e 09 0c 00 00 00 00 00 00 -Oct 21 14:11:07 localhost kernel: 00 4f 00 c2 00 50 -Oct 21 14:11:07 localhost kernel: sd 7:0:0:0: [sdc] ASC=0x4 ASCQ=0x1d - -Signed-off-by: Luben Tuikov -Acked-by: Alan Stern -Acked-by: Matthew Dharm ---- - drivers/usb/storage/transport.c | 34 +++++++++++++++++++--------------- - 1 files changed, 19 insertions(+), 15 deletions(-) - -diff --git a/drivers/usb/storage/transport.c b/drivers/usb/storage/transport.c -index 64ec073..cb04664 100644 ---- a/drivers/usb/storage/transport.c -+++ b/drivers/usb/storage/transport.c -@@ -691,6 +691,9 @@ void usb_stor_invoke_transport(struct scsi_cmnd *srb, struct us_data *us) - int temp_result; - struct scsi_eh_save ses; - int sense_size = US_SENSE_SIZE; -+ struct scsi_sense_hdr sshdr; -+ const u8 *scdd; -+ u8 fm_ili; - - /* device supports and needs bigger sense buffer */ - if (us->fflags & US_FL_SANE_SENSE) -@@ -774,32 +777,30 @@ Retry_Sense: - srb->sense_buffer[7] = (US_SENSE_SIZE - 8); - } - -+ scsi_normalize_sense(srb->sense_buffer, SCSI_SENSE_BUFFERSIZE, -+ &sshdr); -+ - US_DEBUGP("-- Result from auto-sense is %d\n", temp_result); - US_DEBUGP("-- code: 0x%x, key: 0x%x, ASC: 0x%x, ASCQ: 0x%x\n", -- srb->sense_buffer[0], -- srb->sense_buffer[2] & 0xf, -- srb->sense_buffer[12], -- srb->sense_buffer[13]); -+ sshdr.response_code, sshdr.sense_key, -+ sshdr.asc, sshdr.ascq); - #ifdef CONFIG_USB_STORAGE_DEBUG -- usb_stor_show_sense( -- srb->sense_buffer[2] & 0xf, -- srb->sense_buffer[12], -- srb->sense_buffer[13]); -+ usb_stor_show_sense(sshdr.sense_key, sshdr.asc, sshdr.ascq); - #endif - - /* set the result so the higher layers expect this data */ - srb->result = SAM_STAT_CHECK_CONDITION; - -+ scdd = scsi_sense_desc_find(srb->sense_buffer, -+ SCSI_SENSE_BUFFERSIZE, 4); -+ fm_ili = (scdd ? scdd[3] : srb->sense_buffer[2]) & 0xA0; -+ - /* We often get empty sense data. This could indicate that - * everything worked or that there was an unspecified - * problem. We have to decide which. - */ -- if ( /* Filemark 0, ignore EOM, ILI 0, no sense */ -- (srb->sense_buffer[2] & 0xaf) == 0 && -- /* No ASC or ASCQ */ -- srb->sense_buffer[12] == 0 && -- srb->sense_buffer[13] == 0) { -- -+ if (sshdr.sense_key == 0 && sshdr.asc == 0 && sshdr.ascq == 0 && -+ fm_ili == 0) { - /* If things are really okay, then let's show that. - * Zero out the sense buffer so the higher layers - * won't realize we did an unsolicited auto-sense. -@@ -814,7 +815,10 @@ Retry_Sense: - */ - } else { - srb->result = DID_ERROR << 16; -- srb->sense_buffer[2] = HARDWARE_ERROR; -+ if ((sshdr.response_code & 0x72) == 0x72) -+ srb->sense_buffer[1] = HARDWARE_ERROR; -+ else -+ srb->sense_buffer[2] = HARDWARE_ERROR; - } - } - } --- -1.7.0.1 - -- cgit v1.2.3-55-g3dc8