Message ID | 20231213121411.3091597-5-ioana.ciornei@nxp.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | dpaa2-switch: small improvements | expand |
On Wed, Dec 13, 2023 at 02:14:07PM +0200, Ioana Ciornei wrote: > The blamed commit added support for MAC endpoints in the dpaa2-switch > driver but omitted to add the ENDPOINT_CHANGED irq to the list of > interrupt sources. Fix this by extending the list of events which can > raise an interrupt by extending the mask passed to the > dpsw_set_irq_mask() firmware API. > > There is no user visible impact even without this patch since whenever a > switch interface is connected/disconnected from an endpoint both events > are set (LINK_CHANGED and ENDPOINT_CHANGED) and, luckily, the > LINK_CHANGED event could actually raise the interrupt and thus get the > MAC/PHY SW configuration started. > > Even with this, it's better to just not rely on undocumented firmware > behavior which can change. > > Fixes: 84cba72956fd ("dpaa2-switch: integrate the MAC endpoint support") Hi Ioana, As there is no user-visible bug, I think it is better to drop the Fixes tag. If you want to mention the commit, which is probably a good idea, then perhaps you can use something like: Introduced by commit ... > Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com> > --- > Changes in v2: > - add a bit more info in the commit message > > drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c b/drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c > index 654dd10df307..e91ade7c7c93 100644 > --- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c > +++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c > @@ -1550,9 +1550,9 @@ static irqreturn_t dpaa2_switch_irq0_handler_thread(int irq_num, void *arg) > > static int dpaa2_switch_setup_irqs(struct fsl_mc_device *sw_dev) > { > + u32 mask = DPSW_IRQ_EVENT_LINK_CHANGED | DPSW_IRQ_EVENT_ENDPOINT_CHANGED; > struct device *dev = &sw_dev->dev; > struct ethsw_core *ethsw = dev_get_drvdata(dev); > - u32 mask = DPSW_IRQ_EVENT_LINK_CHANGED; > struct fsl_mc_device_irq *irq; > int err; > > -- > 2.34.1 >
diff --git a/drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c b/drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c index 654dd10df307..e91ade7c7c93 100644 --- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c +++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c @@ -1550,9 +1550,9 @@ static irqreturn_t dpaa2_switch_irq0_handler_thread(int irq_num, void *arg) static int dpaa2_switch_setup_irqs(struct fsl_mc_device *sw_dev) { + u32 mask = DPSW_IRQ_EVENT_LINK_CHANGED | DPSW_IRQ_EVENT_ENDPOINT_CHANGED; struct device *dev = &sw_dev->dev; struct ethsw_core *ethsw = dev_get_drvdata(dev); - u32 mask = DPSW_IRQ_EVENT_LINK_CHANGED; struct fsl_mc_device_irq *irq; int err;
The blamed commit added support for MAC endpoints in the dpaa2-switch driver but omitted to add the ENDPOINT_CHANGED irq to the list of interrupt sources. Fix this by extending the list of events which can raise an interrupt by extending the mask passed to the dpsw_set_irq_mask() firmware API. There is no user visible impact even without this patch since whenever a switch interface is connected/disconnected from an endpoint both events are set (LINK_CHANGED and ENDPOINT_CHANGED) and, luckily, the LINK_CHANGED event could actually raise the interrupt and thus get the MAC/PHY SW configuration started. Even with this, it's better to just not rely on undocumented firmware behavior which can change. Fixes: 84cba72956fd ("dpaa2-switch: integrate the MAC endpoint support") Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com> --- Changes in v2: - add a bit more info in the commit message drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)