Re: [PATCH V3 02/16] platform/x86/intel/vsec: remove platform_info from vsec device structure
From: David E. Box
Date: Thu Oct 12 2023 - 12:55:55 EST
On Thu, 2023-10-12 at 18:31 +0300, Ilpo Järvinen wrote:
> On Wed, 11 Oct 2023, David E. Box wrote:
>
> > In preparation for exporting an API to register Intel Vendor Specific
> > Extended Capabilities (VSEC) from other drivers, remove the pointer to
> > platform_info from intel_vsec_device. This prevents a potential page fault
> > when auxiliary drivers probe and attempt to dereference this pointer to
> > access the needed quirks field. Instead, just add the quirks to
> > intel_vsec_device.
> >
> > Signed-off-by: David E. Box <david.e.box@xxxxxxxxxxxxxxx>
> > Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@xxxxxxxxxxxxxxx>
> > ---
> > V3 - No change
> >
> > V2 - New patch splitting previous PATCH 1
> >
> > drivers/platform/x86/intel/pmt/class.c | 2 +-
> > drivers/platform/x86/intel/vsec.c | 2 +-
> > drivers/platform/x86/intel/vsec.h | 2 +-
> > 3 files changed, 3 insertions(+), 3 deletions(-)
> >
> > diff --git a/drivers/platform/x86/intel/pmt/class.c
> > b/drivers/platform/x86/intel/pmt/class.c
> > index f32a233470de..2ad91d2fd954 100644
> > --- a/drivers/platform/x86/intel/pmt/class.c
> > +++ b/drivers/platform/x86/intel/pmt/class.c
> > @@ -31,7 +31,7 @@ bool intel_pmt_is_early_client_hw(struct device *dev)
> > * differences from the server platforms (which use the Out Of Band
> > * Management Services Module OOBMSM).
> > */
> > - return !!(ivdev->info->quirks & VSEC_QUIRK_EARLY_HW);
> > + return !!(ivdev->quirks & VSEC_QUIRK_EARLY_HW);
> > }
> > EXPORT_SYMBOL_NS_GPL(intel_pmt_is_early_client_hw, INTEL_PMT);
> >
> > diff --git a/drivers/platform/x86/intel/vsec.c
> > b/drivers/platform/x86/intel/vsec.c
> > index 6bb233a23414..15866b7d3117 100644
> > --- a/drivers/platform/x86/intel/vsec.c
> > +++ b/drivers/platform/x86/intel/vsec.c
> > @@ -201,7 +201,7 @@ static int intel_vsec_add_dev(struct pci_dev *pdev,
> > struct intel_vsec_header *he
> > intel_vsec_dev->pcidev = pdev;
> > intel_vsec_dev->resource = res;
> > intel_vsec_dev->num_resources = header->num_entries;
> > - intel_vsec_dev->info = info;
> > + intel_vsec_dev->quirks = info->quirks;
> >
> > if (header->id == VSEC_ID_SDSI)
> > intel_vsec_dev->ida = &intel_vsec_sdsi_ida;
> > diff --git a/drivers/platform/x86/intel/vsec.h
> > b/drivers/platform/x86/intel/vsec.h
> > index c242c07ea69c..8b9fad170503 100644
> > --- a/drivers/platform/x86/intel/vsec.h
> > +++ b/drivers/platform/x86/intel/vsec.h
> > @@ -79,11 +79,11 @@ struct intel_vsec_device {
> > struct pci_dev *pcidev;
> > struct resource *resource;
> > struct ida *ida;
> > - struct intel_vsec_platform_info *info;
> > int num_resources;
> > int id; /* xa */
>
> What is this based on??
>
> Unfortunately, I couldn't review some of your later patches efficiently
> because this patch failed to apply.
platform-drivers-x86-v6.6-1 tag
I guess I need to update but I didn't expect any new changes that would
conflict.
David