lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Wed, 30 Apr 2014 21:40:57 +0200 From: Sebastian Hesselbarth <sebastian.hesselbarth@...il.com> To: Ezequiel Garcia <ezequiel.garcia@...e-electrons.com>, netdev@...r.kernel.org CC: Thomas Petazzoni <thomas.petazzoni@...e-electrons.com>, Gregory Clement <gregory.clement@...e-electrons.com>, Tawfik Bayouk <tawfik@...vell.com>, Lior Amsalem <alior@...vell.com>, "David S. Miller" <davem@...emloft.net> Subject: Re: [PATCH v2 for v3.15] net: mvmdio: Check for a valid interrupt instead of an error On 04/30/2014 06:28 PM, Ezequiel Garcia wrote: > The following commit: > > commit 9ec36cafe43bf835f8f29273597a5b0cbc8267ef > Author: Rob Herring <robh@...nel.org> > Date: Wed Apr 23 17:57:41 2014 -0500 > > of/irq: do irq resolution in platform_get_irq > > changed platform_get_irq() which now returns EINVAL and EPROBE_DEFER, > in addition to ENXIO. If there's no interrupt for mvmdio, platform_get_irq() > returns EINVAL, but we currently check only for ENXIO. > > Fix this by looking for a positive integer, which is the proper way of > validating a virtual interrupt number. > > While at it, add a proper handling for the deferral probe case. > > Signed-off-by: Ezequiel Garcia <ezequiel.garcia@...e-electrons.com> Reviewed-by: Sebastian Hesselbarth <sebastian.hesselbarth@...il.com> Thanks! > --- > Changes from v1: Handle the deferral probe as well. > > drivers/net/ethernet/marvell/mvmdio.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/ethernet/marvell/mvmdio.c b/drivers/net/ethernet/marvell/mvmdio.c > index b161a52..9d5ced2 100644 > --- a/drivers/net/ethernet/marvell/mvmdio.c > +++ b/drivers/net/ethernet/marvell/mvmdio.c > @@ -232,7 +232,7 @@ static int orion_mdio_probe(struct platform_device *pdev) > clk_prepare_enable(dev->clk); > > dev->err_interrupt = platform_get_irq(pdev, 0); > - if (dev->err_interrupt != -ENXIO) { > + if (dev->err_interrupt > 0) { > ret = devm_request_irq(&pdev->dev, dev->err_interrupt, > orion_mdio_err_irq, > IRQF_SHARED, pdev->name, dev); > @@ -241,6 +241,9 @@ static int orion_mdio_probe(struct platform_device *pdev) > > writel(MVMDIO_ERR_INT_SMI_DONE, > dev->regs + MVMDIO_ERR_INT_MASK); > + > + } else if (dev->err_interrupt == -EPROBE_DEFER) { > + return -EPROBE_DEFER; > } > > mutex_init(&dev->lock); > -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists