[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20070218214359.GA4226@tv-sign.ru>
Date: Mon, 19 Feb 2007 00:43:59 +0300
From: Oleg Nesterov <oleg@...sign.ru>
To: Andrew Morton <akpm@...ux-foundation.org>,
Jarek Poplawski <jarkao2@...pl>,
"David S. Miller" <davem@...emloft.net>
Cc: David Howells <dhowells@...hat.com>, linux-kernel@...r.kernel.org
Subject: [PATCH 1/3] net/bridge/br_if.c: don't use _WORK_NAR
Afaics, noautorel work_struct buys nothing for "struct net_bridge_port".
If del_nbp()->cancel_delayed_work(&p->carrier_check) fails, port_carrier_check
may be called later anyway. So the reading of *work in port_carrier_check() is
equally unsafe with or without this patch.
Signed-off-by: Oleg Nesterov <oleg@...sign.ru>
--- WQ/net/bridge/br_if.c~1_bridge 2007-02-18 22:56:49.000000000 +0300
+++ WQ/net/bridge/br_if.c 2007-02-18 23:06:15.000000000 +0300
@@ -85,7 +85,6 @@ static void port_carrier_check(struct wo
dev = container_of(work, struct net_bridge_port,
carrier_check.work)->dev;
- work_release(work);
rtnl_lock();
p = dev->br_port;
@@ -282,7 +281,7 @@ static struct net_bridge_port *new_nbp(s
p->port_no = index;
br_init_port(p);
p->state = BR_STATE_DISABLED;
- INIT_DELAYED_WORK_NAR(&p->carrier_check, port_carrier_check);
+ INIT_DELAYED_WORK(&p->carrier_check, port_carrier_check);
br_stp_port_timer_init(p);
kobject_init(&p->kobj);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists