[vbox-dev] [External] : Re: [PATCH] Fix for bug #21516

Peter Palúch peter.paluch.sk at gmail.com
Mon Aug 14 16:20:00 GMT 2023


Hi Alexander,

Gotcha! :) Yup, this is more appropriate. Thank you for keeping a keen eye
on this!

Best regards,
Peter

po 14. 8. 2023 o 18:09 Alexander Eichner <alexander.eichner at oracle.com>
napísal(a):

> Hello Peter,
>
> below is the patch used to fix the issue.
>
> Regards,
> Alexander Eichner
>
> Index: trunk/src/VBox/Devices/Network/DevVirtioNet.cpp
> ===================================================================
> --- a/trunk/src/VBox/Devices/Network/DevVirtioNet.cpp
> +++ b/trunk/src/VBox/Devices/Network/DevVirtioNet.cpp
> @@ -53,4 +53,5 @@
> #include <VBox/version.h>
> #include <VBox/log.h>
> +#include <VBox/pci.h>
>
>
> @@ -210,6 +211,4 @@
>
> #define PCI_DEVICE_ID_VIRTIONET_HOST               0x1000      /**< VirtIO
> transitional device ID for network card  */
> -#define PCI_CLASS_BASE_NETWORK_CONTROLLER          0x0200      /**< PCI
> Network device class                        */
> -#define PCI_CLASS_SUB_NET_ETHERNET_CONTROLLER      0x00        /**< PCI
> NET Controller subclass                     */
> #define PCI_CLASS_PROG_UNSPECIFIED                 0x00        /**<
> Programming interface. N/A.                     */
> #define VIRTIONET_PCI_CLASS                        0x01        /**< Base
> class Mass Storage?                        */
> @@ -3516,6 +3515,6 @@
>     VIRTIOPCIPARAMS VirtioPciParams;
>     VirtioPciParams.uDeviceId                      =
> PCI_DEVICE_ID_VIRTIONET_HOST;
> -    VirtioPciParams.uClassBase                     =
> PCI_CLASS_BASE_NETWORK_CONTROLLER;
> -    VirtioPciParams.uClassSub                      =
> PCI_CLASS_SUB_NET_ETHERNET_CONTROLLER;
> +    VirtioPciParams.uClassBase                     =
> VBOX_PCI_CLASS_NETWORK;
> +    VirtioPciParams.uClassSub                      =
> VBOX_PCI_SUB_NETWORK_ETHERNET;
>     VirtioPciParams.uClassProg                     =
> PCI_CLASS_PROG_UNSPECIFIED;
>     VirtioPciParams.uSubsystemId                   =
> DEVICE_PCI_NETWORK_SUBSYSTEM;  /* VirtIO 1.0 allows PCI Device ID here */
>
> > On 14.08.2023 18:07, Peter Palúch <peter.paluch.sk at gmail.com> wrote:
> >
> > Hello Alexander,
> >
> > Many thanks for the information!
> >
> > If I may ask - can you share more details on how you fixed this issue?
> Also, has your fix been only merged recently? 7.0.10 did not yet contain it.
> >
> > Best regards,
> > Peter
> >
> > po 14. 8. 2023 o 17:05 Alexander Eichner <alexander.eichner at oracle.com>
> napísal(a):
> > Hi Peter,
> >
> > Thanks for the patch. We fixed the issue internally, albeit a bit
> differently.
> >
> > Regards,
> > Alexander Eichner
> >
> >> On 11.08.2023 23:36, Peter Palúch via vbox-dev <vbox-dev at virtualbox.org>
> wrote:
> >>
> >> Greetings,
> >>
> >> Attaching a patch fixing the bug #21516 (Cisco CSR 1000v and 8000v does
> not recognize interfaces).
> >>
> >> It turns out that in src/VBox/Devices/Network/DevVirtioNet.cpp, the
> macro PCI_CLASS_BASE_NETWORK_CONTROLLER was set to 0x0200 (0x02 =PCI
> Network Device Class ID, 0x00 = Ethernet subclass). However, this macro is
> passed to another macro, PDMPciDevSetClassBase, that expects uint8_t as the
> PCI device class value. This has caused the virtio-net PCI adapter to be
> reported with the PCI class/subclass 0x0000, confusing some host operating
> systems.
> >>
> >> The fix is trivial - set PCI_CLASS_BASE_NETWORK_CONTROLLER to 0x02
> instead of 0x0200.
> >>
> >> Please consider integrating this fix at your earliest convenience.
> >>
> >> Thank you!
> >>
> >> Best regards,
> >> Peter
> >> <virtionet-21516.patch>_______________________________________________
> >> vbox-dev mailing list
> >> vbox-dev at virtualbox.org
> >> https://www.virtualbox.org/mailman/listinfo/vbox-dev
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.virtualbox.org/pipermail/vbox-dev/attachments/20230814/300297cd/attachment.html>


More information about the vbox-dev mailing list