RE: return negative number for unsigned long function in kernel

From: Chen, Dongliang
Date: Wed Mar 07 2007 - 08:31:30 EST


Peter & Andreas,

Thank you very much for your help.

I understood that the kernel error numbers are limited. The largest
error number for i386 (kernel 2.6) is 131 so far. Assume that the
virtual address returned from do_mmap_pgoff will never exceed (unsigned
long)(-1000L), which is in the address range one page below the maximum
virtual address, then IS_ERR_VALUE() should work.

Dongliang Chen

Staff Engineer
EMS Technologies, Inc - Defense & Space Systems
660 Engineering Dr
Norcross, GA 30092
Tel: 770-263-9200 x 4379


-----Original Message-----
From: H. Peter Anvin [mailto:hpa@xxxxxxxxx]
Sent: Tuesday, March 06, 2007 7:39 PM
To: Chen, Dongliang
Cc: linux-kernel@xxxxxxxxxxxxxxx
Subject: Re: return negative number for unsigned long function in kernel


H. Peter Anvin wrote:
>If you want to test for errorness, you could use the macro
>IS_ERR_VALUE(). Unfortunately the macro isn't all that safe, in that
it
>will give you the wrong answer if it's ever used on something that
>*isn't* an unsigned long.

-----Original Message-----
From: Andreas Schwab [mailto:schwab@xxxxxxx]
Sent: Tuesday, March 06, 2007 2:06 PM
To: Chen, Dongliang
Cc: linux-kernel@xxxxxxxxxxxxxxx
Subject: Re: return negative number for unsigned long function in kernel

Andreas Schwab wrote:
>The return value is directly passed to user space (it's the guts of the
>mmap syscall). The glibc wrapper transforms it appropriately so that
errno >is set and -1 is returned if there is an error.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/