lkml.org 
[lkml]   [2024]   [May]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH 1/2] staging: pi433: Use class_create instead of class_register.
From
On 01/05/2024 17:12, Greg KH wrote:
> On Wed, May 01, 2024 at 08:58:19AM +0300, Shahar Avidar wrote:
>> Make use of a higher level API.
>
> What does this mean?
>
By "higher level" I meant a wrapper function that includes the
"class_register" call.

>> Reduce global memory allocation from struct class to pointer size.
>
> No, you increased memory allocation here, why do you think you reduced
> it?
>
Reducing *global* memory allocation.
I understand the tradeoff would be allocating in run time the class
struct anyway, but than, it could also be freed.

Since the Pi433 is a RasPi expansion board and can be attached\removed
in an asynchronous matter by the user, and only one can be attached at a
time, I thought it is best not to statically allocate memory which won't
be freed even if the hat is removed.

By using the class_create & class_destroy I thought of reducing memory
allocated by the RasPi if the pi433 is removed.

But following your response I now actually see that the class struct
will have the same lifespan anyway if allocated statically or
dynamically if its alive between the init\exit calls.

> Also, this looks like a revert of commit f267da65bb6b ("staging: pi433:
> make pi433_class constant"), accepted a few months ago, why not just
> call it out as an explicit revert if that's what you want to do?
>
I actually saw this commit, but for some reason did not connect the dots
when I wrote this patch. My bad.

> class_create is going away "soon", why add this back when people are
> working so hard to remove its usage? What tutorial did you read that
> made you want to make this change?
>
It's true, I got it the wrong way I guess. I thought class_create is the
preferred API (but now that you mentioned commit f267da65bb6b, I see
it's not). I did notice it in many other drivers though, and took them
as an example (e.g. gnss).


> thanks,
>
> greg k-h

I actually initially thought that the pi433 class should be removed
since it doesn't bring any new attributes with it, and that
spi_slave_class is more appropriate, but then I saw no other driver
using it. Any thoughts about that?
--
Regards,

Shahar


\
 
 \ /
  Last update: 2024-05-02 10:41    [W:0.074 / U:2.364 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site