Re: scsi: include linux/scatterlist.h to pick up ARCH_HAS_SG_CHAIN

From: Boaz Harrosh
Date: Mon Jan 17 2011 - 04:43:47 EST


On 01/16/2011 10:12 PM, David Dillow wrote:
> If the compiled object doesn't include linux/scatterlist.h before
> scsi/scsi.h, it will get an incorrect definition of
> SCSI_MAX_SG_CHAIN_SEGMENTS.
>
> Signed-off-by: David Dillow <dillowda@xxxxxxxx>
> --
> This fixes an issue I found while working on the SRP initiator, where
> linux/scatterlist.h was being pulled in by scsi/scsi_device.h. It's not
> clear if I'm supposed to include linux/scatterlist.h myself, or if I'm
> including the scsi headers in the wrong order. It makes sense for me
> that scsi.h would pickup the needed headers itself to prevent confusion.
>

I totally agree. This below is the proper fix!

> Another option is to potentially get rid of the ARCH_HAS_SG_CHAIN define
> as all archs have it save m68knommu.
>

What's preventing m68knommu from chaining? this is pure C manipulations,
what am I missing?

Thanks for catching this. As is, it is vary dangerous. I wonder where
else did it hit unnoticed?

Boaz

>
> diff --git a/include/scsi/scsi.h b/include/scsi/scsi.h
> index 648d233..b76d400 100644
> --- a/include/scsi/scsi.h
> +++ b/include/scsi/scsi.h
> @@ -9,6 +9,7 @@
> #define _SCSI_SCSI_H
>
> #include <linux/types.h>
> +#include <linux/scatterlist.h>
>
> struct scsi_cmnd;
>
>
--
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/