Re: [PATCH v12 04/13] HP BIOSCFG driver - int-attributes

From: Ilpo Järvinen
Date: Tue May 09 2023 - 06:25:20 EST


On Mon, 8 May 2023, Jorge Lopez wrote:

> On Mon, May 8, 2023 at 9:45 AM Ilpo Järvinen
> <ilpo.jarvinen@xxxxxxxxxxxxxxx> wrote:
> >
> > On Fri, 5 May 2023, Jorge Lopez wrote:
> >
> > > HP BIOS Configuration driver purpose is to provide a driver supporting
> > > the latest sysfs class firmware attributes framework allowing the user
> > > to change BIOS settings and security solutions on HP Inc.’s commercial
> > > notebooks.
> > >
> > > Many features of HP Commercial notebooks can be managed using Windows
> > > Management Instrumentation (WMI). WMI is an implementation of Web-Based
> > > Enterprise Management (WBEM) that provides a standards-based interface
> > > for changing and monitoring system settings. HP BIOSCFG driver provides
> > > a native Linux solution and the exposed features facilitates the
> > > migration to Linux environments.
> > >
> > > The Linux security features to be provided in hp-bioscfg driver enables
> > > managing the BIOS settings and security solutions via sysfs, a virtual
> > > filesystem that can be used by user-mode applications. The new
> > > documentation cover HP-specific firmware sysfs attributes such Secure
> > > Platform Management and Sure Start. Each section provides security
> > > feature description and identifies sysfs directories and files exposed
> > > by the driver.
> > >
> > > Many HP Commercial notebooks include a feature called Secure Platform
> > > Management (SPM), which replaces older password-based BIOS settings
> > > management with public key cryptography. PC secure product management
> > > begins when a target system is provisioned with cryptographic keys
> > > that are used to ensure the integrity of communications between system
> > > management utilities and the BIOS.
> > >
> > > HP Commercial notebooks have several BIOS settings that control its
> > > behaviour and capabilities, many of which are related to security.
> > > To prevent unauthorized changes to these settings, the system can
> > > be configured to use a cryptographic signature-based authorization
> > > string that the BIOS will use to verify authorization to modify the
> > > setting.
> > >
> > > Linux Security components are under development and not published yet.
> > > The only linux component is the driver (hp bioscfg) at this time.
> > > Other published security components are under Windows.
> > >
> > > Signed-off-by: Jorge Lopez <jorge.lopez2@xxxxxx>
> > >
> > > ---
> > > Based on the latest platform-drivers-x86.git/for-next
> > > ---

> > > +int alloc_integer_data(void)
> > > +{
> > > + bioscfg_drv.integer_instances_count = get_instance_count(HP_WMI_BIOS_INTEGER_GUID);
> > > + bioscfg_drv.integer_data = kcalloc(bioscfg_drv.integer_instances_count,
> > > + sizeof(struct integer_data), GFP_KERNEL);
> >
> > It would be better to use sizeof(*...) format.
>
> I cannot use sizeof(*...) at this time, because it is allocating
> bioscfg_drv.integer_instances_count number of integer_data
> structures.

Isn't bioscfg_drv.integer_data is a pointer to a single struct
integer_data? Why cannot you do sizeof(*bioscfg_drv.integer_data)?? It is
perfectly legal C construct for getting the size of the struct the
pointer points to.


--
i.