Date: Wed, 5 Jun 2024 01:00:24 +0100 From: Jessica Clarke <jrtc27@freebsd.org> To: John Baldwin <jhb@FreeBSD.org> Cc: "src-committers@freebsd.org" <src-committers@FreeBSD.org>, "dev-commits-src-all@freebsd.org" <dev-commits-src-all@FreeBSD.org>, "dev-commits-src-main@freebsd.org" <dev-commits-src-main@FreeBSD.org> Subject: Re: git: 871b33ad65ba - main - pci: Consistently use pci_vf_* for suballocated VF memory resources Message-ID: <587A0604-BF30-4A90-9B04-FC56C53BBF2A@freebsd.org> In-Reply-To: <202406042352.454NqFVj061328@gitrepo.freebsd.org> References: <202406042352.454NqFVj061328@gitrepo.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 5 Jun 2024, at 00:52, John Baldwin <jhb@FreeBSD.org> wrote: >=20 > The branch main has been updated by jhb: >=20 > URL: = https://cgit.FreeBSD.org/src/commit/?id=3D871b33ad65baf07c92cce120a4fc1978= c2ed7b3b >=20 > commit 871b33ad65baf07c92cce120a4fc1978c2ed7b3b > Author: John Baldwin <jhb@FreeBSD.org> > AuthorDate: 2024-06-04 23:51:37 +0000 > Commit: John Baldwin <jhb@FreeBSD.org> > CommitDate: 2024-06-04 23:51:37 +0000 >=20 > pci: Consistently use pci_vf_* for suballocated VF memory resources >=20 > Some of the bus resource methods were passing these up to the = parent > which triggered rman mismatch assertions in INVARIANTS kernels. >=20 > Reported by: kp > Reviewed by: imp > Tested by: kp (earlier version) > Differential Revision: https://reviews.freebsd.org/D45406 > --- > sys/dev/pci/pci.c | 118 ++++++++++++++++++++++++++++++++++-- > sys/dev/pci/pci_iov.c | 151 = ++++++++++++++++++++++++++++++++++++++++++++++ > sys/dev/pci/pci_private.h | 19 ++++++ > 3 files changed, 284 insertions(+), 4 deletions(-) >=20 > diff --git a/sys/dev/pci/pci.c b/sys/dev/pci/pci.c > index 2cb8b4ce9fcc..2093d6a8b5ef 100644 > --- a/sys/dev/pci/pci.c > +++ b/sys/dev/pci/pci.c > @@ -164,10 +164,18 @@ static device_method_t pci_methods[] =3D { > DEVMETHOD(bus_get_resource, bus_generic_rl_get_resource), > DEVMETHOD(bus_delete_resource, pci_delete_resource), > DEVMETHOD(bus_alloc_resource, pci_alloc_resource), > +#ifdef PCI_IOV > + DEVMETHOD(bus_adjust_resource, pci_adjust_resource), > +#else > DEVMETHOD(bus_adjust_resource, bus_generic_adjust_resource), > +#endif > DEVMETHOD(bus_release_resource, pci_release_resource), > DEVMETHOD(bus_activate_resource, pci_activate_resource), > DEVMETHOD(bus_deactivate_resource, pci_deactivate_resource), > +#ifdef PCI_IOV > + DEVMETHOD(bus_map_resource, pci_map_resource), > + DEVMETHOD(bus_unmap_resource, pci_unmap_resource), > +#endif > DEVMETHOD(bus_child_deleted, pci_child_deleted), > DEVMETHOD(bus_child_detached, pci_child_detached), > DEVMETHOD(bus_child_pnpinfo, pci_child_pnpinfo_method), Would it make sense to instead #ifdef parts of the body of pci_adjust_resource rather than switching which function you=E2=80=99re = using in the first place? I feel that is generally easier to understand, as there=E2=80=99s less conditionality, and it=E2=80=99s more easily = extensible if any other special cases come along. Jess
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?587A0604-BF30-4A90-9B04-FC56C53BBF2A>