On Wed, Apr 14, 2021 at 10:14:34PM +0300, Alexander Shishkin wrote: > Greg Kroah-Hartman <gre...@linuxfoundation.org> writes: > > >> Using raw buffer APIs against uuid_t / guid_t. > > > > So you want to do that, or you do not want to do that? Totally > > confused, > > My understanding is that: > 1) generate_random_uuid() use is allegedly bad even though it's in their > header, > 2) poking directly at the byte array inside uuid_t is bad, even though, > again, header. > > It is, indeed, not ideal. > > If agreeable, I'll update this patch to the below and respin the whole > series.
Below patch looks good to me, thanks! > From 02340f8c7c17ace028040a35553c33cce8f3bce4 Mon Sep 17 00:00:00 2001 > From: Andy Shevchenko <andriy.shevche...@linux.intel.com> > Date: Wed, 22 Apr 2020 16:02:20 +0300 > Subject: [PATCH] stm class: Use correct UUID APIs > > It appears that the STM code didn't manage to accurately decypher the > delicate inner workings of an alternative thought process behind the > UUID API and directly called generate_random_uuid() that clearly needs > to be a static function in lib/uuid.c. > > At the same time, said STM code is poking directly at the byte array > inside the uuid_t when it uses the UUID for its internal purposes. > > Fix these two transgressions by using intended APIs instead. > > Signed-off-by: Andy Shevchenko <andriy.shevche...@linux.intel.com> > [ash: changed back to uuid_t and updated the commit message] > Signed-off-by: Alexander Shishkin <alexander.shish...@linux.intel.com> > --- > drivers/hwtracing/stm/p_sys-t.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/hwtracing/stm/p_sys-t.c b/drivers/hwtracing/stm/p_sys-t.c > index 360b5c03df95..8254971c02e7 100644 > --- a/drivers/hwtracing/stm/p_sys-t.c > +++ b/drivers/hwtracing/stm/p_sys-t.c > @@ -92,7 +92,7 @@ static void sys_t_policy_node_init(void *priv) > { > struct sys_t_policy_node *pn = priv; > > - generate_random_uuid(pn->uuid.b); > + uuid_gen(&pn->uuid); > } > > static int sys_t_output_open(void *priv, struct stm_output *output) > @@ -292,6 +292,7 @@ static ssize_t sys_t_write(struct stm_data *data, struct > stm_output *output, > unsigned int m = output->master; > const unsigned char nil = 0; > u32 header = DATA_HEADER; > + u8 uuid[UUID_SIZE]; > ssize_t sz; > > /* We require an existing policy node to proceed */ > @@ -322,7 +323,8 @@ static ssize_t sys_t_write(struct stm_data *data, struct > stm_output *output, > return sz; > > /* GUID */ > - sz = stm_data_write(data, m, c, false, op->node.uuid.b, UUID_SIZE); > + export_uuid(uuid, &op->node.uuid); > + sz = stm_data_write(data, m, c, false, uuid, sizeof(op->node.uuid)); > if (sz <= 0) > return sz; > > -- > 2.30.2 > -- With Best Regards, Andy Shevchenko