Re: Regression in 2.6.30-rc1 since commit acae0515 - wireless broken

Larry Finger
2009-04-09T00:02:52Z

Randy Dunlap wrote:
>
> Here's a quick explanation (Linus explained this to me 6-8 years ago;
> I bet his was better than mine, but I can't find his).
>
> 256 = 0x0100
>
> Inside the kernel, a program's exit code/status is split into 2 8-bit fields,
> so this exit status is (0x01, 0x00). The low 8 bits (0x00 in this example)
> store an internal code for why the program is exiting (or did exit). E.g.:
>
> 0xlow_7_bits = 0 => exited, exit status is in "high" 8 bits
> else 0x80 bit set => core dumped, else killed, with exit status in low 7 bits
>
>
> So it looks like /sbin/modprobe exited with an exit status of 1...
> whatever that means (fatal error or usage() printed or module not found).
>
>
> See kernel/[signal.c & exit.c] for uses of 0x80...

Thanks for the explanation. In all the cases where the returned value was
0x0100, the corresponding module does not exist. The comment is still wrong, but
at least non-zero is an error.

Larry