Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 5 Jun 2023 22:31:56 -0600
From:      Warner Losh <imp@bsdimp.com>
To:        Jessica Clarke <jrtc27@freebsd.org>
Cc:        Xin LI <delphij@freebsd.org>, src-committers <src-committers@freebsd.org>,  "<dev-commits-src-all@freebsd.org>" <dev-commits-src-all@freebsd.org>,  "<dev-commits-src-main@freebsd.org>" <dev-commits-src-main@freebsd.org>
Subject:   Re: git: 1bbdfb0b4386 - main - gve: Add PNP info to PCI attachment of gve(4) driver.
Message-ID:  <CANCZdfpKY4OYKcuyEfD0bJ06NzaTj6PKmyWBm=uSt6vfy1qzqA@mail.gmail.com>
In-Reply-To: <6A5F859A-033A-43E1-81CB-B364662DE2F3@freebsd.org>
References:  <202306060406.35646hbA078041@gitrepo.freebsd.org> <6A5F859A-033A-43E1-81CB-B364662DE2F3@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
--00000000000083cf7805fd6e8084
Content-Type: text/plain; charset="UTF-8"

On Mon, Jun 5, 2023, 10:15 PM Jessica Clarke <jrtc27@freebsd.org> wrote:

> On 6 Jun 2023, at 05:06, Xin LI <delphij@FreeBSD.org> wrote:
> >
> > The branch main has been updated by delphij:
> >
> > URL:
> https://cgit.FreeBSD.org/src/commit/?id=1bbdfb0b438689a839e29094fcb582a104cbabd9
> >
> > commit 1bbdfb0b438689a839e29094fcb582a104cbabd9
> > Author:     Xin LI <delphij@FreeBSD.org>
> > AuthorDate: 2023-06-06 00:58:43 +0000
> > Commit:     Xin LI <delphij@FreeBSD.org>
> > CommitDate: 2023-06-06 04:05:55 +0000
> >
> >    gve: Add PNP info to PCI attachment of gve(4) driver.
> >
> >    Reviewed-by:            imp
> >    Differential Revision:  https://reviews.freebsd.org/D40429
> > ---
> > sys/dev/gve/gve_main.c | 28 ++++++++++++++++++++++++----
> > 1 file changed, 24 insertions(+), 4 deletions(-)
> >
> > diff --git a/sys/dev/gve/gve_main.c b/sys/dev/gve/gve_main.c
> > index ae45a0cfc24a..383fd326d33a 100644
> > --- a/sys/dev/gve/gve_main.c
> > +++ b/sys/dev/gve/gve_main.c
> > @@ -38,6 +38,16 @@
> >
> > #define GVE_DEFAULT_RX_COPYBREAK 256
> >
> > +/* Devices supported by this driver. */
> > +static struct gve_dev {
> > +        uint16_t vendor_id;
> > +        uint16_t device_id;
> > +        const char *name;
> > +} gve_devs[] = {
> > + { PCI_VENDOR_ID_GOOGLE, PCI_DEV_ID_GVNIC, "gVNIC" }
> > +};
> > +#define GVE_DEVS_COUNT nitems(gve_devs)
>
> IMO this obfuscates rather than helps given the loop iterates over
> gve_devs (and the macro references it).
>
> > +
> > struct sx gve_global_lock;
> >
> > static int
> > @@ -701,10 +711,18 @@ gve_service_task(void *arg, int pending)
> > static int
> > gve_probe(device_t dev)
> > {
> > - if (pci_get_vendor(dev) == PCI_VENDOR_ID_GOOGLE &&
> > -    pci_get_device(dev) == PCI_DEV_ID_GVNIC) {
> > - device_set_desc(dev, "gVNIC");
> > - return (BUS_PROBE_DEFAULT);
> > + uint16_t deviceid, vendorid;
> > + int i;
> > +
> > + vendorid = pci_get_vendor(dev);
> > + deviceid = pci_get_device(dev);
> > +
> > + for (i = 0; i < GVE_DEVS_COUNT; i++) {
> > + if (vendorid == gve_devs[i].vendor_id &&
> > +    deviceid == gve_devs[i].device_id) {
> > + device_set_desc(dev, gve_devs[i].name);
> > + return (BUS_PROBE_DEFAULT);
> > + }
> > }
> > return (ENXIO);
> > }
> > @@ -851,3 +869,5 @@ DRIVER_MODULE(gve, pci, gve_driver, gve_devclass, 0,
> 0);
> > #else
> > DRIVER_MODULE(gve, pci, gve_driver, 0, 0);
> > #endif
> > +MODULE_PNP_INFO("U16:vendor;U16:device", pci, gve, gve_devs,
>
> This is missing ;D:# so it will break as soon as you have a second
> entry in the table.
>

While the first bit is true, I though we encoded the per entry size so
trailing garbage didn't matter.. d# will be more useful in the future maybe.

Warner

Jess
>
> > +    GVE_DEVS_COUNT);
>

--00000000000083cf7805fd6e8084
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"auto"><div><br><br><div class=3D"gmail_quote"><div dir=3D"ltr" =
class=3D"gmail_attr">On Mon, Jun 5, 2023, 10:15 PM Jessica Clarke &lt;<a hr=
ef=3D"mailto:jrtc27@freebsd.org">jrtc27@freebsd.org</a>&gt; wrote:<br></div=
><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1=
px #ccc solid;padding-left:1ex">On 6 Jun 2023, at 05:06, Xin LI &lt;delphij=
@FreeBSD.org&gt; wrote:<br>
&gt; <br>
&gt; The branch main has been updated by delphij:<br>
&gt; <br>
&gt; URL: <a href=3D"https://cgit.FreeBSD.org/src/commit/?id=3D1bbdfb0b4386=
89a839e29094fcb582a104cbabd9" rel=3D"noreferrer noreferrer" target=3D"_blan=
k">https://cgit.FreeBSD.org/src/commit/?id=3D1bbdfb0b438689a839e29094fcb582=
a104cbabd9</a><br>
&gt; <br>
&gt; commit 1bbdfb0b438689a839e29094fcb582a104cbabd9<br>
&gt; Author:=C2=A0 =C2=A0 =C2=A0Xin LI &lt;delphij@FreeBSD.org&gt;<br>
&gt; AuthorDate: 2023-06-06 00:58:43 +0000<br>
&gt; Commit:=C2=A0 =C2=A0 =C2=A0Xin LI &lt;delphij@FreeBSD.org&gt;<br>
&gt; CommitDate: 2023-06-06 04:05:55 +0000<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 gve: Add PNP info to PCI attachment of gve(4) driver.<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 Reviewed-by:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 imp=
<br>
&gt;=C2=A0 =C2=A0 Differential Revision:=C2=A0 <a href=3D"https://reviews.f=
reebsd.org/D40429" rel=3D"noreferrer noreferrer" target=3D"_blank">https://=
reviews.freebsd.org/D40429</a><br>
&gt; ---<br>
&gt; sys/dev/gve/gve_main.c | 28 ++++++++++++++++++++++++----<br>
&gt; 1 file changed, 24 insertions(+), 4 deletions(-)<br>
&gt; <br>
&gt; diff --git a/sys/dev/gve/gve_main.c b/sys/dev/gve/gve_main.c<br>
&gt; index ae45a0cfc24a..383fd326d33a 100644<br>
&gt; --- a/sys/dev/gve/gve_main.c<br>
&gt; +++ b/sys/dev/gve/gve_main.c<br>
&gt; @@ -38,6 +38,16 @@<br>
&gt; <br>
&gt; #define GVE_DEFAULT_RX_COPYBREAK 256<br>
&gt; <br>
&gt; +/* Devices supported by this driver. */<br>
&gt; +static struct gve_dev {<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 uint16_t vendor_id;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 uint16_t device_id;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 const char *name;<br>
&gt; +} gve_devs[] =3D {<br>
&gt; + { PCI_VENDOR_ID_GOOGLE, PCI_DEV_ID_GVNIC, &quot;gVNIC&quot; }<br>
&gt; +};<br>
&gt; +#define GVE_DEVS_COUNT nitems(gve_devs)<br>
<br>
IMO this obfuscates rather than helps given the loop iterates over<br>
gve_devs (and the macro references it).<br>
<br>
&gt; +<br>
&gt; struct sx gve_global_lock;<br>
&gt; <br>
&gt; static int<br>
&gt; @@ -701,10 +711,18 @@ gve_service_task(void *arg, int pending)<br>
&gt; static int<br>
&gt; gve_probe(device_t dev)<br>
&gt; {<br>
&gt; - if (pci_get_vendor(dev) =3D=3D PCI_VENDOR_ID_GOOGLE &amp;&amp;<br>
&gt; -=C2=A0 =C2=A0 pci_get_device(dev) =3D=3D PCI_DEV_ID_GVNIC) {<br>
&gt; - device_set_desc(dev, &quot;gVNIC&quot;);<br>
&gt; - return (BUS_PROBE_DEFAULT);<br>
&gt; + uint16_t deviceid, vendorid;<br>
&gt; + int i;<br>
&gt; +<br>
&gt; + vendorid =3D pci_get_vendor(dev);<br>
&gt; + deviceid =3D pci_get_device(dev);<br>
&gt; +<br>
&gt; + for (i =3D 0; i &lt; GVE_DEVS_COUNT; i++) {<br>
&gt; + if (vendorid =3D=3D gve_devs[i].vendor_id &amp;&amp;<br>
&gt; +=C2=A0 =C2=A0 deviceid =3D=3D gve_devs[i].device_id) {<br>
&gt; + device_set_desc(dev, gve_devs[i].name);<br>
&gt; + return (BUS_PROBE_DEFAULT);<br>
&gt; + }<br>
&gt; }<br>
&gt; return (ENXIO);<br>
&gt; }<br>
&gt; @@ -851,3 +869,5 @@ DRIVER_MODULE(gve, pci, gve_driver, gve_devclass, =
0, 0);<br>
&gt; #else<br>
&gt; DRIVER_MODULE(gve, pci, gve_driver, 0, 0);<br>
&gt; #endif<br>
&gt; +MODULE_PNP_INFO(&quot;U16:vendor;U16:device&quot;, pci, gve, gve_devs=
,<br>
<br>
This is missing ;D:# so it will break as soon as you have a second<br>
entry in the table.<br></blockquote></div></div><div dir=3D"auto"><br></div=
><div dir=3D"auto">While the first bit is true, I though we encoded the per=
 entry size so trailing garbage didn&#39;t matter.. d# will be more useful =
in the future maybe.</div><div dir=3D"auto"><br></div><div dir=3D"auto">War=
ner</div><div dir=3D"auto"><br></div><div dir=3D"auto"><div class=3D"gmail_=
quote"><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-=
left:1px #ccc solid;padding-left:1ex">
Jess<br>
<br>
&gt; +=C2=A0 =C2=A0 GVE_DEVS_COUNT);<br>
</blockquote></div></div></div>

--00000000000083cf7805fd6e8084--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CANCZdfpKY4OYKcuyEfD0bJ06NzaTj6PKmyWBm=uSt6vfy1qzqA>