* [PATCH net-next] net/ncsi: Don't take any action on HNCDSC AEN
@ 2017-12-15 5:16 Samuel Mendoza-Jonas
2017-12-15 6:06 ` Jeremy Kerr
2017-12-18 19:50 ` David Miller
0 siblings, 2 replies; 3+ messages in thread
From: Samuel Mendoza-Jonas @ 2017-12-15 5:16 UTC (permalink / raw)
To: netdev; +Cc: Samuel Mendoza-Jonas, David S . Miller, linux-kernel, openbmc
The current HNCDSC handler takes the status flag from the AEN packet and
will update or change the current channel based on this flag and the
current channel status.
However the flag from the HNCDSC packet merely represents the host link
state. While the state of the host interface is potentially interesting
information it should not affect the state of the NCSI link. Indeed the
NCSI specification makes no mention of any recommended action related to
the host network controller driver state.
Update the HNCDSC handler to record the host network driver status but
take no other action.
Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
---
net/ncsi/ncsi-aen.c | 35 +++--------------------------------
1 file changed, 3 insertions(+), 32 deletions(-)
diff --git a/net/ncsi/ncsi-aen.c b/net/ncsi/ncsi-aen.c
index 67e708e98ccf..e7b05de1e6d1 100644
--- a/net/ncsi/ncsi-aen.c
+++ b/net/ncsi/ncsi-aen.c
@@ -143,43 +143,14 @@ static int ncsi_aen_handler_hncdsc(struct ncsi_dev_priv *ndp,
if (!nc)
return -ENODEV;
- /* If the channel is active one, we need reconfigure it */
spin_lock_irqsave(&nc->lock, flags);
ncm = &nc->modes[NCSI_MODE_LINK];
hncdsc = (struct ncsi_aen_hncdsc_pkt *)h;
ncm->data[3] = ntohl(hncdsc->status);
- netdev_info(ndp->ndev.dev, "NCSI: HNCDSC AEN - channel %u state %s\n",
- nc->id, ncm->data[3] & 0x3 ? "up" : "down");
- if (!list_empty(&nc->link) ||
- nc->state != NCSI_CHANNEL_ACTIVE) {
- spin_unlock_irqrestore(&nc->lock, flags);
- return 0;
- }
-
- spin_unlock_irqrestore(&nc->lock, flags);
- if (!(ndp->flags & NCSI_DEV_HWA) && !(ncm->data[3] & 0x1))
- ndp->flags |= NCSI_DEV_RESHUFFLE;
-
- /* If this channel is the active one and the link doesn't
- * work, we have to choose another channel to be active one.
- * The logic here is exactly similar to what we do when link
- * is down on the active channel.
- *
- * On the other hand, we need configure it when host driver
- * state on the active channel becomes ready.
- */
- ncsi_stop_channel_monitor(nc);
-
- spin_lock_irqsave(&nc->lock, flags);
- nc->state = (ncm->data[3] & 0x1) ? NCSI_CHANNEL_INACTIVE :
- NCSI_CHANNEL_ACTIVE;
spin_unlock_irqrestore(&nc->lock, flags);
-
- spin_lock_irqsave(&ndp->lock, flags);
- list_add_tail_rcu(&nc->link, &ndp->channel_queue);
- spin_unlock_irqrestore(&ndp->lock, flags);
-
- ncsi_process_next_channel(ndp);
+ netdev_printk(KERN_DEBUG, ndp->ndev.dev,
+ "NCSI: host driver %srunning on channel %u\n",
+ ncm->data[3] & 0x1 ? "" : "not ", nc->id);
return 0;
}
--
2.15.1
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH net-next] net/ncsi: Don't take any action on HNCDSC AEN
2017-12-15 5:16 [PATCH net-next] net/ncsi: Don't take any action on HNCDSC AEN Samuel Mendoza-Jonas
@ 2017-12-15 6:06 ` Jeremy Kerr
2017-12-18 19:50 ` David Miller
1 sibling, 0 replies; 3+ messages in thread
From: Jeremy Kerr @ 2017-12-15 6:06 UTC (permalink / raw)
To: Samuel Mendoza-Jonas, netdev
Cc: openbmc, David S . Miller, linux-kernel, Brian J King
Hi Sam,
> The current HNCDSC handler takes the status flag from the AEN packet and
> will update or change the current channel based on this flag and the
> current channel status.
>
> However the flag from the HNCDSC packet merely represents the host link
> state. While the state of the host interface is potentially interesting
> information it should not affect the state of the NCSI link. Indeed the
> NCSI specification makes no mention of any recommended action related to
> the host network controller driver state.
Yep, sounds good to me. If the link status does change, we should see an
separate AEN for that event.
Acked-by: Jeremy Kerr <jk@ozlabs.org>
However: we're looking at some behaviour of Broadcom NICs at the moment,
where the phy will be reset on link change events. We'd want to make
sure that we're not just seeing the HNCDSC events for that too. I'd
suggest we also get an Ack from Brian (CCed) to make sure we're not
breaking that case.
Cheers,
Jeremy
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH net-next] net/ncsi: Don't take any action on HNCDSC AEN
2017-12-15 5:16 [PATCH net-next] net/ncsi: Don't take any action on HNCDSC AEN Samuel Mendoza-Jonas
2017-12-15 6:06 ` Jeremy Kerr
@ 2017-12-18 19:50 ` David Miller
1 sibling, 0 replies; 3+ messages in thread
From: David Miller @ 2017-12-18 19:50 UTC (permalink / raw)
To: sam; +Cc: netdev, linux-kernel, openbmc
From: Samuel Mendoza-Jonas <sam@mendozajonas.com>
Date: Fri, 15 Dec 2017 16:16:40 +1100
> The current HNCDSC handler takes the status flag from the AEN packet and
> will update or change the current channel based on this flag and the
> current channel status.
>
> However the flag from the HNCDSC packet merely represents the host link
> state. While the state of the host interface is potentially interesting
> information it should not affect the state of the NCSI link. Indeed the
> NCSI specification makes no mention of any recommended action related to
> the host network controller driver state.
>
> Update the HNCDSC handler to record the host network driver status but
> take no other action.
>
> Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
Applied, thanks.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2017-12-18 19:50 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-12-15 5:16 [PATCH net-next] net/ncsi: Don't take any action on HNCDSC AEN Samuel Mendoza-Jonas
2017-12-15 6:06 ` Jeremy Kerr
2017-12-18 19:50 ` David Miller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox