I've been battling with the same errors, trying to passthrough my onboard LSI SAS2116 Non-RAID HBA with 6 x IronWolf Pro 6TB connected.
reading the ProxMox VE passthrough docs and all possible stuff on the forum, no luck.
until ....
I've found the following page :
https://www.linux-kvm.org/page/How_to_assign_devices_with_VT-d_in_KVM
and specifically the section 4:
4. Unbind the device from the host kernel driver (Example: PCI device 01:00.0)
- Load the PCI Stub Driver if it is compiled as a module
modprobe pci_stub
lspci -n
- Locate the entry for device 01:00.0 and note the vendor and device ID (8086:10b9 in this example)
...
01:00.0 0200: 8086:10b9 (rev 06)
...
- Place this information in the following files:
echo "8086 10b9" > /sys/bus/pci/drivers/pci-stub/new_id
echo "0000:01:00.0" > /sys/bus/pci/devices/0000:01:00.0/driver/unbind
echo "0000:01:00.0" > /sys/bus/pci/drivers/pci-stub/bind
I tried this on my machine (changing the id's and pcie locations to my settings), and finally was able to create a ZFS pool within the VM.
I still need to see if this is 'reboot' safe and all, but so far it looks more promising then before. ..