2002-04-04 14:11:00

by Stelian Pop

[permalink] [raw]
Subject: [PATCH 2.5.8-pre1] ppp_deflate.c fix...

When compiling 2.5.8-pre1 without CONFIG_PREEMPT, and ppp all in modules,
I have unresolved symbols in ppp_deflate.o (local_bh_enable and
local_bh_disable). If CONFIG_PREEMPT is on, no problems.

The attached patch fixes it by adding some header files to ppp_deflate.c which
somehow makes it properly compile.

But after a second look, I must say I don't really understand how this is
supposed to work, for example:
include/linux/spinlock.h
* defines spin_lock_bh dependent on local_bh_disable
* defines preempt_disable
include/asm-i386/softirq.h
* defines local_bh_disable dependent on ... preempt_disable

Do we have here a circular dependency problem or ?

Stelian.

===== drivers/net/ppp_deflate.c 1.6 vs edited =====
--- 1.6/drivers/net/ppp_deflate.c Mon Mar 4 14:20:25 2002
+++ edited/drivers/net/ppp_deflate.c Thu Apr 4 14:31:05 2002
@@ -36,11 +36,13 @@
#include <linux/vmalloc.h>
#include <linux/init.h>
#include <linux/smp_lock.h>
+#include <linux/spinlock.h>

#include <linux/ppp_defs.h>
#include <linux/ppp-comp.h>

#include <linux/zlib.h>
+#include <linux/interrupt.h>

static spinlock_t comp_free_list_lock = SPIN_LOCK_UNLOCKED;
static LIST_HEAD(comp_free_list);
--
Stelian Pop <[email protected]>
Alcove - http://www.alcove.com