On 10/25/19 11:27 PM, Tim Harvey wrote: > request_irq requires irq names to be static/allocated and not on the stack
It would be nice if this patch could also go to the mainline Linux kernel, so we do not have to maintain it any more. John already applied it to OpenWrt. > > Signed-off-by: Tim Harvey <thar...@gateworks.com> > --- > ...1-net-thunderx-workaround-BGX-TX-Underflow-issue.patch | 15 > +++++++++++---- > 1 file changed, 11 insertions(+), 4 deletions(-) > > diff --git > a/target/linux/octeontx/patches-4.14/0001-net-thunderx-workaround-BGX-TX-Underflow-issue.patch > > b/target/linux/octeontx/patches-4.14/0001-net-thunderx-workaround-BGX-TX-Underflow-issue.patch > index ef7aef3..5743745 100644 > --- > a/target/linux/octeontx/patches-4.14/0001-net-thunderx-workaround-BGX-TX-Underflow-issue.patch > +++ > b/target/linux/octeontx/patches-4.14/0001-net-thunderx-workaround-BGX-TX-Underflow-issue.patch > @@ -15,7 +15,15 @@ Signed-off-by: Tim Harvey <thar...@gateworks.com> > > --- a/drivers/net/ethernet/cavium/thunder/thunder_bgx.c > +++ b/drivers/net/ethernet/cavium/thunder/thunder_bgx.c > -@@ -1344,6 +1344,54 @@ static int bgx_init_phy(struct bgx *bgx) > +@@ -56,6 +56,7 @@ struct bgx { > + bool is_dlm; > + bool is_rgx; > + int phy_mode; > ++ char irq_name[7]; > + }; > + > + static struct bgx *bgx_vnic[MAX_BGX_THUNDER]; > +@@ -1344,6 +1345,53 @@ static int bgx_init_phy(struct bgx *bgx) > return bgx_init_of_phy(bgx); > } > > @@ -49,7 +57,6 @@ Signed-off-by: Tim Harvey <thar...@gateworks.com> > + struct bgx *bgx = pci_get_drvdata(pdev); > + struct device *dev = &pdev->dev; > + int num_vec, ret; > -+ char irq_name[32]; > + > + /* Enable MSI-X */ > + num_vec = pci_msix_vec_count(pdev); > @@ -58,9 +65,9 @@ Signed-off-by: Tim Harvey <thar...@gateworks.com> > + dev_err(dev, "Req for #%d msix vectors failed\n", num_vec); > + return 1; > + } > -+ sprintf(irq_name, "BGX%d", bgx->bgx_id); > ++ sprintf(bgx->irq_name, "BGX%d", bgx->bgx_id); I would prefer a snprintf here, it should not overflow as long as gx_id is less than 1000, but just to be safe. > + ret = request_irq(pci_irq_vector(pdev, GMPX_GMI_TX_INT), > -+ bgx_intr_handler, 0, irq_name, bgx); > ++ bgx_intr_handler, 0, bgx->irq_name, bgx); > + if (ret) > + return 1; > + >
signature.asc
Description: OpenPGP digital signature
_______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel