- fix-scsi_send_eh_cmnd-scatterlist-handling.patch removed from -mm tree

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

 



The patch titled
     Fix scsi_send_eh_cmnd scatterlist handling
has been removed from the -mm tree.  Its filename was
     fix-scsi_send_eh_cmnd-scatterlist-handling.patch

This patch was dropped because it was merged into mainline or a subsystem tree

------------------------------------------------------
Subject: Fix scsi_send_eh_cmnd scatterlist handling
From: David Miller <davem@xxxxxxxxxxxxx>

This fixes a regression caused by commit:

2dc611de5a3fd955cd0298c50691d4c05046db97

The sense buffer code in scsi_send_eh_cmnd was changed to use alloc_page()
and a scatter list, but the sense data copy was not updated to match so
what we actually get in the sense buffer is total grabage starting with the
kernel address of the struct page we got.  Basically the stack frame of
scsi_send_eh_cmd() is what ends up in the sense buffer.

Depending upon how pointers look on a given platform, you can end up
getting sr_ioctl.c errors when you mount a cdrom.  If the CDROM gives a
check condition for GPCMD_GET_CONFIGURATION issued by
drivers/cdrom/cdrom.c:cdrom_mmc_profile(), sr_ioctl will spit out this
error message in sr_do_ioctl() with the way pointers are on sparc64:

		default:
			printk(KERN_ERR "%s: CDROM (ioctl) error, command: ", cd->cdi.name);
			__scsi_print_command(cgc->cmd);
			scsi_print_sense_hdr("sr", &sshdr);
			err = -EIO;

This is the error Tom Callaway reported in:

http://marc.info/?l=linux-sparc&m=117407453208101&w=2

Anyways, fix this by using page_address(sgl.page) which is OK because we
know this is low-mem due to GFP_ATOMIC.

Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
Acked-by: Christoph Hellwig <hch@xxxxxx>
Cc: James Bottomley <James.Bottomley@xxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
---

 drivers/scsi/scsi_error.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff -puN drivers/scsi/scsi_error.c~fix-scsi_send_eh_cmnd-scatterlist-handling drivers/scsi/scsi_error.c
--- a/drivers/scsi/scsi_error.c~fix-scsi_send_eh_cmnd-scatterlist-handling
+++ a/drivers/scsi/scsi_error.c
@@ -726,7 +726,7 @@ static int scsi_send_eh_cmnd(struct scsi
 	 */
 	if (copy_sense) {
 		if (!SCSI_SENSE_VALID(scmd)) {
-			memcpy(scmd->sense_buffer, scmd->request_buffer,
+			memcpy(scmd->sense_buffer, page_address(sgl.page),
 			       sizeof(scmd->sense_buffer));
 		}
 		__free_page(sgl.page);
_

Patches currently in -mm which might be from davem@xxxxxxxxxxxxx are

origin.patch
git-net.patch
git-net-vs-git-netdev-all.patch
fix-irq-problem-with-napi-netpoll.patch
remove-pci_dac_dma_-apis.patch
git-wireless-vs-git-net.patch
git-wireless-vs-git-net-2.patch
simplify-the-stacktrace-code.patch
tg3-use-flush_keventd_work.patch
e1000-use-flush_keventd_work.patch
ipvs-flush-defense_work-before-module-unload.patch
unify-flush_work-flush_work_keventd-and-rename-it-to-cancel_work_sync.patch
atomich-add-atomic64-cmpxchg-xchg-and-add_unless-to-sparc64.patch
local_t-sparc64-cleanup.patch

-
To unsubscribe from this list: send the line "unsubscribe mm-commits" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Kernel Newbies FAQ]     [Kernel Archive]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Photo]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux