Skip to contentSkip to conversation

INIT_LIST_HEAD marco audit

DISCUSSION Frank Davis 5 participants 9 messages Dec 11, 2000

lore
Share & tools
lore
#0 lore raw

Hello all,
It looks like we need to perform an audit of test12-pre8 and find all the changes where INIT_LIST_HEAD should now be used. Does anyone have a complete list of all the problem drivers, as well as a list of the ones that have already been fixed? If so, please post it to l-k . I don't mind maintaining a list of those patches..Just send them to [email protected] .
Regards,
-Frank

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/

#1 lore raw

Generating an updated batch patch right now....

Quoted 3 lines · Frank Davis

Hello all,
It looks like we need to perform an audit of test12-pre8 and find all the changes where INIT_LIST_HEAD should now be used. Does anyone have a complete list of all the problem drivers, as well as a list of the ones that have already been fixed? If so, please post it to l-k . I don't mind maintaining a list of those patches..Just send them to [email protected] .

Signature · 12 lines
=====================================================================
Mohammad A. Haque                              http://www.haque.net/ 
                                               [email protected]

  "Alcohol and calculus don't mix.             Project Lead
   Don't drink and derive." --Unknown          http://wm.themes.org/
                                               [email protected]
=====================================================================
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/
#2 lore raw
In reply to Frank Davis

The follwing files probably need to be patched to use the DECLARE_TASK_QUEUE() macro and new tq_struct, but I don't have time right now to go through them.

(grep for "static struct tq_struct.*=")

drivers/net/wan/sdlamain.c
drivers/block/paride/pseudo.h
drivers/scsi/atari_NCR5380.c
drivers/scsi/mac_NCR5380.c
drivers/scsi/oktagon_esp.c
drivers/scsi/sun3_NCR5380.c
drivers/isdn/hisax/foreign.c
drivers/isdn/hisax/foreign.c
drivers/isdn/hisax/foreign.c
drivers/acorn/block/mfmhd.c
drivers/pcmcia/i82365.c
drivers/pcmcia/tcic.c
drivers/s390/block/dasd.c

Quoted 3 lines · Frank Davis

Hello all,
It looks like we need to perform an audit of test12-pre8 and find all the changes where INIT_LIST_HEAD should now be used. Does anyone have a complete list of all the problem drivers, as well as a list of the ones that have already been fixed? If so, please post it to l-k . I don't mind maintaining a list of those patches..Just send them to [email protected] .

Signature · 12 lines
=====================================================================
Mohammad A. Haque                              http://www.haque.net/ 
                                               [email protected]

  "Alcohol and calculus don't mix.             Project Lead
   Don't drink and derive." --Unknown          http://wm.themes.org/
                                               [email protected]
=====================================================================
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/
#3 lore raw
In reply to Frank Davis

Add drivers/i2o/i2o_lan.c to the list. My patch does patch this file but I did a copy paste and didn't replace run_task_queue with i2o_lan_receive_post.

Quoted 20 lines · Mohammad A. Haque

The follwing files probably need to be patched to use the DECLARE_TASK_QUEUE() macro and new tq_struct, but I don't have time right now to go through them.

(grep for "static struct tq_struct.*=")

drivers/net/wan/sdlamain.c
drivers/block/paride/pseudo.h
drivers/scsi/atari_NCR5380.c
drivers/scsi/mac_NCR5380.c
drivers/scsi/oktagon_esp.c
drivers/scsi/sun3_NCR5380.c
drivers/isdn/hisax/foreign.c
drivers/isdn/hisax/foreign.c
drivers/isdn/hisax/foreign.c
drivers/acorn/block/mfmhd.c
drivers/pcmcia/i82365.c
drivers/pcmcia/tcic.c
drivers/s390/block/dasd.c

Signature · 12 lines
=====================================================================
Mohammad A. Haque                              http://www.haque.net/ 
                                               [email protected]

  "Alcohol and calculus don't mix.             Project Lead
   Don't drink and derive." --Unknown          http://wm.themes.org/
                                               [email protected]
=====================================================================
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/
#4 lore raw
In reply to Frank Davis
Quoted 4 lines · Mohammad A. Haque

The follwing files probably need to be patched to use the DECLARE_TASK_QUEUE() macro and new tq_struct, but I don't have time right now to go through them.

Would someone who knows what to do send out a patch for these two drivers?

	drivers/pcmcia/i82365.c
	drivers/pcmcia/tcic.c

Thanks!

Miles
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/

#5 lore raw
In reply to Frank Davis

Does this look right to people?

--- linux-2.4.0-test12.old/drivers/pcmcia/tcic.c Sun Nov 19 21:56:30
2000
+++ linux-2.4.0-test12/drivers/pcmcia/tcic.c Sun Dec 10 23:00:07 2000
@@ -548,8 +548,9 @@
}
}

-static struct tq_struct tcic_task = {
- routine: tcic_bh
+DECLARE_TASK_QUEUE(tcic_task);
+struct tq_struct run_tcic_task = {
+ routine: (void (*)(void *)) tcic_bh
};

static void tcic_interrupt(int irq, void *dev, struct pt_regs *regs)
--- linux-2.4.0-test12.old/drivers/pcmcia/i82365.c Sun Nov 19 21:56:30
2000
+++ linux-2.4.0-test12/drivers/pcmcia/i82365.c Sun Dec 10 23:06:01 2000
@@ -877,8 +877,9 @@
}
}

-static struct tq_struct pcic_task = {
- routine: pcic_bh
+DECLARE_TASK_QUEUE(pcic_task);
+struct tq_struct run_pcic_task = {
+ routine: (void (*)(void *)) pcic_bh
};

static void pcic_interrupt(int irq, void *dev,

Quoted 5 lines · Miles Lane

Would someone who knows what to do send out a patch for these two drivers?

        drivers/pcmcia/i82365.c
        drivers/pcmcia/tcic.c
Signature · 12 lines
=====================================================================
Mohammad A. Haque                              http://www.haque.net/ 
                                               [email protected]

  "Alcohol and calculus don't mix.             Project Lead
   Don't drink and derive." --Unknown          http://wm.themes.org/
                                               [email protected]
=====================================================================
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/
#6 lore raw

Review

Quoted 6 lines
(quoted diff) +3 -2
-static struct tq_struct tcic_task = {
-	routine:	tcic_bh
+DECLARE_TASK_QUEUE(tcic_task);
+struct tq_struct run_tcic_task = {
+	routine:	(void (*)(void *)) tcic_bh
 };

Why remove the 'static' ?
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/

#7 lore raw

Thinko.

Question is... Adam Richter posted a patch for i2o_lan.c that does this...

static struct tq_struct i2o_post_buckets_task = {
	list: LIST_HEAD_INIT(i2o_post_buckets_task.list),
	sync: 0,
	routine: (void (*)(void *))i2o_lan_receive_post,
	data: (void *) 0
};

If that's correct then is the only fix for structures similar to tcic_task to type cast the routine?

Quoted 9 lines · Alan Cox

Review

Quoted 7 lines
(quoted diff) +3 -2
-static struct tq_struct tcic_task = {
-     routine:        tcic_bh
+DECLARE_TASK_QUEUE(tcic_task);
+struct tq_struct run_tcic_task = {
+     routine:        (void (*)(void *)) tcic_bh
 };

Why remove the 'static' ?

Signature · 12 lines
=====================================================================
Mohammad A. Haque                              http://www.haque.net/ 
                                               [email protected]

  "Alcohol and calculus don't mix.             Project Lead
   Don't drink and derive." --Unknown          http://wm.themes.org/
                                               [email protected]
=====================================================================
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/
#8 lore raw
In reply to Alan Cox
Quoted 6 lines · Mohammad A. Haque

Thinko.

Question is... Adam Richter posted a patch for i2o_lan.c that does this...

Quoted 7 lines
static struct tq_struct i2o_post_buckets_task = {
        list: LIST_HEAD_INIT(i2o_post_buckets_task.list),
        sync: 0,
        routine: (void (*)(void *))i2o_lan_receive_post,
        data: (void *) 0
};

Will someone pleeeeze compile, test, use and submit this?

include/linux/tqueue.h +10 -0
@@ -47,6 +47,16 @@
 #define DECLARE_TASK_QUEUE(q)	LIST_HEAD(q)
 #define TQ_ACTIVE(q)		(!list_empty(&q))
 
+#define INIT_TQ_STRUCT(routine, data)				\
+	{	list: LIST_HEAD_INIT(*(struct list_head *)0),	\
+		sync: 0,					\
+		routine: (routine),				\
+		data: (data),					\
+	}
+
+#define DECLARE_TQ_STRUCT(name, routine, data)			\
+	struct tq_struct name = INIT_TQ_STRUCT(routine, data)
+
 extern task_queue tq_timer, tq_immediate, tq_disk;
 
 /*

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/