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 linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <CABkLObq+JtgECK=Q6dxOgDEZ++GxfLzutHGbWzt2uD5LStKjwg@mail.gmail.com> Date: Wed, 11 Jul 2012 17:10:14 +0200 From: Christian Riesch <christian.riesch@...cron.at> To: michael@...sch.at Cc: Ben Hutchings <bhutchings@...arflare.com>, netdev@...r.kernel.org, Oliver Neukum <oneukum@...e.de>, Eric Dumazet <edumazet@...gle.com>, Allan Chou <allan@...x.com.tw>, Mark Lord <kernel@...savvy.com>, Grant Grundler <grundler@...omium.org>, Ming Lei <tom.leiming@...il.com> Subject: Re: [PATCH 4/4] asix: Add a new driver for the AX88172A Hi again, On Wed, Jul 11, 2012 at 10:27 AM, Christian Riesch <christian.riesch@...cron.at> wrote: > Hi Ben and Michael, > > On Mon, Jul 9, 2012 at 12:30 PM, Christian Riesch > <christian.riesch@...cron.at> wrote: >> Hi Ben and Michael, >> >> On Sun, Jul 8, 2012 at 5:39 PM, Michael Riesch <michael@...sch.at> wrote: >>> On Fri, 2012-07-06 at 18:37 +0100, Ben Hutchings wrote: >>>> > + priv->mdio->priv = (void *)dev; >>>> > + priv->mdio->read = &asix_mdio_bus_read; >>>> > + priv->mdio->write = &asix_mdio_bus_write; >>>> > + priv->mdio->name = "Asix MDIO Bus"; >>>> > + snprintf(priv->mdio->id, MII_BUS_ID_SIZE, "asix-%s", >>>> > + dev_name(dev->net->dev.parent)); >>>> [...] >>>> >>>> I think you need to ensure that the bus identifier is unique throughout >>>> its lifetime, but net devices can be renamed and that could lead to a >>>> collision. Perhaps you could use the ifindex or the USB device path >>> >>> Ben, >>> >>> the dev_name function in the code above returns the sysfs filename of >>> the USB device (e.g. 1-0:1.0). >>> >>>> (though that might be too long). >>> >>> This may be a problem. The bus identifier may be 17 characters long, so >>> if we leave the endpoint/configuration part (:1.0) and the prefix away >>> it should be fine in any "normal" system. However, on a system with a >>> more-than-9-root-hubs 5-tier 127-devices-each USB infrastructure it >>> results in collisions. So is this approach acceptable? >>> >>> Using the ifindex sounds good to me, >>> >>> snprintf(priv->mdio->id, MII_BUS_ID_SIZE, "asix-%d", >>> dev->net->ifindex); >>> >>> works on any system with less than 10^12 network interfaces. >> >> Ok, I'll change that to use ifindex. > > No, I won't. > At the time the mdio bus is registered, ifindex is not yet set, so the > snprintf would always result in "asix-0". What do you think about snprintf(priv->mdio->id, MII_BUS_ID_SIZE, "usb-%03d:%03d", dev->udev->bus->busnum, dev->udev->devnum); ?? This would use the busnum/devnum identifier as reported by lsusb and would be short enough for an mdio bus name. Thanks, Christian -- 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