2002-02-11 03:43:05

by Miles Lane

[permalink] [raw]
Subject: fdomain.c:1568: structure has no member named `address'

gcc -D__KERNEL__ -I/usr/src/linux/include -Wall -Wstrict-prototypes
-Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common
-pipe -mpreferred-stack-boundary=2 -march=athlon -DMODULE
-DKBUILD_BASENAME=fdomain -DPCMCIA -D__NO_VERSION__ -c -o fdomain.o
../fdomain.c
../fdomain.c: In function `do_fdomain_16x0_intr':
../fdomain.c:1568: structure has no member named `address'
../fdomain.c:1601: structure has no member named `address'
../fdomain.c: In function `fdomain_16x0_queue':
../fdomain.c:1687: structure has no member named `address'
../fdomain.c: In function `fdomain_16x0_release':
../fdomain.c:2046: warning: control reaches end of non-void function

CONFIG_SCSI_PCMCIA=y
CONFIG_PCMCIA_AHA152X=m
CONFIG_PCMCIA_FDOMAIN=m
CONFIG_PCMCIA_NINJA_SCSI=m



2002-02-11 14:14:26

by Paul Gortmaker

[permalink] [raw]
Subject: Re: fdomain.c:1568: structure has no member named `address'


Miles Lane wrote:

> ../fdomain.c: In function `do_fdomain_16x0_intr':
> ../fdomain.c:1568: structure has no member named `address'
> ../fdomain.c:1601: structure has no member named `address'
> ../fdomain.c: In function `fdomain_16x0_queue':
> ../fdomain.c:1687: structure has no member named `address'
> ../fdomain.c: In function `fdomain_16x0_release':
> ../fdomain.c:2046: warning: control reaches end of non-void function


Try this and let us know if it works (or if smoke and flames pour out).

Patch is against 2.5.4.

Paul.


--- drivers/scsi/fdomain.c~ Mon Feb 11 08:56:16 2002
+++ drivers/scsi/fdomain.c Mon Feb 11 08:58:01 2002
@@ -1565,7 +1565,7 @@
if (current_SC->SCp.buffers_residual) {
--current_SC->SCp.buffers_residual;
++current_SC->SCp.buffer;
- current_SC->SCp.ptr = current_SC->SCp.buffer->address;
+ current_SC->SCp.ptr = page_address(current_SC->SCp.buffer->page) + current_SC->SCp.buffer->offset;
current_SC->SCp.this_residual = current_SC->SCp.buffer->length;
} else
break;
@@ -1598,7 +1598,7 @@
&& current_SC->SCp.buffers_residual) {
--current_SC->SCp.buffers_residual;
++current_SC->SCp.buffer;
- current_SC->SCp.ptr = current_SC->SCp.buffer->address;
+ current_SC->SCp.ptr = page_address(current_SC->SCp.buffer->page) + current_SC->SCp.buffer->offset;
current_SC->SCp.this_residual = current_SC->SCp.buffer->length;
}
}
@@ -1684,7 +1684,7 @@
if (current_SC->use_sg) {
current_SC->SCp.buffer =
(struct scatterlist *)current_SC->request_buffer;
- current_SC->SCp.ptr = current_SC->SCp.buffer->address;
+ current_SC->SCp.ptr = page_address(current_SC->SCp.buffer->page) + current_SC->SCp.buffer->offset;
current_SC->SCp.this_residual = current_SC->SCp.buffer->length;
current_SC->SCp.buffers_residual = current_SC->use_sg - 1;
} else {
@@ -2042,7 +2042,7 @@
free_irq(shpnt->irq, shpnt);
if (shpnt->io_port && shpnt->n_io_port)
release_region(shpnt->io_port, shpnt->n_io_port);
-
+ return 0;
}

MODULE_LICENSE("GPL");