Re: [RFC][PATCH -mm] replace cad_pid by a struct pid

Andrew Morton
2006-09-20T21:30:55Z

On Wed, 20 Sep 2006 11:38:35 +0200
Cedric Le Goater <clg@fr.ibm.com> wrote:

> There are a few places in the kernel where the init task is
> signaled. The ctrl+alt+del sequence is one them. It kills a task,
> usually init, using a cached pid (cad_pid).
>
> This patch replaces the pid_t by a struct pid to avoid pid wrap around
> problem. The struct pid is initialized at boot time in init() and can
> be modified through systctl with
>
> /proc/sys/kernel/cad_pid

hm. Is there any sane scenario in which C-A-D would be directed to any
other process?

What happens if/when the process which is identifier by
/proc/sys/kernel/cad_pid exits? User error, I guess...

> +extern struct pid* cad_pid;

Whitespace violation detected!

> - if (shuting_down || kill_proc(1, SIGINT, 1)) {
> + if (shuting_down || kill_cad_pid(SIGINT, 1)) {

So your patch actually makes functional changes: lots of random
init-signallers gain extra functionality: the process which they signal can
now be configured via /proc/sys/kernel/cad_pid. But by default, things
remain unchanged. Fair enough.

> --- 2.6.18-rc7-mm1.orig/drivers/char/nwbutton.c
> +++ 2.6.18-rc7-mm1/drivers/char/nwbutton.c

This driver can be compiled as a module. I shall add the missing export...

(And I'll fix the parisc build too)