Re: [PATCH] git scsi misc include fix

From: James Bottomley
Date: Mon Oct 15 2007 - 21:07:42 EST


On Mon, 2007-10-15 at 17:08 -0700, Paul Jackson wrote:
> James wrote:
> > The requirement for struct scatterlist is the same
> > before and after the gid scsi-misc patch.
>
> Not so. The git-scsi-misc.patch in 2.6.23-mm1 clearly adds the line:
>
> struct scatterlist sense_sgl;
>
> as part of the added struct scsi_eh_save in scsi/scsi_eh.h.
>
> This bit me while I was doing a bisection on 2.6.23-mm1, for another
> problem, in git-sched, which is discussed in the lkml thread:
>
> git-sched patch won't boot on SN arch, 2.6.23-mm1
>
> This is using sn2_defconfig. The full 2.6.23-mm1 patch set builds ok,
> because another patch, git-block.patch as I recall, includes
> scatterlist.h some other way, but for the following range of patches in
> 2.6.23-mm1, on the configuration sn2_defconfig, the build is broken,
> due to 'struct scatterlist' being an incomplete type:
>
> git-scsi-misc.patch
> git-scsi-misc-include-fix.patch
> git-scsi-misc-fixup.patch
> qla2xxx-printk-fixes.patch
> pci-error-recovery-symbios-scsi-base-support.patch
> pci-error-recovery-symbios-scsi-first-failure.patch
> nsp32_restart_autoscsi-remove-error-check.patch
> scsi-send-media-state-change-modification-events.patch
> scsi-early-detection-of-medium-not-present-updated.patch
> mptbase-reset-ioc-initiator-during-pci-resume.patch
> scsi-use-notifier-chain-for-asynchronous-event.patch
> initio-fix-conflict-when-loading-driver.patch
> git-block.patch
>
> > it should also fail with vanilla 2.6.23
>
> I don't know about the vanilla 2.6.23 case.

Ah, right, sorry ... on the ball now. I thought you were saying that
the scsi_error.c compilation was failing. In that case, the correct fix
is actually to move the scatterlist include from scsi_error.c (where the
scatterlist was originally used locally) into scsi_eh.h, like this.

James

diff --git a/drivers/scsi/scsi_error.c b/drivers/scsi/scsi_error.c
index d29f846..ebaca4c 100644
--- a/drivers/scsi/scsi_error.c
+++ b/drivers/scsi/scsi_error.c
@@ -24,7 +24,6 @@
#include <linux/interrupt.h>
#include <linux/blkdev.h>
#include <linux/delay.h>
-#include <linux/scatterlist.h>

#include <scsi/scsi.h>
#include <scsi/scsi_cmnd.h>
diff --git a/include/scsi/scsi_eh.h b/include/scsi/scsi_eh.h
index 44224ba..d21b891 100644
--- a/include/scsi/scsi_eh.h
+++ b/include/scsi/scsi_eh.h
@@ -1,6 +1,8 @@
#ifndef _SCSI_SCSI_EH_H
#define _SCSI_SCSI_EH_H

+#include <linux/scatterlist.h>
+
#include <scsi/scsi_cmnd.h>
struct scsi_device;
struct Scsi_Host;


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/