[PATCH v6 24/26] powerpc/pseries: Implement secvars for dynamic secure boot

Andrew Donnellan ajd at linux.ibm.com
Mon Feb 13 18:07:10 AEDT 2023


On Mon, 2023-02-13 at 16:26 +1100, Michael Ellerman wrote:
> Andrew Donnellan <ajd at linux.ibm.com> writes:
> > On Fri, 2023-02-10 at 16:28 -0500, Stefan Berger wrote:
> > > > > +err:
> > > > > +    kfree(var.data);
> > > > 
> > > > remove the kfree()
> > > 
> > > Actually don't remove it but it should probably be
> > > 
> > > if (var.data != &version)
> > >      kfree(var.data);
> > > 
> > 
> > Argh, thanks for catching this.
> > 
> > I don't think the condition is needed - we can assume the var.data
> > is
> > unmodified.
> > 
> > mpe, are you able to fix this up in merge?
> 
> Yeah, can you reply here with the delta you want applied.
> 
> cheers


diff --git a/arch/powerpc/platforms/pseries/plpks-secvar.c
b/arch/powerpc/platforms/pseries/plpks-secvar.c
index 98d0f2b31e0d..bdfe63bc8705 100644
--- a/arch/powerpc/platforms/pseries/plpks-secvar.c
+++ b/arch/powerpc/platforms/pseries/plpks-secvar.c
@@ -135,7 +135,7 @@ static int plpks_set_variable(const char *key, u64
key_len, u8 *data,
 		goto err;
 	var.namelen = rc * 2;
 
-	memcpy(&flags, data, sizeof(flags));
+	flags = cpu_to_be64p((__u64 *)data);
 
 	var.datalen = data_size - sizeof(flags);
 	var.data = data + sizeof(flags);
@@ -184,7 +184,6 @@ static ssize_t plpks_secvar_format(char *buf,
size_t bufsize)
 	ret = snprintf(buf, bufsize, "ibm,plpks-sb-v%hhu", version);
 
 err:
-	kfree(var.data);
 	return ret;
 }
 



-- 
Andrew Donnellan    OzLabs, ADL Canberra
ajd at linux.ibm.com   IBM Australia Limited


More information about the Linuxppc-dev mailing list