Re: [Bug 355] New: Error when compiling SCSI drivers (Adaptec, Seagate etc.)

Christoph Hellwig (hch@infradead.org)
Fri, 14 Feb 2003 18:15:35 +0000


On Fri, Feb 14, 2003 at 07:43:43AM -0800, Martin J. Bligh wrote:
> http://bugme.osdl.org/show_bug.cgi?id=355
>
> Summary: Error when compiling SCSI drivers (Adaptec, Seagate
> etc.)
> Kernel Version: 2.5.60 (- bk4)
> Status: NEW
> Severity: normal
> Owner: andmike@us.ibm.com
> Submitter: martinsteeg@t-online.de
>
>
> Software Environment: linnx Kernel 2.5.60 ( and snapshots -bk1 ... -bk4)
> Problem Description:
> In the change of linux-2.5.59 to linux-2.5.60, the struct scsi_cmnd
> was changed in that the fields host, target, lun, channel are replaced
> by fields of the device field (struct scsi_device*): host, id, lun,
> channel
> This is not reflected in several SCSI drivers, e.g. the change is not
> considered for Adaptec and Seagate SCSI controllers.
>
> Proposal to fix the Problem:
> 1. some new defines for drivers/scsi/scsi.h
> +#define SCSICMND_HOST device->host
> +#define SCSICMND_TARGET device->id
> +#define SCSICMND_LUN device->lun
> +#define SCSICMND_CHANNEL device->channel

This macro abuse will never get into mainline. Fix it to use the proper
dereferences directly, that'll work fine for older kernels aswell.

/me wonders how people get the crazy idea that cpp abuse will make code
more maintainable..
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/