[Bug 269874] pciconf mislabels "modern" virtio devices as "old"

From: <bugzilla-noreply_at_freebsd.org>
Date: Sat, 04 Mar 2023 01:34:11 UTC

John-Mark Gurney <jmg@FreeBSD.org> changed:

           What    |Removed                     |Added
                 CC|                            |jmg@FreeBSD.org

--- Comment #1 from John-Mark Gurney <jmg@FreeBSD.org> ---
Hmm. I'm seeing different behavior:
virtio_pci0: <VirtIO PCI (legacy) Network adapter> port 0x80-0x9f mem
0x8000000000-0x8000003fff at device 1.0 on pci0
virtio_pci1: <VirtIO PCI (modern) GPU adapter> mem
0x10045000-0x10045fff,0x8000004000-0x8000007fff at device 2.0 on pci0
virtio_pci2: <VirtIO PCI (legacy) Block adapter> mem
0x10044000-0x10044fff,0x8000008000-0x800000bfff at device 5.0 on pci0

and pciconf -lv:
virtio_pci0@pci0:0:1:0: class=0x020000 rev=0x00 hdr=0x00 vendor=0x1af4
device=0x1000 subvendor=0x1af4 subdevice=0x0001
    vendor     = 'Red Hat, Inc.'
    device     = 'Virtio network device'
    class      = network
    subclass   = ethernet
virtio_pci1@pci0:0:2:0: class=0x038000 rev=0x01 hdr=0x00 vendor=0x1af4
device=0x1050 subvendor=0x1af4 subdevice=0x1100
    vendor     = 'Red Hat, Inc.'
    device     = 'Virtio GPU'
    class      = display
virtio_pci2@pci0:0:5:0: class=0x010000 rev=0x00 hdr=0x00 vendor=0x1af4
device=0x1001 subvendor=0x1af4 subdevice=0x0002
    vendor     = 'Red Hat, Inc.'
    device     = 'Virtio block device'
    class      = mass storage
    subclass   = SCSI

Could it be that your pciconf does not match w/ your kernel?  As a class of old
is only returned when the class is 0.  And this to me sounds like a
kernel/userland mismatch.

You are receiving this mail because:
You are the assignee for the bug.