Skip to content

Commit dbe1730

Browse files
congwang1986davem330
authored andcommitted
bridge: fix netconsole setup over bridge
Commit 93d8bf9 ("bridge: cleanup netpoll code") introduced a check in br_netpoll_enable(), but this check is incorrect for br_netpoll_setup(). This patch moves the code after the check into __br_netpoll_enable() and calls it in br_netpoll_setup(). For br_add_if(), the check is still needed. Fixes: 93d8bf9 ("bridge: cleanup netpoll code") Cc: Toshiaki Makita <[email protected]> Cc: Stephen Hemminger <[email protected]> Cc: David S. Miller <[email protected]> Signed-off-by: Cong Wang <[email protected]> Signed-off-by: Cong Wang <[email protected]> Acked-by: Toshiaki Makita <[email protected]> Tested-by: Toshiaki Makita <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent ed98df3 commit dbe1730

File tree

1 file changed

+28
-23
lines changed

1 file changed

+28
-23
lines changed

net/bridge/br_device.c

Lines changed: 28 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,33 @@ static void br_netpoll_cleanup(struct net_device *dev)
226226
br_netpoll_disable(p);
227227
}
228228

229+
static int __br_netpoll_enable(struct net_bridge_port *p, gfp_t gfp)
230+
{
231+
struct netpoll *np;
232+
int err;
233+
234+
np = kzalloc(sizeof(*p->np), gfp);
235+
if (!np)
236+
return -ENOMEM;
237+
238+
err = __netpoll_setup(np, p->dev, gfp);
239+
if (err) {
240+
kfree(np);
241+
return err;
242+
}
243+
244+
p->np = np;
245+
return err;
246+
}
247+
248+
int br_netpoll_enable(struct net_bridge_port *p, gfp_t gfp)
249+
{
250+
if (!p->br->dev->npinfo)
251+
return 0;
252+
253+
return __br_netpoll_enable(p, gfp);
254+
}
255+
229256
static int br_netpoll_setup(struct net_device *dev, struct netpoll_info *ni,
230257
gfp_t gfp)
231258
{
@@ -236,7 +263,7 @@ static int br_netpoll_setup(struct net_device *dev, struct netpoll_info *ni,
236263
list_for_each_entry(p, &br->port_list, list) {
237264
if (!p->dev)
238265
continue;
239-
err = br_netpoll_enable(p, gfp);
266+
err = __br_netpoll_enable(p, gfp);
240267
if (err)
241268
goto fail;
242269
}
@@ -249,28 +276,6 @@ static int br_netpoll_setup(struct net_device *dev, struct netpoll_info *ni,
249276
goto out;
250277
}
251278

252-
int br_netpoll_enable(struct net_bridge_port *p, gfp_t gfp)
253-
{
254-
struct netpoll *np;
255-
int err;
256-
257-
if (!p->br->dev->npinfo)
258-
return 0;
259-
260-
np = kzalloc(sizeof(*p->np), gfp);
261-
if (!np)
262-
return -ENOMEM;
263-
264-
err = __netpoll_setup(np, p->dev, gfp);
265-
if (err) {
266-
kfree(np);
267-
return err;
268-
}
269-
270-
p->np = np;
271-
return err;
272-
}
273-
274279
void br_netpoll_disable(struct net_bridge_port *p)
275280
{
276281
struct netpoll *np = p->np;

0 commit comments

Comments
 (0)