#
9cb1b46c |
| 16-Sep-2023 |
Tan En De <ende.tan@starfivetech.com> |
pci: Deregister KVM_PCI_CFG_AREA on pci__exit
KVM_PCI_CFG_AREA is registered with kvm__register_mmio during pci__init, but it isn't deregistered during pci__exit.
So, this commit is to kvm__deregis
pci: Deregister KVM_PCI_CFG_AREA on pci__exit
KVM_PCI_CFG_AREA is registered with kvm__register_mmio during pci__init, but it isn't deregistered during pci__exit.
So, this commit is to kvm__deregister_mmio the KVM_PCI_CFG_AREA on pci__exit.
Signed-off-by: Tan En De <ende.tan@starfivetech.com> Link: https://lore.kernel.org/r/20230916052303.1003-1-ende.tan@starfivetech.com Signed-off-by: Will Deacon <will@kernel.org>
show more ...
|
#
78771e77 |
| 20-Oct-2022 |
Jean-Philippe Brucker <jean-philippe@linaro.org> |
pci: Disable writes to Status register
Although the PCI Status register only contains read-only and write-1-to-clear bits, we currently keep anything written there, which can confuse a guest.
The p
pci: Disable writes to Status register
Although the PCI Status register only contains read-only and write-1-to-clear bits, we currently keep anything written there, which can confuse a guest.
The problem was highlighted by recent Linux commit 6cd514e58f12 ("PCI: Clear PCI_STATUS when setting up device"), which unconditionally writes 0xffff to the Status register in order to clear pending errors. Then the EDAC driver sees the parity status bits set and attempts to clear them by writing 0xc100, which in turn clears the Capabilities List bit. Later on, when the virtio-pci driver starts probing, it assumes due to missing capabilities that the device is using the legacy transport, and fails to setup the device because of mismatched protocol.
Filter writes to the config space, keeping only those to writable fields. Tighten the access size check while we're at it, to prevent overflow. This is only a small step in the right direction, not a foolproof solution, because a guest could still write both Command and Status registers using a single 32-bit write. More work is needed for: * Supporting arbitrary sized writes. * Sanitizing accesses to capabilities, which are device-specific.
Also remove the old hack that filtered accesses. It was most likely guarding against ROM BAR writes, which is now handled by the pci_config_writable bitmap.
Reported-by: Pierre Gondois <pierre.gondois@arm.com> Tested-by: Pierre Gondois <pierre.gondois@arm.com> Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org> Link: https://lore.kernel.org/r/20221020173452.203043-1-jean-philippe@linaro.org Signed-off-by: Will Deacon <will@kernel.org>
show more ...
|
#
2108c86d |
| 31-Jan-2022 |
Marc Zyngier <maz@kernel.org> |
virtio/pci: Signal INTx interrupts as level instead of edge
It appears that the way INTx is emulated is "slightly" out of spec in kvmtool. We happily inject an edge interrupt, even if the spec manda
virtio/pci: Signal INTx interrupts as level instead of edge
It appears that the way INTx is emulated is "slightly" out of spec in kvmtool. We happily inject an edge interrupt, even if the spec mandates a level.
This doesn't change much for either the guest or userspace (only KVM will have a bit more work tracking the EOI), but at least this is correct.
Reported-by: Pierre Gondois <pierre.gondois@arm.com> Signed-off-by: Marc Zyngier <maz@kernel.org> Cc: Ard Biesheuvel <ardb@kernel.org> Cc: Sami Mujawar <sami.mujawar@arm.com> Cc: Will Deacon <will@kernel.org> Acked-by: Ard Biesheuvel <ardb@kernel.org> Link: https://lore.kernel.org/r/20220131160242.2665191-1-maz@kernel.org Signed-off-by: Will Deacon <will@kernel.org>
show more ...
|
#
e69b7663 |
| 13-Jul-2021 |
Alexandru Elisei <alexandru.elisei@arm.com> |
arm/arm64: Add PCI Express 1.1 support
PCI Express comes with an extended addressing scheme, which directly translated into a bigger device configuration space (256->4096 bytes) and bigger PCI confi
arm/arm64: Add PCI Express 1.1 support
PCI Express comes with an extended addressing scheme, which directly translated into a bigger device configuration space (256->4096 bytes) and bigger PCI configuration space (16->256 MB), as well as mandatory capabilities (power management [1] and PCI Express capability [2]).
However, our virtio PCI implementation implements version 0.9 of the protocol and it still uses transitional PCI device ID's, so we have opted to omit the mandatory PCI Express capabilities. For VFIO, the power management and PCI Express capability are left for a subsequent patch.
[1] PCI Express Base Specification Revision 1.1, section 7.6 [2] PCI Express Base Specification Revision 1.1, section 7.8
Signed-off-by: Alexandru Elisei <alexandru.elisei@arm.com> Reviewed-by: Andre Przywara <andre.przywara@arm.com> Link: https://lore.kernel.org/r/20210713170631.155595-4-alexandru.elisei@arm.com Signed-off-by: Will Deacon <will@kernel.org>
show more ...
|
#
1f56b9d1 |
| 15-Mar-2021 |
Andre Przywara <andre.przywara@arm.com> |
pci: Switch trap handling to use MMIO handler
With the planned retirement of the special ioport emulation code, we need to provide an emulation function compatible with the MMIO prototype.
Merge th
pci: Switch trap handling to use MMIO handler
With the planned retirement of the special ioport emulation code, we need to provide an emulation function compatible with the MMIO prototype.
Merge the existing _in and _out handlers to adhere to that MMIO interface, and register these using the new registration function.
Signed-off-by: Andre Przywara <andre.przywara@arm.com> Reviewed-by: Alexandru Elisei <alexandru.elisei@arm.com> Link: https://lore.kernel.org/r/20210315153350.19988-19-andre.przywara@arm.com Signed-off-by: Will Deacon <will@kernel.org>
show more ...
|
#
465edc9d |
| 14-May-2020 |
Alexandru Elisei <alexandru.elisei@arm.com> |
pci: Implement reassignable BARs
BARs are used by the guest to configure the access to the PCI device by writing the address to which the device will respond. The basic idea for adding support for r
pci: Implement reassignable BARs
BARs are used by the guest to configure the access to the PCI device by writing the address to which the device will respond. The basic idea for adding support for reassignable BARs is straightforward: deactivate emulation for the memory region described by the old BAR value, and activate emulation for the new region.
BAR reassignment can be done while device access is enabled and memory regions for different devices can overlap as long as no access is made to the overlapping memory regions. This means that it is legal for the BARs of two distinct devices to point to an overlapping memory region, and indeed, this is how Linux does resource assignment at boot. To account for this situation, the simple algorithm described above is enhanced to scan for all devices and:
- Deactivate emulation for any BARs that might overlap with the new BAR value.
- Enable emulation for any BARs that were overlapping with the old value after the BAR has been updated.
Activating/deactivating emulation of a memory region has side effects. In order to prevent the execution of the same callback twice we now keep track of the state of the region emulation. For example, this can happen if we program a BAR with an address that overlaps a second BAR, thus deactivating emulation for the second BAR, and then we disable all region accesses to the second BAR by writing to the command register.
Signed-off-by: Alexandru Elisei <alexandru.elisei@arm.com> Reviewed-by: Andre Przywara <andre.przywara@arm.com> Link: https://lore.kernel.org/r/1589470709-4104-11-git-send-email-alexandru.elisei@arm.com Signed-off-by: Will Deacon <will@kernel.org>
show more ...
|
#
46e04130 |
| 14-May-2020 |
Alexandru Elisei <alexandru.elisei@arm.com> |
pci: Toggle BAR I/O and memory space emulation
During configuration of the BAR addresses, a Linux guest disables and enables access to I/O and memory space. When access is disabled, we don't stop em
pci: Toggle BAR I/O and memory space emulation
During configuration of the BAR addresses, a Linux guest disables and enables access to I/O and memory space. When access is disabled, we don't stop emulating the memory regions described by the BARs. Now that we have callbacks for activating and deactivating emulation for a BAR region, let's use that to stop emulation when access is disabled, and re-activate it when access is re-enabled.
Signed-off-by: Alexandru Elisei <alexandru.elisei@arm.com> Reviewed-by: Andre Przywara <andre.przywara@arm.com> Link: https://lore.kernel.org/r/1589470709-4104-10-git-send-email-alexandru.elisei@arm.com Signed-off-by: Will Deacon <will@kernel.org>
show more ...
|
#
5a8e4f25 |
| 14-May-2020 |
Alexandru Elisei <alexandru.elisei@arm.com> |
pci: Implement callbacks for toggling BAR emulation
Implement callbacks for activating and deactivating emulation for a BAR region. This is in preparation for allowing a guest operating system to en
pci: Implement callbacks for toggling BAR emulation
Implement callbacks for activating and deactivating emulation for a BAR region. This is in preparation for allowing a guest operating system to enable and disable access to I/O or memory space, or to reassign the BARs.
The emulated vesa device framebuffer isn't designed to allow stopping and restarting at arbitrary points in the guest execution. Furthermore, on x86, the kernel will not change the BAR addresses, which on bare metal are programmed by the firmware, so take the easy way out and refuse to activate/deactivate emulation for the BAR regions. We also take this opportunity to make the vesa emulation code more consistent by moving all static variable definitions in one place, at the top of the file.
Signed-off-by: Alexandru Elisei <alexandru.elisei@arm.com> Reviewed-by: Andre Przywara <andre.przywara@arm.com> Link: https://lore.kernel.org/r/1589470709-4104-9-git-send-email-alexandru.elisei@arm.com Signed-off-by: Will Deacon <will@kernel.org>
show more ...
|
#
6ea32ebd |
| 14-May-2020 |
Alexandru Elisei <alexandru.elisei@arm.com> |
pci: Limit configuration transaction size to 32 bits
>From PCI Local Bus Specification Revision 3.0. section 3.8 "64-Bit Bus Extension":
"The bandwidth requirements for I/O and configuration transa
pci: Limit configuration transaction size to 32 bits
>From PCI Local Bus Specification Revision 3.0. section 3.8 "64-Bit Bus Extension":
"The bandwidth requirements for I/O and configuration transactions cannot justify the added complexity, and, therefore, only memory transactions support 64-bit data transfers".
Further down, the spec also describes the possible responses of a target which has been requested to do a 64-bit transaction. Limit the transaction to the lower 32 bits, to match the second accepted behaviour.
Signed-off-by: Alexandru Elisei <alexandru.elisei@arm.com> Reviewed-by: Andre Przywara <andre.przywara@arm.com> Link: https://lore.kernel.org/r/1589470709-4104-6-git-send-email-alexandru.elisei@arm.com Signed-off-by: Will Deacon <will@kernel.org>
show more ...
|
#
2f6384f9 |
| 14-May-2020 |
Alexandru Elisei <alexandru.elisei@arm.com> |
pci: Add helpers for BAR values and memory/IO space access
We're going to be checking the BAR type, the address written to it and if access to memory or I/O space is enabled quite often when we add
pci: Add helpers for BAR values and memory/IO space access
We're going to be checking the BAR type, the address written to it and if access to memory or I/O space is enabled quite often when we add support for reasignable BARs; make our life easier by adding helpers for it.
Signed-off-by: Alexandru Elisei <alexandru.elisei@arm.com> Reviewed-by: Andre Przywara <andre.przywara@arm.com> Link: https://lore.kernel.org/r/1589470709-4104-3-git-send-email-alexandru.elisei@arm.com Signed-off-by: Will Deacon <will@kernel.org>
show more ...
|
#
c0c45eed |
| 24-Apr-2020 |
Andre Przywara <andre.przywara@arm.com> |
pci: Move legacy IRQ assignment into devices
So far the (legacy) IRQ line for a PCI device is allocated in devices.c, which should actually not take care of that. Since we allocate all other device
pci: Move legacy IRQ assignment into devices
So far the (legacy) IRQ line for a PCI device is allocated in devices.c, which should actually not take care of that. Since we allocate all other device specific resources in the actual device emulation code, the IRQ should not be something special.
Remove the PCI specific code from devices.c, and move the IRQ line allocation to the PCI code. This drops the IRQ line from the VESA device, since it does not use one.
Signed-off-by: Andre Przywara <andre.przywara@arm.com> Signed-off-by: Will Deacon <will@kernel.org>
show more ...
|
#
48843d10 |
| 14-Apr-2020 |
Julien Thierry <julien.thierry@arm.com> |
pci: Fix ioport allocation size
The PCI Local Bus Specification, Rev. 3.0, Section 6.2.5.1. "Address Maps" states: "Devices that map control functions into I/O Space must not consume more than 256 b
pci: Fix ioport allocation size
The PCI Local Bus Specification, Rev. 3.0, Section 6.2.5.1. "Address Maps" states: "Devices that map control functions into I/O Space must not consume more than 256 bytes per I/O Base Address register."
Yet all the PCI devices allocate IO ports of IOPORT_SIZE (= 1024 bytes).
Fix this by having PCI devices use 256 bytes ports for IO BARs.
There is no hard requirement on the size of the memory region described by memory BARs. Since BAR 1 is supposed to offer the same functionality as IO ports, let's make its size match BAR 0.
Reviewed-by: Andre Przywara <andre.przywara@arm.com> Signed-off-by: Julien Thierry <julien.thierry@arm.com> [Added rationale for changing BAR1 size to PCI_IO_SIZE] Signed-off-by: Alexandru Elisei <alexandru.elisei@arm.com> Signed-off-by: Will Deacon <will@kernel.org>
show more ...
|
#
854aa2ef |
| 14-Apr-2020 |
Julien Thierry <julien.thierry@arm.com> |
ioport: pci: Move port allocations to PCI devices
The dynamic ioport allocation with IOPORT_EMPTY is currently only used by PCI devices. Other devices use fixed ports for which they request registra
ioport: pci: Move port allocations to PCI devices
The dynamic ioport allocation with IOPORT_EMPTY is currently only used by PCI devices. Other devices use fixed ports for which they request registration to the ioport API.
PCI ports need to be in the PCI IO space and there is no reason ioport API should know a PCI port is being allocated and needs to be placed in PCI IO space. This currently just happens to be the case.
Move the responsability of dynamic allocation of ioports from the ioport API to PCI.
In the future, if other types of devices also need dynamic ioport allocation, they'll have to figure out the range of ports they are allowed to use.
Reviewed-by: Andre Przywara <andre.przywara@arm.com> Signed-off-by: Julien Thierry <julien.thierry@arm.com> [Renamed functions for clarity] Signed-off-by: Alexandru Elisei <alexandru.elisei@arm.com> Signed-off-by: Will Deacon <will@kernel.org>
show more ...
|
#
bb0d509b |
| 14-Apr-2020 |
Sami Mujawar <sami.mujawar@arm.com> |
pci: Fix BAR resource sizing arbitration
According to the 'PCI Local Bus Specification, Revision 3.0, February 3, 2004, Section 6.2.5.1, Implementation Notes, page 227'
"Software saves the orig
pci: Fix BAR resource sizing arbitration
According to the 'PCI Local Bus Specification, Revision 3.0, February 3, 2004, Section 6.2.5.1, Implementation Notes, page 227'
"Software saves the original value of the Base Address register, writes 0 FFFF FFFFh to the register, then reads it back. Size calculation can be done from the 32-bit value read by first clearing encoding information bits (bit 0 for I/O, bits 0-3 for memory), inverting all 32 bits (logical NOT), then incrementing by 1. The resultant 32-bit value is the memory/I/O range size decoded by the register. Note that the upper 16 bits of the result is ignored if the Base Address register is for I/O and bits 16-31 returned zero upon read."
kvmtool was returning the actual BAR resource size which would be incorrect as the software software drivers would invert all 32 bits (logical NOT), then incrementing by 1. This ends up with a very large resource size (in some cases more than 4GB) due to which drivers assert/fail to work.
e.g if the BAR resource size was 0x1000, kvmtool would return 0x1000 instead of 0xFFFFF00x.
Fixed pci__config_wr() to return the size of the BAR in accordance with the PCI Local Bus specification, Implementation Notes.
Reviewed-by: Andre Przywara <andre.przywara@arm.com> Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Signed-off-by: Julien Thierry <julien.thierry@arm.com> [Reworked algorithm, removed power-of-two check] Signed-off-by: Alexandru Elisei <alexandru.elisei@arm.com> Signed-off-by: Will Deacon <will@kernel.org>
show more ...
|
#
1a51c93d |
| 18-Jun-2018 |
Jean-Philippe Brucker <jean-philippe.brucker@arm.com> |
pci: add capability helpers
Add a way to iterate over all capabilities in a config space. Add a search function for getting a specific capability.
Reviewed-by: Punit Agrawal <punit.agrawal@arm.com>
pci: add capability helpers
Add a way to iterate over all capabilities in a config space. Add a search function for getting a specific capability.
Reviewed-by: Punit Agrawal <punit.agrawal@arm.com> Signed-off-by: Jean-Philippe Brucker <jean-philippe.brucker@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com>
show more ...
|
#
ff01b5db |
| 18-Jun-2018 |
Jean-Philippe Brucker <jean-philippe.brucker@arm.com> |
pci: allow to specify IRQ type for PCI devices
Currently all our virtual device interrupts are edge-triggered. But we're going to need level-triggered interrupts when passing physical devices. Let t
pci: allow to specify IRQ type for PCI devices
Currently all our virtual device interrupts are edge-triggered. But we're going to need level-triggered interrupts when passing physical devices. Let the device configure its interrupt kind. Keep edge as default, to avoid changing existing users.
Reviewed-by: Punit Agrawal <punit.agrawal@arm.com> Signed-off-by: Jean-Philippe Brucker <jean-philippe.brucker@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com>
show more ...
|
#
023fdaae |
| 18-Jun-2018 |
Jean-Philippe Brucker <jean-philippe.brucker@arm.com> |
pci: add config operations callbacks on the PCI header
When implementing PCI device passthrough, we will need to forward config accesses from a guest to the VFIO driver. Add a private cfg_ops struct
pci: add config operations callbacks on the PCI header
When implementing PCI device passthrough, we will need to forward config accesses from a guest to the VFIO driver. Add a private cfg_ops structure to the PCI header, and use it in the PCI config access functions.
A read from the guest first calls into the device's cfg_ops.read, to let the backend update the local header before filling the guest register. Same happens for a write, we let the backend perform the write and replace the guest-provided register with whatever sticks, before updating the local header.
Try to untangle the PCI config access logic while we're at it.
Reviewed-by: Punit Agrawal <punit.agrawal@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com> [JPB: moved to a separate patch] Signed-off-by: Jean-Philippe Brucker <jean-philippe.brucker@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com>
show more ...
|
#
a0a7d66f |
| 28-May-2014 |
David Daney <david.daney@cavium.com> |
kvm tools: Handle virtio/pci I/O space as little endian
It doesn't work on big endian hosts as is.
Signed-off-by: David Daney <david.daney@cavium.com> Signed-off-by: Andreas Herrmann <andreas.herrm
kvm tools: Handle virtio/pci I/O space as little endian
It doesn't work on big endian hosts as is.
Signed-off-by: David Daney <david.daney@cavium.com> Signed-off-by: Andreas Herrmann <andreas.herrmann@caviumnetworks.com> Signed-off-by: Pekka Enberg <penberg@kernel.org>
show more ...
|
#
4123ca55 |
| 27-May-2014 |
Marc Zyngier <marc.zyngier@arm.com> |
kvmtool: virtio: pass trapped vcpu to IO accessors
The recent introduction of bi-endianness on arm/arm64 had the odd effect of breaking virtio-pci support on these platforms, as the device endian fi
kvmtool: virtio: pass trapped vcpu to IO accessors
The recent introduction of bi-endianness on arm/arm64 had the odd effect of breaking virtio-pci support on these platforms, as the device endian field defaults to being VIRTIO_ENDIAN_HOST, which is the wrong thing to have on a bi-endian capable architecture.
The fix is to check for the endianness on the ioport path the same way we do it for mmio, which implies passing the vcpu all the way down. Patch is a bit ugly, but aligns MMIO and ioport nicely.
Tested on arm64 and x86.
Acked-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> Signed-off-by: Pekka Enberg <penberg@kernel.org>
show more ...
|
#
9b735910 |
| 08-May-2014 |
Marc Zyngier <marc.zyngier@arm.com> |
kvmtool: pass trapped vcpu to MMIO accessors
In order to be able to find out about the endianness of a virtual CPU, it is necessary to pass a pointer to the kvm_cpu structure down to the MMIO access
kvmtool: pass trapped vcpu to MMIO accessors
In order to be able to find out about the endianness of a virtual CPU, it is necessary to pass a pointer to the kvm_cpu structure down to the MMIO accessors.
This patch just pushes such pointer as far as required for the MMIO accessors to have a play with the vcpu.
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> Signed-off-by: Pekka Enberg <penberg@kernel.org>
show more ...
|
#
b5981636 |
| 04-Feb-2014 |
Will Deacon <will.deacon@arm.com> |
kvm tools: irq: move irq line allocation into device registration
For the MMIO and PCI buses, drivers typically allocate an IRQ line for their device before registering the device with the device tr
kvm tools: irq: move irq line allocation into device registration
For the MMIO and PCI buses, drivers typically allocate an IRQ line for their device before registering the device with the device tree for the relevant bus.
This patch moves the IRQ allocation into the bus code, which is then called directly by the device tree when a new device is registered. IOPORT devices, however, tend to use hardcoded IRQs for legacy reasons, so they are still required to deal with their interrupts (which also require remapping for non-x86 architectures).
Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Pekka Enberg <penberg@kernel.org>
show more ...
|
#
c7575d17 |
| 04-Feb-2014 |
Will Deacon <will.deacon@arm.com> |
kvm tools: pci: ensure BARs are naturally aligned
BARs must be naturally aligned, so enforce this in the PCI IO space allocator.
Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Pekk
kvm tools: pci: ensure BARs are naturally aligned
BARs must be naturally aligned, so enforce this in the PCI IO space allocator.
Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Pekka Enberg <penberg@kernel.org>
show more ...
|
#
b403f2f7 |
| 04-Feb-2014 |
Will Deacon <will.deacon@arm.com> |
kvm tools: pci: register 24-bit configuration space below MMIO region
Rather than performing all config accesses via ioports, map in a 24-bit memory-mapped configuration space directly below the PCI
kvm tools: pci: register 24-bit configuration space below MMIO region
Rather than performing all config accesses via ioports, map in a 24-bit memory-mapped configuration space directly below the PCI MMIO region.
This will allow architectures to support PCI without having to support legacy ioports in the guest kernel. Instead, kvm tool can forward the config accesses directly to the relevant ioport config callbacks.
Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Pekka Enberg <penberg@kernel.org>
show more ...
|
#
21ff329d |
| 22-Nov-2012 |
Will Deacon <will.deacon@arm.com> |
kvm tools: add generic device registration mechanism
PCI devices are currently registered into the pci_devices array via the pci__register function, which can then be indexed later by architecture c
kvm tools: add generic device registration mechanism
PCI devices are currently registered into the pci_devices array via the pci__register function, which can then be indexed later by architecture code to construct device tree nodes. For MMIO devices, there is no such utility.
Rather than invent a similar mechanism for MMIO, this patch creates a global device registration mechanism, which allows the device type to be specified when registered or indexing a device. Current users of the pci registration code are migrated to the new infrastructure and virtio MMIO devices are registered at init time.
As part of the device registration, allocation of the device number is moved out of irq__register_device and performed when adding the device header to the relevant bus tree, allowing us to maintain separate device numberspaces for each bus.
Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Pekka Enberg <penberg@kernel.org>
show more ...
|
#
bca12bf6 |
| 24-Oct-2012 |
Sasha Levin <sasha.levin@oracle.com> |
kvm tools: use correct init group for the PCI controller
PCI controller is what deals with PCI devices, and it depends on vcpus being there, so it should be in the dev_base group.
Signed-off-by: Sa
kvm tools: use correct init group for the PCI controller
PCI controller is what deals with PCI devices, and it depends on vcpus being there, so it should be in the dev_base group.
Signed-off-by: Sasha Levin <sasha.levin@oracle.com> Signed-off-by: Pekka Enberg <penberg@kernel.org>
show more ...
|