The 13.0 version of struct pci_driver was 92 or 184 bytes on 32 or 64
bit systems respectively. We recently added bsd_probe_return at the end
of this struct, breaking the KBI.
Fix this by remiving isdrm. We don't need it because we can do a strcmp
in the few places that need it as they aren't performance critical. In
its place move the newly added bsd_probe_return to that slot. It's the
same size in all our supported KBIs due to padding, etc.
Also add 32 or 64 bytes of padding to this structure in the _spare field
like we should have done when we branched stable/13, but neglected to do
so since we didn't properly anticipate the need.
These spare fields are unsafe to use before 13.1 is the oldest supported
13.x release since drivers compiled on 13.0 won't have that space
reserved and we'll step on something else using them. This isn't 100%
KBI compatible through the 13.x release branch, but is compatible enough
so that drm packages build on the oldest supported release will work on
the latest stable/13 and any newer releases. It's not ideal, but makes
the best of a bad situation and is a pragmatic approach that belatedly
builds in some future proofing.
Direct commit to stable/13 because this is not relevant to main.
Sponsored by: Netflix