[pf4freebsd] if_fxp.c.patch

Dennis Berger db at nipsi.de
Wed Sep 15 21:07:04 PDT 2004


Hi,
today I tried the fxp driver patch and run into a kernelpanic if altq is 
enabled.
I guess it's something strange with the locking cause the debugger stops at
fxp_start_body();
this is exactly the point where a lock is needed, or whatever there 
happens...

pyun discovered similar problems months ago, he fixed it by modifying 
the LOCK macro.
to something like this

#define MY_LOCK     do { \
                                    if(!mtx_owned(&lock) \
                                        mtx_lock(&lock); \
                                     } while(0)
and
#define MY_UNLOCK do { \
                                     if(mtx_owned(&lock)); \
                                     mtx_unlock(&lock); \
                                     } while(0)

I don't know why he have to check if the lock is held...

greets Dennis




More information about the freebsd-pf mailing list