summaryrefslogtreecommitdiffstats
path: root/net/ncsi/ncsi-rsp.c
diff options
context:
space:
mode:
authorGavin Shan <gwshan@linux.vnet.ibm.com>2016-07-19 03:54:20 +0200
committerDavid S. Miller <davem@davemloft.net>2016-07-20 05:49:17 +0200
commit7a82ecf4cfb854955198945340ae13558b64e1af (patch)
treea2ae3a2862a8e724231de15f8e0582437fd877d3 /net/ncsi/ncsi-rsp.c
parentnet/ncsi: Package and channel management (diff)
downloadlinux-7a82ecf4cfb854955198945340ae13558b64e1af.tar.xz
linux-7a82ecf4cfb854955198945340ae13558b64e1af.zip
net/ncsi: NCSI AEN packet handler
This introduces NCSI AEN packet handlers that result in (A) the currently active channel is reconfigured; (B) Currently active channel is deconfigured and disabled, another channel is chosen as active one and configured. Case (B) won't happen if hardware arbitration has been enabled, the channel that was in active state is suspended simply. Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com> Acked-by: Joel Stanley <joel@jms.id.au> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ncsi/ncsi-rsp.c')
-rw-r--r--net/ncsi/ncsi-rsp.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/net/ncsi/ncsi-rsp.c b/net/ncsi/ncsi-rsp.c
index a21af88330aa..af84389a6bf1 100644
--- a/net/ncsi/ncsi-rsp.c
+++ b/net/ncsi/ncsi-rsp.c
@@ -980,8 +980,12 @@ int ncsi_rcv_rsp(struct sk_buff *skb, struct net_device *dev,
if (!ndp)
return -ENODEV;
- /* Find the handler */
+ /* Check if it is AEN packet */
hdr = (struct ncsi_pkt_hdr *)skb_network_header(skb);
+ if (hdr->type == NCSI_PKT_AEN)
+ return ncsi_aen_handler(ndp, skb);
+
+ /* Find the handler */
for (i = 0; i < ARRAY_SIZE(ncsi_rsp_handlers); i++) {
if (ncsi_rsp_handlers[i].type == hdr->type) {
if (ncsi_rsp_handlers[i].handler)