RE: 2.6.9-rc3-mm2

Hua Zhong
2004-10-04T22:06:00Z

> -----Original Message-----
> From: linux-kernel-owner@vger.kernel.org
> [mailto:linux-kernel-owner@vger.kernel.org] On Behalf Of Andrew Morton
> Sent: Monday, October 04, 2004 2:40 PM
> To: gww@btinternet.com; s.rivoir@gts.it; linux-kernel@vger.kernel.org
> Subject: Re: 2.6.9-rc3-mm2
>
>
> Andrew Morton <akpm@osdl.org> wrote:
> >
> > Could you try this patch? It'll locate the bug for us.
>
> Don't worry about this - Ingo found it.
>
> You could try these instead:
>
> ---
> 25/include/linux/netfilter_ipv4/ip_conntrack.h~conntrack-preem
> pt-safety-fix Mon Oct 4 14:36:19 2004
> +++ 25-akpm/include/linux/netfilter_ipv4/ip_conntrack.h
> Mon Oct 4 14:37:02 2004
> @@ -311,10 +311,11 @@ struct ip_conntrack_stat
> unsigned int expect_delete;
> };
>
> -#define CONNTRACK_STAT_INC(count) \
> - do { \
> - per_cpu(ip_conntrack_stat, get_cpu()).count++; \
> - put_cpu(); \
> +#define CONNTRACK_STAT_INC(count)
> \
> + do {
> \
> + preempt_disable();
> \
> + per_cpu(ip_conntrack_stat,
> smp_processor_id()).count++; \
> + preempt_disable();

I guess it should be "preempt_enable()"? :)

> \
> } while (0)
>
> /* eg. PROVIDES_CONNTRACK(ftp); */
> _
>
>
> --- 25/include/net/neighbour.h~neigh_stat-preempt-fix-fix
> Mon Oct 4 14:39:22 2004
> +++ 25-akpm/include/net/neighbour.h Mon Oct 4 14:39:22 2004
> @@ -113,8 +113,9 @@ struct neigh_statistics
>
> #define NEIGH_CACHE_STAT_INC(tbl, field)
> \
> do {
> \
> - (per_cpu_ptr((tbl)->stats,
> get_cpu())->field)++; \
> - put_cpu();
> \
> + preempt_disable();
> \
> + (per_cpu_ptr((tbl)->stats,
> smp_processor_id())->field)++; \
> + preempt_enable();
> \
> } while (0)
>
> struct neighbour
> _
>
> -
> To unsubscribe from this list: send the line "unsubscribe
> linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>