Sorry, I've sent a wrong patch in my previous letter. Here comes the correct one: --- linux-2.4.20-ac1/drivers/block/pktcdvd.c 2003-02-09 09:49:02.000000000 +0100 +++ linux-2.4.21-pre3-aa1/drivers/block/pktcdvd.c 2003-02-09 09:50:50.000000000 +0100 @@ -538,7 +538,8 @@ static inline struct buffer_head *__pkt_ static void pkt_end_io_write(struct buffer_head *, int); static struct buffer_head *pkt_get_buffer(struct pktcdvd_device *pd, - unsigned long sector, int size) + unsigned long sector, int size, + struct request *rq) { unsigned long block = sector / (size >> 9); struct buffer_head *bh; @@ -551,7 +552,7 @@ static struct buffer_head *pkt_get_buffe else bh = __pkt_get_buffer(pd, sector); - blk_started_io(bh->b_size >> 9); + blk_started_io(rq, bh->b_size >> 9); bh->b_blocknr = block; bh->b_end_io = pkt_end_io_write; bh->b_rsector = sector; @@ -909,7 +910,7 @@ static int pkt_gather_data(struct pktcdv goto next; } - bh = pkt_get_buffer(pd, sector, CD_FRAMESIZE); + bh = pkt_get_buffer(pd, sector, CD_FRAMESIZE, rq); bhs[index] = bh; rq->nr_sectors += bh->b_size >> 9; @@ -1059,7 +1060,7 @@ static int pkt_start_recovery(struct pkt } bhs[i] = bh; } else if (bh->b_list != PKT_BUF_LIST) { - bhs[i] = pkt_get_buffer(pd, sector, CD_FRAMESIZE); + bhs[i] = pkt_get_buffer(pd, sector, CD_FRAMESIZE, rq); memcpy(bhs[i]->b_data, bh->b_data, CD_FRAMESIZE); unlock_buffer(bh); bforget(bh); Sorry 4 previous, Dw. On Sun, 9 Feb 2003, Toth Attila wrote:
You have to face two problems compiling packet patched -aa kernels.
The second one is caused by the Ingo(O1) sheduler, which is included in this patchset, backported from the 2.5.x series. This produces your second error at line 1185. This effect those distros, who have also included this backport. SuSe is one example 4 this. You may try to apply http://w1.894.telia.com/~u89404340/patches/packet/SuSE/packet-2.4.20-pre11-s... to correct this, or manually alter the source according to this diff. This will eliminate the 'nice' part of your compile errors.
The first half of the error is caused by the -aa patch numbered 9981, namely elevator-lowlatency. This has also caused some problems to the DAC960 SCSI RAID driver in the previous versions of this patchset, so I suggest you to use at least 2.4.21-pre3-aa1 instead of 2.4.20-aa1 if you want to compile your kernel for this RAID driver. This patch may provide a solution for this. It compiles 4 me, but I haven't tested it yet.
--- linux-2.4.20-ac1/drivers/block/pktcdvd.c 2003-02-09 09:49:02.000000000 +0100 +++ linux-2.4.21-pre3-aa1/drivers/block/pktcdvd.c 2003-02-09 09:50:50.000000000 +0100 @@ -537,7 +537,8 @@ static inline struct buffer_head *__pkt_
static void pkt_end_io_write(struct buffer_head *, int);
-static struct buffer_head *pkt_get_buffer(struct pktcdvd_device *pd, +static struct buffer_head *pkt_get_buffer(struct request *req, + struct pktcdvd_device *pd, unsigned long sector, int size) { unsigned long block = sector / (size >> 9); @@ -551,7 +552,7 @@ static struct buffer_head *pkt_get_buffe else bh = __pkt_get_buffer(pd, sector);
- blk_started_io(bh->b_size >> 9); + blk_started_io(req, bh->b_size >> 9); bh->b_blocknr = block; bh->b_end_io = pkt_end_io_write; bh->b_rsector = sector; @@ -909,7 +910,7 @@ static int pkt_gather_data(struct pktcdv goto next; }
- bh = pkt_get_buffer(pd, sector, CD_FRAMESIZE); + bh = pkt_get_buffer(rq, pd, sector, CD_FRAMESIZE);
bhs[index] = bh; rq->nr_sectors += bh->b_size >> 9; @@ -1059,7 +1060,7 @@ static int pkt_start_recovery(struct pkt } bhs[i] = bh; } else if (bh->b_list != PKT_BUF_LIST) { - bhs[i] = pkt_get_buffer(pd, sector, CD_FRAMESIZE); + bhs[i] = pkt_get_buffer(rq, pd, sector, CD_FRAMESIZE); memcpy(bhs[i]->b_data, bh->b_data, CD_FRAMESIZE); unlock_buffer(bh); bforget(bh);
Good luck, Dw.
On Sat, 8 Feb 2003, Leo Przybylski wrote:
Hello,
I have an AA1 patched kernel, but I cannot seem to get pktcdvd patch to work on the AA1 kernel. Anyone have any experience with this? here is the error I get:
pktcdvd.c: In function `pkt_get_buffer': pktcdvd.c:554: warning: passing arg 1 of `blk_started_io' makes pointer from integer without a cast pktcdvd.c:554: too few arguments to function `blk_started_io' pktcdvd.c: In function `kcdrwd': pktcdvd.c:1185: structure has no member named `nice' pktcdvd.c: At top level: pktcdvd.c:2254: warning: `sysrq_show_requests_op' defined but not used make[2]: *** [pktcdvd.o] Error 1 make[2]: Leaving directory `/usr/src/linux-2.4.20-aa/drivers/block' make[1]: *** [_modsubdir_block] Error 2 make[1]: Leaving directory `/usr/src/linux-2.4.20-aa/drivers' make: *** [_mod_drivers] Error 2
-Leo Przybylski
-- To unsubscribe, e-mail: packet-writing-unsubscribe@suse.com For additional commands, e-mail: packet-writing-help@suse.com
-- To unsubscribe, e-mail: packet-writing-unsubscribe@suse.com For additional commands, e-mail: packet-writing-help@suse.com
participants (1)
-
Toth Attila