[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [bluetooth-dev] ppp over axis stack in 2.4 kernel

Kah Wai wrote:

> Hi, Has anyone manage to port the axis stack over to the 2.4 version
> kernel and run pppd?  Thanks,Kah Wai


But, I had to modify linux/include/spinlock.h to get it to work. In that
file, if you are not configured in SMP mode, then you must define
DEBUG_SPINLOCKS to be 1 or higher. By default it is 0, and as you can
see in that file, all the spin_lock macros are defined to do nothing.
I think this must be a mistake, but I've sent mail to linux-arm-kernel
and the author of PPP and nobody else seems to be interested.

One thing we should do is modify the bluetooth.c to function like
serial.c so that regardless of the condition of spin_lock macros this
problem does not appear. Specifically, in bt_write_lower_driver, we
should not call ldisc.write_wakeup directly. Instead, we should defer it
to a work queue for execution in another context. The fact that we
don't, and that the spin_locks used by PPP by default do nothing in 2.4,
is causing problems.

Also, you will need a modified bluetooth stack to even compile under 2.4
-- but I assume that you got that far or you wouldn't be having problems
with PPP.