[haiku-development] [haiku-development]firewire patch fix gcc4 build instability

  • From: "JiSheng Zhang" <jszhang3@xxxxxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Sat, 5 Jul 2008 20:57:16 +0800

Hi all,

Firewire stack use two external kernel modules: dpc and timer(copied
from src/add-ons/kernel/drivers/network/ipro1000/timer.c), when they
are used together as bellow, it produce the strange panic bug. A
simple kernel module can reproduce the problem easily:
1.create_timer, the timer hook function queue a dpc hook function into
a dpc handle
2.the dpc hook function can be just simple dprintf sth.
I don't know why and why gcc2 build is ok. The patch just bypass this situation.

IMO, could we introduce a mechanism like the workqueue in Linux kernel?
1.Hook functions are run in the context of a special kernel process
2.The execution of hook functions can be delayed for an interval
including 0(interval 0 is what the dpc do)

This patch should fix firewire gcc4 build instability. So, ticket 1727
(http://dev.haiku-os.org/ticket/1727) should be closed. For ticket
2243(http://dev.haiku-os.org/ticket/2243), I think this is the
hardware bug, I encounter the same problem under a Linux box as
replied in the ticket. IMO, it does not matter just type exit once
KDLed due to the broken hardware bug, although driver should try to
adapt all hardware including some broken ones.

Could firewire fw_raw and fwcontrol be added to default haiku image to
test the stack a lot?

Thanks in advance,
JiSheng

Other related posts: