On 18/10/2019 17:43, Martin Galvan wrote:> El jue., 17 oct. 2019 a las 19:13, 
Valdis Klētnieks
> (<[email protected]>) escribió:
>>
>> For starters, the *correct* in-kernel way to deal with this is:
>>         if (!ptr) {
>>                 printk("You blew it!\n");
>>                 goto you_blew_it;
>>         }
> 
> goto statements are harmful. In any case, what I meant was to have
> some sort of safety net to prevent exceptions (i.e. if I screw up and
You actually want speed in the kernel and not necessarily extra effort
for "try" and "catch" which is - sooner or later - never really used.
And the "safety net" reduces the motivation to actually fix pointer bugs ....

> forget a NULL check) from panicking the system.
> 
>> Also, "current PID" and "my module" aren't two things that can correspond....
> 
> I don't understand what you mean by that. Module code (e.g. an ioctl)
> runs as some process. In the case of an ioctl, I'd assume it's the
A ioctl-handler runs in the context/on behalf/... of a process
(read: a user-space process/thread has called a syscall).

> same PID of the user process.
And there may be other code in your module which doesn't run
on behalf of a process/thread, e.g. triggered by a timer, hardware
IRQ, ...

So in general you don't have a "process" or "thread", only in some
situations....

MfG,
        Bernd
-- 
"I dislike type abstraction if it has no real reason. And saving
on typing is not a good reason - if your typing speed is the main
issue when you're coding, you're doing something seriously wrong."
    - Linus Torvalds

Attachment: pEpkey.asc
Description: application/pgp-keys

_______________________________________________
Kernelnewbies mailing list
[email protected]
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

Reply via email to