2000-12-10 20:20:40

by Robert Love

[permalink] [raw]
Subject: Compile Failure: mga_dma.o on 2.4.0-test12-pre8

Cleanly patched 2.4.0-test12-pre8 (with the correct pre8, linus!) ...
fails compile with the following. I have CONFIG_DRM_MGA enabled. pre7
compiled fine.

kgcc -D__KERNEL__ -I/home/rml/src/linux/linux/include -Wall
-Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strict-aliasing -pipe
-march=i686 -c -o mga_dma.o mga_dma.c
mga_dma.c: In function `mga_irq_install':
mga_dma.c:821: structure has no member named `next'
make[4]: *** [mga_dma.o] Error 1
make[4]: Leaving directory `/home/rml/src/linux/linux/drivers/char/drm'
make[3]: *** [first_rule] Error 2

--
Robert M. Love
[email protected]
[email protected]


2000-12-10 20:34:55

by Robert Love

[permalink] [raw]
Subject: Re: Compile Failure: mga_dma.o on 2.4.0-test12-pre8


OK, the problem is that drm_device.tq is a tq_struct, which we just got
done redoing. tq->next was removed in favor of the new tq.list.

so drm_device.tq needs to be rewritten to use the new task queue, and the
problem will be solved.

ill dig through the archives and see if i can figure out the new queue (is
there something in /Documentation?) and get a patch out ... i wonder how
many other drivers need to be patched to handle the new task queue?

--
Robert M. Love
[email protected]
[email protected]

2000-12-10 23:11:09

by Robert Love

[permalink] [raw]
Subject: [PATCH] Matrox DRM (mga_dma.c) tq fix Was: Re: Compile Failure: mga_dma.o on 2.4.0-test12-pre8


i previously reported a problem with mga_dma.c not compiling due to the
new schedule task queue updates. below is a patch to use the new task
queue system.

--
Robert M. Love
[email protected]
[email protected]

--- linux/drivers/char/drm/mga_dma.c~ Sun Dec 10 17:35:17 2000
+++ linux/drivers/char/drm/mga_dma.c Sun Dec 10 17:35:37 2000
@@ -818,7 +818,7 @@
dev->dma->next_buffer = NULL;
dev->dma->next_queue = NULL;
dev->dma->this_buffer = NULL;
- dev->tq.next = NULL;
+ INIT_LIST_HEAD(&dev->tq.list);
dev->tq.sync = 0;
dev->tq.routine = mga_dma_task_queue;
dev->tq.data = dev;