2008-02-14 01:47:22

by Kevin Hilman

[permalink] [raw]
Subject: [PATCH 2.6.24-rt1] SMC91x: Use special_lock when CONFIG_PREEMPT_[HARD|SOFT]IRQS

The smc_special_locks should also be used when either softIRQs or hard
IRQs are preempted which may lead to the same problems as under SMP.

Signed-off-by: Kevin Hilman <[email protected]>

---
drivers/net/smc91x.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/drivers/net/smc91x.c b/drivers/net/smc91x.c
index f198c49..be62616 100644
--- a/drivers/net/smc91x.c
+++ b/drivers/net/smc91x.c
@@ -530,7 +530,8 @@ static inline void smc_rcv(struct net_device *dev)
}
}

-#ifdef CONFIG_SMP
+#if defined(CONFIG_SMP) || \
+ defined(CONFIG_PREEMPT_SOFTIRQS) || defined(CONFIG_PREEMPT_HARDIRQS)
/*
* On SMP we have the following problem:
*
--
1.5.4


2008-02-14 14:03:21

by Nicolas Pitre

[permalink] [raw]
Subject: Re: [PATCH 2.6.24-rt1] SMC91x: Use special_lock when CONFIG_PREEMPT_[HARD|SOFT]IRQS

On Wed, 13 Feb 2008, Kevin Hilman wrote:

> The smc_special_locks should also be used when either softIRQs or hard
> IRQs are preempted which may lead to the same problems as under SMP.
>
> Signed-off-by: Kevin Hilman <[email protected]>

Acked-by: Nicolas Pitre <[email protected]>

>
> ---
> drivers/net/smc91x.c | 3 ++-
> 1 files changed, 2 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/net/smc91x.c b/drivers/net/smc91x.c
> index f198c49..be62616 100644
> --- a/drivers/net/smc91x.c
> +++ b/drivers/net/smc91x.c
> @@ -530,7 +530,8 @@ static inline void smc_rcv(struct net_device *dev)
> }
> }
>
> -#ifdef CONFIG_SMP
> +#if defined(CONFIG_SMP) || \
> + defined(CONFIG_PREEMPT_SOFTIRQS) || defined(CONFIG_PREEMPT_HARDIRQS)
> /*
> * On SMP we have the following problem:
> *
> --
> 1.5.4
>
> --
> 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/
>


Nicolas