--------------------------------------------------------------------------
drivers/scsi/qla1280.c:5932: unknown field `next' specified in initializer
drivers/scsi/qla1280.c:5932: warning: missing braces around initializer
drivers/scsi/qla1280.c:5932: warning: (near initialization for
`driver_template.shtp_list')make[2]: *** [drivers/scsi/qla1280.o] Error 1
make[1]: *** [drivers/scsi] Error 2
make: *** [drivers] Error 2
----------------------------------------------------------------------------
On Sat, Oct 19 2002, [email protected] wrote:
> --------------------------------------------------------------------------
> drivers/scsi/qla1280.c:5932: unknown field `next' specified in initializer
> drivers/scsi/qla1280.c:5932: warning: missing braces around initializer
> drivers/scsi/qla1280.c:5932: warning: (near initialization for
> `driver_template.shtp_list')make[2]: *** [drivers/scsi/qla1280.o] Error 1
> make[1]: *** [drivers/scsi] Error 2
> make: *** [drivers] Error 2
> ----------------------------------------------------------------------------
===== drivers/scsi/qla1280.h 1.7 vs edited =====
--- 1.7/drivers/scsi/qla1280.h Mon Oct 14 19:00:37 2002
+++ edited/drivers/scsi/qla1280.h Sat Oct 19 11:05:46 2002
@@ -1324,22 +1324,12 @@
*/
#define QLA1280_LINUX_TEMPLATE { \
- next: NULL, \
- module: NULL, \
- proc_dir: NULL, \
proc_info: qla1280_proc_info, \
name: "Qlogic ISP 1280/12160", \
detect: qla1280_detect, \
release: qla1280_release, \
info: qla1280_info, \
- ioctl: NULL, \
- command: NULL, \
queuecommand: qla1280_queuecommand, \
- eh_strategy_handler: NULL, \
- eh_abort_handler: NULL, \
- eh_device_reset_handler: NULL, \
- eh_bus_reset_handler: NULL, \
- eh_host_reset_handler: NULL, \
/* use_new_eh_code: 0, */ \
abort: qla1280_abort, \
reset: qla1280_reset, \
--
Jens Axboe
On Sat, 19 Oct 2002, Jens Axboe wrote:
> On Sat, Oct 19 2002, [email protected] wrote:
> > --------------------------------------------------------------------------
> > drivers/scsi/qla1280.c:5932: unknown field `next' specified in initializer
> > drivers/scsi/qla1280.c:5932: warning: missing braces around initializer
> > drivers/scsi/qla1280.c:5932: warning: (near initialization for
> > `driver_template.shtp_list')make[2]: *** [drivers/scsi/qla1280.o] Error 1
> > make[1]: *** [drivers/scsi] Error 2
> > make: *** [drivers] Error 2
> > ----------------------------------------------------------------------------
>
> ===== drivers/scsi/qla1280.h 1.7 vs edited =====
> --- 1.7/drivers/scsi/qla1280.h Mon Oct 14 19:00:37 2002
> +++ edited/drivers/scsi/qla1280.h Sat Oct 19 11:05:46 2002
> @@ -1324,22 +1324,12 @@
> */
>
> #define QLA1280_LINUX_TEMPLATE { \
> - next: NULL, \
> - module: NULL, \
> - proc_dir: NULL, \
> proc_info: qla1280_proc_info, \
> name: "Qlogic ISP 1280/12160", \
> detect: qla1280_detect, \
> release: qla1280_release, \
> info: qla1280_info, \
> - ioctl: NULL, \
> - command: NULL, \
> queuecommand: qla1280_queuecommand, \
> - eh_strategy_handler: NULL, \
> - eh_abort_handler: NULL, \
> - eh_device_reset_handler: NULL, \
> - eh_bus_reset_handler: NULL, \
> - eh_host_reset_handler: NULL, \
> /* use_new_eh_code: 0, */ \
> abort: qla1280_abort, \
> reset: qla1280_reset, \
>
>
> --
The same problem exist with ini9100u.c, solution is:
[dzimi@cyborg scsi]$ diff -urN ini9100u.h.orig ini9100u.h
--- ini9100u.h.orig Sun Oct 20 11:08:38 2002
+++ ini9100u.h Sun Oct 20 11:08:56 2002
@@ -89,9 +89,6 @@
#define i91u_REVID "Initio INI-9X00U/UW SCSI device driver; Revision:
1.03g"
#define INI9100U { \
- next: NULL, \
- module: NULL, \
- proc_name: "INI9100U", \
proc_info: NULL, \
name: i91u_REVID, \
detect: i91u_detect, \
but this is one of them.
Compilation problem still exist, because driver should be rewrite (using
new DMA-mapping API).
I've prepared patch, witch build and possible work, but initio.o didn't
see my partition table. Where is the bug ?
Correct me if I wrong.
Krzysiek Taraszka ([email protected])
AD.
Here My patch for ini9100u.c :
[dzimi@cyborg scsi]$ diff -urN ini9100u.c.orig ini9100u.c
--- ini9100u.c.orig Sun Oct 20 11:15:39 2002
+++ ini9100u.c Sun Oct 20 11:18:33 2002
@@ -108,8 +108,6 @@
#define CVT_LINUX_VERSION(V,P,S) (V * 65536 + P * 256 + S)
-#error Please convert me to Documentation/DMA-mapping.txt
-
#ifndef LINUX_VERSION_CODE
#include <linux/version.h>
#endif
@@ -491,8 +489,8 @@
if (SCpnt->use_sg) {
pSrbSG = (struct scatterlist *) SCpnt->request_buffer;
if (SCpnt->use_sg == 1) { /* If only one entry in the list *//* treat it as regular I/O */
- pSCB->SCB_BufPtr = (U32) VIRT_TO_BUS(pSrbSG->address);
- TotalLen = pSrbSG->length;
+ pSCB->SCB_BufPtr = (U32) sg_dma_address(pSrbSG);
+ TotalLen = sg_dma_len(pSrbSG);
pSCB->SCB_SGLen = 0;
} else { /* Assign SG physical address */
pSCB->SCB_BufPtr = pSCB->SCB_SGPAddr;
@@ -500,8 +498,9 @@
for (i = 0, TotalLen = 0, pSG =
&pSCB->SCB_SGList[0]; /* 1.01g */
i < SCpnt->use_sg;
i++, pSG++, pSrbSG++) {
- pSG->SG_Ptr = (U32) VIRT_TO_BUS(pSrbSG->address);
- TotalLen += pSG->SG_Len = pSrbSG->length;
+ pSG->SG_Ptr = (U32) sg_dma_address(pSrbSG);
+ pSG->SG_Len = (U32) sg_dma_len(pSrbSG);
+ TotalLen += (U32) sg_dma_len(pSrbSG);
}
pSCB->SCB_SGLen = i;
}
On Sun, Oct 20 2002, Krzysiek Taraszka wrote:
> The same problem exist with ini9100u.c, solution is:
>
> [dzimi@cyborg scsi]$ diff -urN ini9100u.h.orig ini9100u.h
> --- ini9100u.h.orig Sun Oct 20 11:08:38 2002
> +++ ini9100u.h Sun Oct 20 11:08:56 2002
> @@ -89,9 +89,6 @@
> #define i91u_REVID "Initio INI-9X00U/UW SCSI device driver; Revision:
> 1.03g"
>
> #define INI9100U { \
> - next: NULL, \
> - module: NULL, \
> - proc_name: "INI9100U", \
> proc_info: NULL, \
> name: i91u_REVID, \
> detect: i91u_detect, \
Please just kill any NULL assignments, they are not needed.
> but this is one of them.
> Compilation problem still exist, because driver should be rewrite (using
> new DMA-mapping API).
> I've prepared patch, witch build and possible work, but initio.o didn't
> see my partition table. Where is the bug ?
> Correct me if I wrong.
>
> Krzysiek Taraszka ([email protected])
>
> AD.
>
> Here My patch for ini9100u.c :
>
> [dzimi@cyborg scsi]$ diff -urN ini9100u.c.orig ini9100u.c
> --- ini9100u.c.orig Sun Oct 20 11:15:39 2002
> +++ ini9100u.c Sun Oct 20 11:18:33 2002
> @@ -108,8 +108,6 @@
>
> #define CVT_LINUX_VERSION(V,P,S) (V * 65536 + P * 256 + S)
>
> -#error Please convert me to Documentation/DMA-mapping.txt
First step, read this document!
> #ifndef LINUX_VERSION_CODE
> #include <linux/version.h>
> #endif
> @@ -491,8 +489,8 @@
> if (SCpnt->use_sg) {
> pSrbSG = (struct scatterlist *) SCpnt->request_buffer;
> if (SCpnt->use_sg == 1) { /* If only one entry in the list *//* treat it as regular I/O */
> - pSCB->SCB_BufPtr = (U32) VIRT_TO_BUS(pSrbSG->address);
> - TotalLen = pSrbSG->length;
> + pSCB->SCB_BufPtr = (U32) sg_dma_address(pSrbSG);
> + TotalLen = sg_dma_len(pSrbSG);
> pSCB->SCB_SGLen = 0;
> } else { /* Assign SG physical address */
> pSCB->SCB_BufPtr = pSCB->SCB_SGPAddr;
You didn't read the document :). You are not mapping the scatterlist for
dma before using sg_dma_address() on the element. So pSCB->SCB_BufPtr is
now 0.
> @@ -500,8 +498,9 @@
> for (i = 0, TotalLen = 0, pSG =
> &pSCB->SCB_SGList[0]; /* 1.01g */
> i < SCpnt->use_sg;
> i++, pSG++, pSrbSG++) {
> - pSG->SG_Ptr = (U32) VIRT_TO_BUS(pSrbSG->address);
> - TotalLen += pSG->SG_Len = pSrbSG->length;
> + pSG->SG_Ptr = (U32) sg_dma_address(pSrbSG);
> + pSG->SG_Len = (U32) sg_dma_len(pSrbSG);
> + TotalLen += (U32) sg_dma_len(pSrbSG);
Ditto
--
Jens Axboe
On Sun, 20 Oct 2002, Jens Axboe wrote:
> On Sun, Oct 20 2002, Krzysiek Taraszka wrote:
> > The same problem exist with ini9100u.c, solution is:
> >
> > [dzimi@cyborg scsi]$ diff -urN ini9100u.h.orig ini9100u.h
> > --- ini9100u.h.orig Sun Oct 20 11:08:38 2002
> > +++ ini9100u.h Sun Oct 20 11:08:56 2002
> > @@ -89,9 +89,6 @@
> > #define i91u_REVID "Initio INI-9X00U/UW SCSI device driver; Revision:
> > 1.03g"
> >
> > #define INI9100U { \
> > - next: NULL, \
> > - module: NULL, \
> > - proc_name: "INI9100U", \
> > proc_info: NULL, \
> > name: i91u_REVID, \
> > detect: i91u_detect, \
>
> Please just kill any NULL assignments, they are not needed.
>
> > but this is one of them.
> > Compilation problem still exist, because driver should be rewrite (using
> > new DMA-mapping API).
> > I've prepared patch, witch build and possible work, but initio.o didn't
> > see my partition table. Where is the bug ?
> > Correct me if I wrong.
> >
> > Krzysiek Taraszka ([email protected])
> >
> > AD.
> >
> > Here My patch for ini9100u.c :
> >
> > [dzimi@cyborg scsi]$ diff -urN ini9100u.c.orig ini9100u.c
> > --- ini9100u.c.orig Sun Oct 20 11:15:39 2002
> > +++ ini9100u.c Sun Oct 20 11:18:33 2002
> > @@ -108,8 +108,6 @@
> >
> > #define CVT_LINUX_VERSION(V,P,S) (V * 65536 + P * 256 + S)
> >
> > -#error Please convert me to Documentation/DMA-mapping.txt
>
> First step, read this document!
>
> > #ifndef LINUX_VERSION_CODE
> > #include <linux/version.h>
> > #endif
> > @@ -491,8 +489,8 @@
> > if (SCpnt->use_sg) {
> > pSrbSG = (struct scatterlist *) SCpnt->request_buffer;
> > if (SCpnt->use_sg == 1) { /* If only one entry in the list *//* treat it as regular I/O */
> > - pSCB->SCB_BufPtr = (U32) VIRT_TO_BUS(pSrbSG->address);
> > - TotalLen = pSrbSG->length;
> > + pSCB->SCB_BufPtr = (U32) sg_dma_address(pSrbSG);
> > + TotalLen = sg_dma_len(pSrbSG);
> > pSCB->SCB_SGLen = 0;
> > } else { /* Assign SG physical address */
> > pSCB->SCB_BufPtr = pSCB->SCB_SGPAddr;
>
> You didn't read the document :). You are not mapping the scatterlist for
> dma before using sg_dma_address() on the element. So pSCB->SCB_BufPtr is
> now 0.
well, i read but this is my first contact with 2.5 tree, I need to read
more documents and other scsi drivers! Now i know why doesn't work. :)
Thanks a lot.
Krzysiek Taraszka ([email protected])