2002-03-10 16:44:04

by Mikael Pettersson

[permalink] [raw]
Subject: [PATCH] 2.5.6 PPP deflate breakage on UP

In kernel 2.5.6, PPP deflate isn't compiled correctly if CONFIG_SMP
is off: the macros local_bh_enable() and local_bh_disable() aren't
expanded and instead turn into references to undefined functions.
The problem is that <linux/smp_lock.h> is insufficient in UP configs.

The patch below adds an #include <linux/interrupt.h> which works
around this. I'm not sure about <linux/smp_lock.h>: it really doesn't
look appropriate for the locking primitives being used in ppp_deflate.c.

/Mikael

--- linux-2.5.6/drivers/net/ppp_deflate.c.~1~ Sat Mar 9 12:53:13 2002
+++ linux-2.5.6/drivers/net/ppp_deflate.c Sun Mar 10 14:32:04 2002
@@ -35,6 +35,7 @@
#include <linux/slab.h>
#include <linux/vmalloc.h>
#include <linux/init.h>
+#include <linux/interrupt.h>
#include <linux/smp_lock.h>

#include <linux/ppp_defs.h>


2002-03-11 10:38:33

by David Woodhouse

[permalink] [raw]
Subject: Re: [PATCH] 2.5.6 PPP deflate breakage on UP


[email protected] said:
> The patch below adds an #include <linux/interrupt.h> which works
> around this. I'm not sure about <linux/smp_lock.h>: it really doesn't
> look appropriate for the locking primitives being used in
> ppp_deflate.c.

You're right - it can go.

In fact, I think the whole delayed-vfree thing can be dropped in davej's
tree and fed to Linus when the PPP locking changes are.

--
dwmw2


2002-03-19 06:31:40

by John Covici

[permalink] [raw]
Subject: Re: [PATCH] 2.5.6 PPP deflate breakage on UP

The following patch also works, but may not be the most elegant in the
world.

--- ppp_deflate.c.orig Mon Mar 18 03:42:05 2002
+++ ppp_deflate.c Mon Mar 18 12:28:48 2002
@@ -41,6 +41,8 @@
#include <linux/ppp-comp.h>

#include <linux/zlib.h>
+#include <asm/softirq.h>
+extern asmlinkage void do_softirq();

static spinlock_t comp_free_list_lock = SPIN_LOCK_UNLOCKED;
static LIST_HEAD(comp_free_list);

on Sun, 10 Mar 2002 17:43:43 +0100 (MET) Mikael Pettersson <[email protected]> wrote:

> In kernel 2.5.6, PPP deflate isn't compiled correctly if CONFIG_SMP
> is off: the macros local_bh_enable() and local_bh_disable() aren't
> expanded and instead turn into references to undefined functions.
> The problem is that <linux/smp_lock.h> is insufficient in UP configs.
>
> The patch below adds an #include <linux/interrupt.h> which works
> around this. I'm not sure about <linux/smp_lock.h>: it really doesn't
> look appropriate for the locking primitives being used in ppp_deflate.c.
>
> /Mikael
>
> --- linux-2.5.6/drivers/net/ppp_deflate.c.~1~ Sat Mar 9 12:53:13 2002
> +++ linux-2.5.6/drivers/net/ppp_deflate.c Sun Mar 10 14:32:04 2002
> @@ -35,6 +35,7 @@
> #include <linux/slab.h>
> #include <linux/vmalloc.h>
> #include <linux/init.h>
> +#include <linux/interrupt.h>
> #include <linux/smp_lock.h>
>
> #include <linux/ppp_defs.h>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/

--
John Covici
[email protected]