diff options
Diffstat (limited to 'net/ncsi/ncsi-manage.c')
-rw-r--r-- | net/ncsi/ncsi-manage.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/net/ncsi/ncsi-manage.c b/net/ncsi/ncsi-manage.c index 091284760d21..6aa0614d2d28 100644 --- a/net/ncsi/ncsi-manage.c +++ b/net/ncsi/ncsi-manage.c | |||
@@ -19,6 +19,7 @@ | |||
19 | #include <net/addrconf.h> | 19 | #include <net/addrconf.h> |
20 | #include <net/ipv6.h> | 20 | #include <net/ipv6.h> |
21 | #include <net/if_inet6.h> | 21 | #include <net/if_inet6.h> |
22 | #include <net/genetlink.h> | ||
22 | 23 | ||
23 | #include "internal.h" | 24 | #include "internal.h" |
24 | #include "ncsi-pkt.h" | 25 | #include "ncsi-pkt.h" |
@@ -406,6 +407,9 @@ static void ncsi_request_timeout(struct timer_list *t) | |||
406 | { | 407 | { |
407 | struct ncsi_request *nr = from_timer(nr, t, timer); | 408 | struct ncsi_request *nr = from_timer(nr, t, timer); |
408 | struct ncsi_dev_priv *ndp = nr->ndp; | 409 | struct ncsi_dev_priv *ndp = nr->ndp; |
410 | struct ncsi_cmd_pkt *cmd; | ||
411 | struct ncsi_package *np; | ||
412 | struct ncsi_channel *nc; | ||
409 | unsigned long flags; | 413 | unsigned long flags; |
410 | 414 | ||
411 | /* If the request already had associated response, | 415 | /* If the request already had associated response, |
@@ -419,6 +423,18 @@ static void ncsi_request_timeout(struct timer_list *t) | |||
419 | } | 423 | } |
420 | spin_unlock_irqrestore(&ndp->lock, flags); | 424 | spin_unlock_irqrestore(&ndp->lock, flags); |
421 | 425 | ||
426 | if (nr->flags == NCSI_REQ_FLAG_NETLINK_DRIVEN) { | ||
427 | if (nr->cmd) { | ||
428 | /* Find the package */ | ||
429 | cmd = (struct ncsi_cmd_pkt *) | ||
430 | skb_network_header(nr->cmd); | ||
431 | ncsi_find_package_and_channel(ndp, | ||
432 | cmd->cmd.common.channel, | ||
433 | &np, &nc); | ||
434 | ncsi_send_netlink_timeout(nr, np, nc); | ||
435 | } | ||
436 | } | ||
437 | |||
422 | /* Release the request */ | 438 | /* Release the request */ |
423 | ncsi_free_request(nr); | 439 | ncsi_free_request(nr); |
424 | } | 440 | } |