gnif/vendor-reset
FreeLinux kernel vendor specific hardware reset module for sequences that are too complex/complicated to land in pci_quirks.c
About gnif/vendor-reset
vendor-reset is an open-source Linux kernel module that provides vendor-specific hardware reset routines for devices that require complex reset sequences too intricate for standard PCI quirks (pci_quirks.c). Developed primarily for AMD GPUs (Polaris, Vega, Navi series), it enables reliable re-initialization and VFIO passthrough to virtual machines without requiring kernel patches. Instead, it uses ftrace to hook pci_dev_specific_reset, allowing dynamic activation via modprobe. The module supports installation through DKMS or traditional make/make install, but must be loaded early in boot to prevent the default kernel reset from damaging supported hardware. Licensed under GPL-2.0, it is maintained on GitHub and accepts contributions from vendors and the community.
Key Features
Pros & Cons
- No need to patch the kernel for GPU reset support
- Supports a wide range of AMD GPUs (Polaris, Vega, Navi, etc.)
- Simple installation via modprobe or DKMS
- Vendor-friendly architecture encourages upstream contributions
- Open source (GPL-2.0) with active community on GitHub
- Currently supports only AMD GPUs (no Nvidia or Intel)
- Must be loaded early in boot to avoid hardware damage from default kernel reset
- Out-of-tree kernel module — not part of mainline Linux kernel
- Complex reset sequences may be fragile and hardware-specific
- Requires specific kernel configuration options enabled (FTRACE, KPROBES, etc.)