Linux Kernel - Modifying a module_param variable from other drivers
manty kuma
mantykuma at gmail.com
Thu Nov 14 20:30:22 EST 2013
Sorry i was supposed to reply for another mail. Did it here by mistake.
On Fri, Nov 15, 2013 at 10:29 AM, manty kuma <mantykuma at gmail.com> wrote:
> Ideally, it depends on the platform you are working. You need to discuss
> with them for the correct approach. For Qualcomm they have some hardware
> caled as RPU(Register protection unit). They have systems calls exposed for
> using them. You can associtate it to the register you want protection. I
> dont know if there is any way you could do it in Linux itself?
>
> Regards,
> Sandeep
>
>
> On Fri, Nov 15, 2013 at 6:03 AM, <Valdis.Kletnieks at vt.edu> wrote:
>
>> On Thu, 14 Nov 2013 18:32:05 +0900, manty kuma said:
>>
>> > I see that when we declare a variable as module_param from a driver, i
>> can
>> > see it listed in "/sys/module/xxx/parameters/...".
>> >
>> > Ex : /sys/module/usbcore/parameters/autosuspend
>> >
>> > we can modify and read it with echo and cat commands from terminal.
>> >
>> > But is there a way i can read this value from other drivers? Common
>> sense
>> > says it should be there because if we are able to access them from user
>> > space, from kernel space we should definitely be able to do. Is it so?
>> If
>> > yes, what are the API's?
>>
>> It's just a variable. Read the source and find out what it's name is.
>> You may need an EXPORT_SYMBOL() to make it available if it isn't already.
>> And depending on the variable and its use, you may need locking and/or
>> atomic operations to read it.
>>
>> And *modifying* another module's variables is just asking for trouble,
>> mostly because very little code is written assuming that its variables may
>> be maliciously modified out from under it. So consider code like:
>>
>> int foo_size, i;
>> struct bar *stuff;
>>
>> stuff = malloc(foo_size* sizeof(struct bar));
>>
>> /* somebody raises the value of foo_size from outside */
>>
>> for (i=0; i < foo_size; i++) do_something(stuff[i]);
>>
>> You can see where that sort of stuff is heading....
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20131115/1a2ca857/attachment.html
More information about the Kernelnewbies
mailing list