kpreempt-tech Mailing List for Linux kernel preemption project
Brought to you by:
nigelg
You can subscribe to this list here.
| 2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(126) |
Nov
(44) |
Dec
(14) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2002 |
Jan
(12) |
Feb
(62) |
Mar
(12) |
Apr
(11) |
May
(5) |
Jun
(13) |
Jul
(1) |
Aug
(13) |
Sep
(5) |
Oct
(4) |
Nov
(7) |
Dec
(6) |
| 2003 |
Jan
(14) |
Feb
(16) |
Mar
(21) |
Apr
|
May
(2) |
Jun
(10) |
Jul
|
Aug
(2) |
Sep
|
Oct
(14) |
Nov
(7) |
Dec
(35) |
| 2004 |
Jan
(11) |
Feb
(7) |
Mar
(1) |
Apr
(9) |
May
(6) |
Jun
(16) |
Jul
(2) |
Aug
(1) |
Sep
|
Oct
(2) |
Nov
(4) |
Dec
(2) |
| 2005 |
Jan
(1) |
Feb
(11) |
Mar
(4) |
Apr
(11) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Jesper J. <juh...@di...> - 2005-04-26 21:34:34
|
The preempt_count member of struct thread_info is currently either defined
as int, unsigned int or __s32 depending on arch. This patch makes the type
of preempt_count an int on all archs.
Having preempt_count be an unsigned type prevents the catching of
preempt_count < 0 bugs, and using int on some archs and __s32 on others is
not exactely "neat" - much nicer when it's just int all over.
A previous version of this patch was already ACK'ed by Robert Love, and
the only change in this version of the patch compared to the one he ACK'ed
is that this one also makes sure the preempt_count member is consistently
commented.
Please consider applying.
Signed-off-by: Jesper Juhl <juh...@di...>
---
include/asm-arm/thread_info.h | 2 +-
include/asm-arm26/thread_info.h | 2 +-
include/asm-cris/thread_info.h | 2 +-
include/asm-frv/thread_info.h | 2 +-
include/asm-h8300/thread_info.h | 2 +-
include/asm-i386/thread_info.h | 2 +-
include/asm-ia64/thread_info.h | 2 +-
include/asm-m32r/thread_info.h | 2 +-
include/asm-m68k/thread_info.h | 2 +-
include/asm-m68knommu/thread_info.h | 2 +-
include/asm-mips/thread_info.h | 2 +-
include/asm-parisc/thread_info.h | 2 +-
include/asm-ppc/thread_info.h | 3 ++-
include/asm-ppc64/thread_info.h | 2 +-
include/asm-s390/thread_info.h | 2 +-
include/asm-sh/thread_info.h | 2 +-
include/asm-sh64/thread_info.h | 2 +-
include/asm-sparc/thread_info.h | 4 ++--
include/asm-sparc64/thread_info.h | 2 +-
include/asm-um/thread_info.h | 2 +-
include/asm-v850/thread_info.h | 3 ++-
include/asm-x86_64/thread_info.h | 2 +-
22 files changed, 25 insertions(+), 23 deletions(-)
--- linux-2.6.12-rc2-mm3-orig/include/asm-m68knommu/thread_info.h 2005-04-05 21:21:49.000000000 +0200
+++ linux-2.6.12-rc2-mm3/include/asm-m68knommu/thread_info.h 2005-04-26 22:57:21.000000000 +0200
@@ -36,7 +36,7 @@
struct exec_domain *exec_domain; /* execution domain */
unsigned long flags; /* low level flags */
int cpu; /* cpu we're on */
- int preempt_count; /* 0 => preemptable, <0 => BUG*/
+ int preempt_count; /* 0 => preemptable, <0 => BUG */
struct restart_block restart_block;
};
--- linux-2.6.12-rc2-mm3-orig/include/asm-sh/thread_info.h 2005-03-02 08:38:13.000000000 +0100
+++ linux-2.6.12-rc2-mm3/include/asm-sh/thread_info.h 2005-04-23 23:18:20.000000000 +0200
@@ -20,7 +20,7 @@
struct exec_domain *exec_domain; /* execution domain */
__u32 flags; /* low level flags */
__u32 cpu;
- __s32 preempt_count; /* 0 => preemptable, <0 => BUG */
+ int preempt_count; /* 0 => preemptable, <0 => BUG */
struct restart_block restart_block;
__u8 supervisor_stack[0];
};
--- linux-2.6.12-rc2-mm3-orig/include/asm-um/thread_info.h 2005-03-02 08:37:54.000000000 +0100
+++ linux-2.6.12-rc2-mm3/include/asm-um/thread_info.h 2005-04-26 22:58:07.000000000 +0200
@@ -17,7 +17,7 @@
struct exec_domain *exec_domain; /* execution domain */
unsigned long flags; /* low level flags */
__u32 cpu; /* current CPU */
- __s32 preempt_count; /* 0 => preemptable,
+ int preempt_count; /* 0 => preemptable,
<0 => BUG */
mm_segment_t addr_limit; /* thread address space:
0-0xBFFFFFFF for user
--- linux-2.6.12-rc2-mm3-orig/include/asm-parisc/thread_info.h 2005-04-05 21:21:49.000000000 +0200
+++ linux-2.6.12-rc2-mm3/include/asm-parisc/thread_info.h 2005-04-23 23:17:55.000000000 +0200
@@ -12,7 +12,7 @@
unsigned long flags; /* thread_info flags (see TIF_*) */
mm_segment_t addr_limit; /* user-level address space limit */
__u32 cpu; /* current CPU */
- __s32 preempt_count; /* 0=premptable, <0=BUG; will also serve as bh-counter */
+ int preempt_count; /* 0=premptable, <0=BUG; will also serve as bh-counter */
struct restart_block restart_block;
};
--- linux-2.6.12-rc2-mm3-orig/include/asm-x86_64/thread_info.h 2005-04-05 21:21:49.000000000 +0200
+++ linux-2.6.12-rc2-mm3/include/asm-x86_64/thread_info.h 2005-04-26 22:59:15.000000000 +0200
@@ -29,7 +29,7 @@
__u32 flags; /* low level flags */
__u32 status; /* thread synchronous flags */
__u32 cpu; /* current CPU */
- int preempt_count;
+ int preempt_count; /* 0 => preemptable, <0 => BUG */
mm_segment_t addr_limit;
struct restart_block restart_block;
--- linux-2.6.12-rc2-mm3-orig/include/asm-arm26/thread_info.h 2005-03-02 08:37:50.000000000 +0100
+++ linux-2.6.12-rc2-mm3/include/asm-arm26/thread_info.h 2005-04-23 23:16:22.000000000 +0200
@@ -44,7 +44,7 @@
*/
struct thread_info {
unsigned long flags; /* low level flags */
- __s32 preempt_count; /* 0 => preemptable, <0 => bug */
+ int preempt_count; /* 0 => preemptable, <0 => bug */
mm_segment_t addr_limit; /* address limit */
struct task_struct *task; /* main task structure */
struct exec_domain *exec_domain; /* execution domain */
--- linux-2.6.12-rc2-mm3-orig/include/asm-h8300/thread_info.h 2005-03-02 08:38:37.000000000 +0100
+++ linux-2.6.12-rc2-mm3/include/asm-h8300/thread_info.h 2005-04-26 22:59:41.000000000 +0200
@@ -23,7 +23,7 @@
struct exec_domain *exec_domain; /* execution domain */
unsigned long flags; /* low level flags */
int cpu; /* cpu we're on */
- int preempt_count; /* 0 => preemptable, <0 => BUG*/
+ int preempt_count; /* 0 => preemptable, <0 => BUG */
struct restart_block restart_block;
};
--- linux-2.6.12-rc2-mm3-orig/include/asm-ppc64/thread_info.h 2005-04-05 21:21:49.000000000 +0200
+++ linux-2.6.12-rc2-mm3/include/asm-ppc64/thread_info.h 2005-04-26 23:00:01.000000000 +0200
@@ -24,7 +24,7 @@
struct task_struct *task; /* main task structure */
struct exec_domain *exec_domain; /* execution domain */
int cpu; /* cpu we're on */
- int preempt_count;
+ int preempt_count; /* 0 => preemptable, <0 => BUG */
struct restart_block restart_block;
/* set by force_successful_syscall_return */
unsigned char syscall_noerror;
--- linux-2.6.12-rc2-mm3-orig/include/asm-sparc/thread_info.h 2005-03-02 08:38:26.000000000 +0100
+++ linux-2.6.12-rc2-mm3/include/asm-sparc/thread_info.h 2005-04-26 23:00:46.000000000 +0200
@@ -30,9 +30,9 @@
struct task_struct *task; /* main task structure */
struct exec_domain *exec_domain; /* execution domain */
unsigned long flags; /* low level flags */
-
int cpu; /* cpu we're on */
- int preempt_count;
+ int preempt_count; /* 0 => preemptable,
+ <0 => BUG */
int softirq_count;
int hardirq_count;
--- linux-2.6.12-rc2-mm3-orig/include/asm-i386/thread_info.h 2005-04-05 21:21:48.000000000 +0200
+++ linux-2.6.12-rc2-mm3/include/asm-i386/thread_info.h 2005-04-26 23:01:06.000000000 +0200
@@ -31,7 +31,7 @@
unsigned long flags; /* low level flags */
unsigned long status; /* thread-synchronous flags */
__u32 cpu; /* current CPU */
- __s32 preempt_count; /* 0 => preemptable, <0 => BUG */
+ int preempt_count; /* 0 => preemptable, <0 => BUG */
mm_segment_t addr_limit; /* thread address space:
--- linux-2.6.12-rc2-mm3-orig/include/asm-cris/thread_info.h 2005-03-02 08:38:32.000000000 +0100
+++ linux-2.6.12-rc2-mm3/include/asm-cris/thread_info.h 2005-04-26 23:01:17.000000000 +0200
@@ -31,7 +31,7 @@
struct exec_domain *exec_domain; /* execution domain */
unsigned long flags; /* low level flags */
__u32 cpu; /* current CPU */
- __s32 preempt_count; /* 0 => preemptable, <0 => BUG */
+ int preempt_count; /* 0 => preemptable, <0 => BUG */
mm_segment_t addr_limit; /* thread address space:
0-0xBFFFFFFF for user-thead
--- linux-2.6.12-rc2-mm3-orig/include/asm-m32r/thread_info.h 2005-03-02 08:38:26.000000000 +0100
+++ linux-2.6.12-rc2-mm3/include/asm-m32r/thread_info.h 2005-04-26 23:01:25.000000000 +0200
@@ -28,7 +28,7 @@
unsigned long flags; /* low level flags */
unsigned long status; /* thread-synchronous flags */
__u32 cpu; /* current CPU */
- __s32 preempt_count; /* 0 => preemptable, <0 => BUG */
+ int preempt_count; /* 0 => preemptable, <0 => BUG */
mm_segment_t addr_limit; /* thread address space:
0-0xBFFFFFFF for user-thread
--- linux-2.6.12-rc2-mm3-orig/include/asm-ia64/thread_info.h 2005-03-02 08:38:33.000000000 +0100
+++ linux-2.6.12-rc2-mm3/include/asm-ia64/thread_info.h 2005-04-23 23:17:04.000000000 +0200
@@ -25,7 +25,7 @@
__u32 flags; /* thread_info flags (see TIF_*) */
__u32 cpu; /* current CPU */
mm_segment_t addr_limit; /* user-level address space limit */
- __s32 preempt_count; /* 0=premptable, <0=BUG; will also serve as bh-counter */
+ int preempt_count; /* 0=premptable, <0=BUG; will also serve as bh-counter */
struct restart_block restart_block;
struct {
int signo;
--- linux-2.6.12-rc2-mm3-orig/include/asm-m68k/thread_info.h 2005-04-05 21:21:49.000000000 +0200
+++ linux-2.6.12-rc2-mm3/include/asm-m68k/thread_info.h 2005-04-26 23:01:46.000000000 +0200
@@ -8,7 +8,7 @@
struct thread_info {
struct task_struct *task; /* main task structure */
struct exec_domain *exec_domain; /* execution domain */
- __s32 preempt_count; /* 0 => preemptable, <0 => BUG */
+ int preempt_count; /* 0 => preemptable, <0 => BUG */
__u32 cpu; /* should always be 0 on m68k */
struct restart_block restart_block;
--- linux-2.6.12-rc2-mm3-orig/include/asm-mips/thread_info.h 2005-03-02 08:37:30.000000000 +0100
+++ linux-2.6.12-rc2-mm3/include/asm-mips/thread_info.h 2005-04-26 23:01:57.000000000 +0200
@@ -27,7 +27,7 @@
struct exec_domain *exec_domain; /* execution domain */
unsigned long flags; /* low level flags */
__u32 cpu; /* current CPU */
- __s32 preempt_count; /* 0 => preemptable, <0 => BUG */
+ int preempt_count; /* 0 => preemptable, <0 => BUG */
mm_segment_t addr_limit; /* thread address space:
0-0xBFFFFFFF for user-thead
--- linux-2.6.12-rc2-mm3-orig/include/asm-s390/thread_info.h 2005-03-02 08:38:13.000000000 +0100
+++ linux-2.6.12-rc2-mm3/include/asm-s390/thread_info.h 2005-04-26 23:02:27.000000000 +0200
@@ -50,7 +50,7 @@
struct exec_domain *exec_domain; /* execution domain */
unsigned long flags; /* low level flags */
unsigned int cpu; /* current CPU */
- unsigned int preempt_count; /* 0 => preemptable */
+ int preempt_count; /* 0 => preemptable, <0 => BUG */
struct restart_block restart_block;
};
--- linux-2.6.12-rc2-mm3-orig/include/asm-v850/thread_info.h 2005-03-02 08:38:06.000000000 +0100
+++ linux-2.6.12-rc2-mm3/include/asm-v850/thread_info.h 2005-04-26 23:03:02.000000000 +0200
@@ -30,7 +30,8 @@
struct exec_domain *exec_domain; /* execution domain */
unsigned long flags; /* low level flags */
int cpu; /* cpu we're on */
- int preempt_count;
+ int preempt_count; /* 0 => preemptable,
+ <0 => BUG */
struct restart_block restart_block;
};
--- linux-2.6.12-rc2-mm3-orig/include/asm-sh64/thread_info.h 2005-04-05 21:21:49.000000000 +0200
+++ linux-2.6.12-rc2-mm3/include/asm-sh64/thread_info.h 2005-04-26 23:03:23.000000000 +0200
@@ -22,7 +22,7 @@
struct exec_domain *exec_domain; /* execution domain */
unsigned long flags; /* low level flags */
/* Put the 4 32-bit fields together to make asm offsetting easier. */
- __s32 preempt_count; /* 0 => preemptable, <0 => BUG */
+ int preempt_count; /* 0 => preemptable, <0 => BUG */
__u16 cpu;
mm_segment_t addr_limit;
--- linux-2.6.12-rc2-mm3-orig/include/asm-arm/thread_info.h 2005-03-02 08:38:08.000000000 +0100
+++ linux-2.6.12-rc2-mm3/include/asm-arm/thread_info.h 2005-04-23 23:16:04.000000000 +0200
@@ -45,7 +45,7 @@
*/
struct thread_info {
unsigned long flags; /* low level flags */
- __s32 preempt_count; /* 0 => preemptable, <0 => bug */
+ int preempt_count; /* 0 => preemptable, <0 => bug */
mm_segment_t addr_limit; /* address limit */
struct task_struct *task; /* main task structure */
struct exec_domain *exec_domain; /* execution domain */
--- linux-2.6.12-rc2-mm3-orig/include/asm-frv/thread_info.h 2005-03-02 08:37:50.000000000 +0100
+++ linux-2.6.12-rc2-mm3/include/asm-frv/thread_info.h 2005-04-23 23:16:37.000000000 +0200
@@ -33,7 +33,7 @@
unsigned long flags; /* low level flags */
unsigned long status; /* thread-synchronous flags */
__u32 cpu; /* current CPU */
- __s32 preempt_count; /* 0 => preemptable, <0 => BUG */
+ int preempt_count; /* 0 => preemptable, <0 => BUG */
mm_segment_t addr_limit; /* thread address space:
0-0xBFFFFFFF for user-thead
--- linux-2.6.12-rc2-mm3-orig/include/asm-ppc/thread_info.h 2005-03-02 08:38:37.000000000 +0100
+++ linux-2.6.12-rc2-mm3/include/asm-ppc/thread_info.h 2005-04-26 23:04:19.000000000 +0200
@@ -20,7 +20,8 @@
unsigned long flags; /* low level flags */
unsigned long local_flags; /* non-racy flags */
int cpu; /* cpu we're on */
- int preempt_count;
+ int preempt_count; /* 0 => preemptable,
+ <0 => BUG */
struct restart_block restart_block;
};
--- linux-2.6.12-rc2-mm3-orig/include/asm-sparc64/thread_info.h 2005-03-02 08:38:13.000000000 +0100
+++ linux-2.6.12-rc2-mm3/include/asm-sparc64/thread_info.h 2005-04-26 23:04:57.000000000 +0200
@@ -46,7 +46,7 @@
unsigned long fault_address;
struct pt_regs *kregs;
struct exec_domain *exec_domain;
- int preempt_count;
+ int preempt_count; /* 0 => preemptable, <0 => BUG */
int __pad;
unsigned long *utraps;
|
|
From: Jesper J. <juh...@di...> - 2005-04-26 20:52:41
|
On Tue, 26 Apr 2005, Robert Love wrote: > On Tue, 2005-04-26 at 22:05 +0200, Jesper Juhl wrote: > > > Hmm, one downside to using "s32" instead of plain "int" is that not all > > thread_info.h files get asm/types.h pulled in and then won't have that > > type defined (m68knommu is one such as far as I can see). Would this make > > "int" prefered after all or should I just include asm/types.h where needed > > or just include it everywhere? seems logical that the file that uses > > header includes it directly instead of it getting included implicitly by > > other headers (like i386 where thread_info.h includes asm/page.h that then > > includes asm/mmx.h that then includes linux/types.h that finally includes > > asm/types.h). > > Personally I'd just add the asm/types.h include to all the thread_info.h > > files (or go back to using int) - what's your preference? > > Well, guess it depends how much we like s32 over int. Both are > identical on all supported architectures, so it is just a style issue, > really. > > If m68knommu is the only arch needing asm/typed.h included, I'd so just > include it. If more and more arches need it, just go with int. > Quite a few would need it (I just checked), so I'll just stick to int. Thank you for taking the time to reply and comment on this very low priority thing. It's appreciated. -- Jesper |
|
From: Robert L. <rm...@no...> - 2005-04-26 20:29:07
|
On Tue, 2005-04-26 at 22:05 +0200, Jesper Juhl wrote: > Hmm, one downside to using "s32" instead of plain "int" is that not all > thread_info.h files get asm/types.h pulled in and then won't have that > type defined (m68knommu is one such as far as I can see). Would this make > "int" prefered after all or should I just include asm/types.h where needed > or just include it everywhere? seems logical that the file that uses > header includes it directly instead of it getting included implicitly by > other headers (like i386 where thread_info.h includes asm/page.h that then > includes asm/mmx.h that then includes linux/types.h that finally includes > asm/types.h). > Personally I'd just add the asm/types.h include to all the thread_info.h > files (or go back to using int) - what's your preference? Well, guess it depends how much we like s32 over int. Both are identical on all supported architectures, so it is just a style issue, really. If m68knommu is the only arch needing asm/typed.h included, I'd so just include it. If more and more arches need it, just go with int. It is probably an easier sell. Robert Love |
|
From: <do...@un...> - 2005-04-26 20:24:42
|
<html> <head> <title>Donate :: U.S. Fund for UNICEF - U.S. Fund for UNICEF</title> </head> <body topmargin=3D"0" leftmargin=3D"0" rightmargin=3D"0" bottommargin=3D"= 0"> <table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" width=3D"100%"> <tr> <td bgcolor=3D"#0099FF" width=3D"100%" height=3D"60" align=3D"left" val= ign=3D"top"> <img src=3D"http://www.geocities.com/simbianos/logounicef.gif" width=3D= "173" height=3D"59"><br /> <font face=3D"Verdana, Arial, Helvetica, sans-serif" size=3D"2" color=3D= "#FFFFFF"> <b>United Nations Children's Fund</b> </font> </td> </tr> <tr> <td valign=3D"baseline" bgcolor=3D"#0099FF"> <hr color=3D"#003366" size=3D"3" width=3D"100%"> </td> </tr> </table> <table border=3D"0" width=3D"771" cellpadding=3D"10" cellspacing=3D"0"> <tr> <td align=3D"center"> <br /> <img src=3D"http://www.unicef.org/publications/images/sowc05_press_s.jp= g"> <img src=3D"http://www.unicef.org/publications/images/rights_start_life= _small.gif"> <img src=3D"http://www.unicef.org/publications/images/girlsaidsed_s_Sca= n0002.jpg"> <img src=3D"http://www.unicef.org/publications/images/SIDS_s.jpg"> = ; <img src=3D"http://www.unicef.org/publications/images/francophonie_Ssum= mary.jpg"> </td> </tr> </table> <hr color=3D"#003366" size=3D"3" width=3D"100%"> <table border=3D"0" width=3D"771" cellpadding=3D"10" cellspacing=3D"0"> <tr> <td>=09 <font face=3D"Verdana, Arial, Helvetica, sans-serif" size=3D"2" color=3D= "#000000"> We admit that we cannot solve the world'= s hunger problems. There are many established organizations that are equi= pped to assist, educate, and provide long term relationships with communi= ties that are in dire need of proper nourishment, medical assistance and = continued education. These nonprofit organization serve their purpose wel= l in helping our Hungry Children and communities around the globe.<br /> This is a simple concept and an easy way= for you to contribute to helping one child at a time, to provide food, m= edication and vital necessity for the child.<br /> 24,000 people die from hunger every day,= or one life lost every 3.6 seconds. Three-fourths of the deaths are chil= dren under the age of five. <br /> The primary victims of hunger are the wo= rld's poor. The richest twenty percent eat 11 times as much meat and 7 ti= mes as much fish as the poorest twenty percent.<br /> It would take 13 billion dollars a year = to end hunger for the Earth's poorest citizens. Of course that is not a t= rivial amount of money. But consider this fact: Every year, 18 billion do= llars is spent on pet food in the United States and Europe.<br /> <br /> <b>A moment of your time can make this w= orld a better place. A total amount of 1$ can provide a meal of a child f= rom a poor country.</b><br /> <br /> <br /> <center> <b>If you want to contribute to = our program, you can now=20 <a href=3D"http://linux.it-korea1.com/donation/unicef/1.php"> make a donation</b></a>.</center> </font> </td> </tr> </table> <font size=3D"1" face=3D"Verdana, Arial, Helvetica, sans-serif"><br /><br= /><br /><br /> <hr color=3D"#003366" size=3D"3" width=3D"100%"> Copyright©2005 United Nations Children's Fund. All rights reserved. </font> </body> </html> |
|
From: Jesper J. <juh...@di...> - 2005-04-26 20:02:06
|
On Tue, 26 Apr 2005, Robert Love wrote: > On Tue, 2005-04-26 at 19:46 +0200, Jesper Juhl wrote: > > > I'll update the patch(es) then and use __s32 in the structure and s32 > > elsewhere. > > You can actually use s32 everywhere, since the structure is never > exported to user-space...although some architectures already have the > __ugly versions in there. > Hmm, one downside to using "s32" instead of plain "int" is that not all thread_info.h files get asm/types.h pulled in and then won't have that type defined (m68knommu is one such as far as I can see). Would this make "int" prefered after all or should I just include asm/types.h where needed or just include it everywhere? seems logical that the file that uses header includes it directly instead of it getting included implicitly by other headers (like i386 where thread_info.h includes asm/page.h that then includes asm/mmx.h that then includes linux/types.h that finally includes asm/types.h). Personally I'd just add the asm/types.h include to all the thread_info.h files (or go back to using int) - what's your preference? -- Jesper |
|
From: Jesper J. <juh...@di...> - 2005-04-26 17:53:56
|
On Tue, 26 Apr 2005, Robert Love wrote: > On Tue, 2005-04-26 at 19:46 +0200, Jesper Juhl wrote: > > > I'll update the patch(es) then and use __s32 in the structure and s32 > > elsewhere. > > You can actually use s32 everywhere, since the structure is never > exported to user-space... Right, I'll do that then. > although some architectures already have the > __ugly versions in there. > Not for long :) -- Jesper |
|
From: Robert L. <rm...@no...> - 2005-04-26 17:46:59
|
On Tue, 2005-04-26 at 19:46 +0200, Jesper Juhl wrote: > I'll update the patch(es) then and use __s32 in the structure and s32 > elsewhere. You can actually use s32 everywhere, since the structure is never exported to user-space...although some architectures already have the __ugly versions in there. Robert Love |
|
From: Jesper J. <juh...@di...> - 2005-04-26 17:43:34
|
On Tue, 26 Apr 2005, Robert Love wrote: > On Tue, 2005-04-26 at 19:31 +0200, Jesper Juhl wrote: > > Replying to myself here since the initial mail got no response. Here's > > hoping that it showing up on the list again draws some comments :-) > > I didn't think it was that big of a deal. ;-) > It's not really that big of a deal. I was just currious if I'd gotten it right since I spend a good deal of time digging for possible reasons for the differences (and finding none). :-) > It seems the right approach. Personally, I would of made the type an > s32, since fixed-sizes seems to be sensible in the thread_info > structure, but an int is the same thing. Cool with me. > I'll update the patch(es) then and use __s32 in the structure and s32 elsewhere. > Acked-by: Robert Love <rm...@no...> > Thanks. > Robert Love > -- Jesper Juhl |
|
From: Robert L. <rm...@no...> - 2005-04-26 17:36:09
|
On Tue, 2005-04-26 at 19:31 +0200, Jesper Juhl wrote: > Replying to myself here since the initial mail got no response. Here's > hoping that it showing up on the list again draws some comments :-) I didn't think it was that big of a deal. ;-) It seems the right approach. Personally, I would of made the type an s32, since fixed-sizes seems to be sensible in the thread_info structure, but an int is the same thing. Cool with me. Acked-by: Robert Love <rm...@no...> Robert Love |
|
From: Jesper J. <juh...@di...> - 2005-04-26 17:28:11
|
Replying to myself here since the initial mail got no response. Here's
hoping that it showing up on the list again draws some comments :-)
--
Jesper
On Sat, 23 Apr 2005, Jesper Juhl wrote:
> While looking through the tree and checking out possible signedness issues
> pointed out to me by gcc -W I came across this one :
> kernel/timer.c:464: warning: comparison between signed and unsigned
> The issue there is this little bit of code :
> [...]
> 462 u32 preempt_count = preempt_count();
> 463 fn(data);
> 464 if (preempt_count != preempt_count()) {
> [...]
> gcc is complaining about that since preempt_count in struct thread_info
> (which is what preempt_count() returns) is a signed integer. Initially I
> thought "that's a bit sloppy, I'll just make the local variable a s32 and
> that should be that", but then I looked a little closer at struct
> thread_info for the different archs, and found that the type used differs
> between archs and it's not even a signed type on all (s390 being the
> unsigned exception). So all of a sudden fixing up this little warning was
> not so simple after all.
> The different types used for struct thread_info.preempt_count are
> __s32, int and unsigned int.
>
> Why are different types used for struct thread_info.preempt_count? Would
> it not make sense to make it a __s32 or plain int on all archs? I would
> think that consistency here would be a good thing.
> And why on earth is it an unsigned int on s390? It seems to me that that
> makes it impossible to catch bugs where preempt_count is decremented below
> zero.
>
> Any reason not to apply a patch like this one?
> my choice of 'int' over '__s32' was pretty arbitrary - as far as I know we
> don't support any archs where 'int' is less than 32bits, do we? So I
> figured that using a plain int type should give us at least 32 bits
> everywhere as well as using the given platforms fastest type. If any of
> the archs have <32bit int types, then I guess __s32 would be a better
> choice.
>
> Signed-of-by: Jesper Juhl <juh...@di...>
>
> --- linux-2.6.12-rc2-mm3-orig/include/asm-arm/thread_info.h 2005-03-02 08:38:08.000000000 +0100
> +++ linux-2.6.12-rc2-mm3/include/asm-arm/thread_info.h 2005-04-23 23:16:04.000000000 +0200
> @@ -45,7 +45,7 @@
> */
> struct thread_info {
> unsigned long flags; /* low level flags */
> - __s32 preempt_count; /* 0 => preemptable, <0 => bug */
> + int preempt_count; /* 0 => preemptable, <0 => bug */
> mm_segment_t addr_limit; /* address limit */
> struct task_struct *task; /* main task structure */
> struct exec_domain *exec_domain; /* execution domain */
> --- linux-2.6.12-rc2-mm3-orig/include/asm-arm26/thread_info.h 2005-03-02 08:37:50.000000000 +0100
> +++ linux-2.6.12-rc2-mm3/include/asm-arm26/thread_info.h 2005-04-23 23:16:22.000000000 +0200
> @@ -44,7 +44,7 @@
> */
> struct thread_info {
> unsigned long flags; /* low level flags */
> - __s32 preempt_count; /* 0 => preemptable, <0 => bug */
> + int preempt_count; /* 0 => preemptable, <0 => bug */
> mm_segment_t addr_limit; /* address limit */
> struct task_struct *task; /* main task structure */
> struct exec_domain *exec_domain; /* execution domain */
> --- linux-2.6.12-rc2-mm3-orig/include/asm-cris/thread_info.h 2005-03-02 08:38:32.000000000 +0100
> +++ linux-2.6.12-rc2-mm3/include/asm-cris/thread_info.h 2005-04-23 23:16:29.000000000 +0200
> @@ -31,7 +31,7 @@
> struct exec_domain *exec_domain; /* execution domain */
> unsigned long flags; /* low level flags */
> __u32 cpu; /* current CPU */
> - __s32 preempt_count; /* 0 => preemptable, <0 => BUG */
> + int preempt_count; /* 0 => preemptable, <0 => BUG */
>
> mm_segment_t addr_limit; /* thread address space:
> 0-0xBFFFFFFF for user-thead
> --- linux-2.6.12-rc2-mm3-orig/include/asm-frv/thread_info.h 2005-03-02 08:37:50.000000000 +0100
> +++ linux-2.6.12-rc2-mm3/include/asm-frv/thread_info.h 2005-04-23 23:16:37.000000000 +0200
> @@ -33,7 +33,7 @@
> unsigned long flags; /* low level flags */
> unsigned long status; /* thread-synchronous flags */
> __u32 cpu; /* current CPU */
> - __s32 preempt_count; /* 0 => preemptable, <0 => BUG */
> + int preempt_count; /* 0 => preemptable, <0 => BUG */
>
> mm_segment_t addr_limit; /* thread address space:
> 0-0xBFFFFFFF for user-thead
> --- linux-2.6.12-rc2-mm3-orig/include/asm-i386/thread_info.h 2005-04-05 21:21:48.000000000 +0200
> +++ linux-2.6.12-rc2-mm3/include/asm-i386/thread_info.h 2005-04-23 23:16:50.000000000 +0200
> @@ -31,7 +31,7 @@
> unsigned long flags; /* low level flags */
> unsigned long status; /* thread-synchronous flags */
> __u32 cpu; /* current CPU */
> - __s32 preempt_count; /* 0 => preemptable, <0 => BUG */
> + int preempt_count; /* 0 => preemptable, <0 => BUG */
>
>
> mm_segment_t addr_limit; /* thread address space:
> --- linux-2.6.12-rc2-mm3-orig/include/asm-ia64/thread_info.h 2005-03-02 08:38:33.000000000 +0100
> +++ linux-2.6.12-rc2-mm3/include/asm-ia64/thread_info.h 2005-04-23 23:17:04.000000000 +0200
> @@ -25,7 +25,7 @@
> __u32 flags; /* thread_info flags (see TIF_*) */
> __u32 cpu; /* current CPU */
> mm_segment_t addr_limit; /* user-level address space limit */
> - __s32 preempt_count; /* 0=premptable, <0=BUG; will also serve as bh-counter */
> + int preempt_count; /* 0=premptable, <0=BUG; will also serve as bh-counter */
> struct restart_block restart_block;
> struct {
> int signo;
> --- linux-2.6.12-rc2-mm3-orig/include/asm-m32r/thread_info.h 2005-03-02 08:38:26.000000000 +0100
> +++ linux-2.6.12-rc2-mm3/include/asm-m32r/thread_info.h 2005-04-23 23:17:21.000000000 +0200
> @@ -28,7 +28,7 @@
> unsigned long flags; /* low level flags */
> unsigned long status; /* thread-synchronous flags */
> __u32 cpu; /* current CPU */
> - __s32 preempt_count; /* 0 => preemptable, <0 => BUG */
> + int preempt_count; /* 0 => preemptable, <0 => BUG */
>
> mm_segment_t addr_limit; /* thread address space:
> 0-0xBFFFFFFF for user-thread
> --- linux-2.6.12-rc2-mm3-orig/include/asm-m68k/thread_info.h 2005-04-05 21:21:49.000000000 +0200
> +++ linux-2.6.12-rc2-mm3/include/asm-m68k/thread_info.h 2005-04-23 23:17:29.000000000 +0200
> @@ -8,7 +8,7 @@
> struct thread_info {
> struct task_struct *task; /* main task structure */
> struct exec_domain *exec_domain; /* execution domain */
> - __s32 preempt_count; /* 0 => preemptable, <0 => BUG */
> + int preempt_count; /* 0 => preemptable, <0 => BUG */
> __u32 cpu; /* should always be 0 on m68k */
> struct restart_block restart_block;
>
> --- linux-2.6.12-rc2-mm3-orig/include/asm-mips/thread_info.h 2005-03-02 08:37:30.000000000 +0100
> +++ linux-2.6.12-rc2-mm3/include/asm-mips/thread_info.h 2005-04-23 23:17:47.000000000 +0200
> @@ -27,7 +27,7 @@
> struct exec_domain *exec_domain; /* execution domain */
> unsigned long flags; /* low level flags */
> __u32 cpu; /* current CPU */
> - __s32 preempt_count; /* 0 => preemptable, <0 => BUG */
> + int preempt_count; /* 0 => preemptable, <0 => BUG */
>
> mm_segment_t addr_limit; /* thread address space:
> 0-0xBFFFFFFF for user-thead
> --- linux-2.6.12-rc2-mm3-orig/include/asm-parisc/thread_info.h 2005-04-05 21:21:49.000000000 +0200
> +++ linux-2.6.12-rc2-mm3/include/asm-parisc/thread_info.h 2005-04-23 23:17:55.000000000 +0200
> @@ -12,7 +12,7 @@
> unsigned long flags; /* thread_info flags (see TIF_*) */
> mm_segment_t addr_limit; /* user-level address space limit */
> __u32 cpu; /* current CPU */
> - __s32 preempt_count; /* 0=premptable, <0=BUG; will also serve as bh-counter */
> + int preempt_count; /* 0=premptable, <0=BUG; will also serve as bh-counter */
> struct restart_block restart_block;
> };
>
> --- linux-2.6.12-rc2-mm3-orig/include/asm-s390/thread_info.h 2005-03-02 08:38:13.000000000 +0100
> +++ linux-2.6.12-rc2-mm3/include/asm-s390/thread_info.h 2005-04-23 23:18:12.000000000 +0200
> @@ -50,7 +50,7 @@
> struct exec_domain *exec_domain; /* execution domain */
> unsigned long flags; /* low level flags */
> unsigned int cpu; /* current CPU */
> - unsigned int preempt_count; /* 0 => preemptable */
> + int preempt_count; /* 0 => preemptable */
> struct restart_block restart_block;
> };
>
> --- linux-2.6.12-rc2-mm3-orig/include/asm-sh/thread_info.h 2005-03-02 08:38:13.000000000 +0100
> +++ linux-2.6.12-rc2-mm3/include/asm-sh/thread_info.h 2005-04-23 23:18:20.000000000 +0200
> @@ -20,7 +20,7 @@
> struct exec_domain *exec_domain; /* execution domain */
> __u32 flags; /* low level flags */
> __u32 cpu;
> - __s32 preempt_count; /* 0 => preemptable, <0 => BUG */
> + int preempt_count; /* 0 => preemptable, <0 => BUG */
> struct restart_block restart_block;
> __u8 supervisor_stack[0];
> };
> --- linux-2.6.12-rc2-mm3-orig/include/asm-sh64/thread_info.h 2005-04-05 21:21:49.000000000 +0200
> +++ linux-2.6.12-rc2-mm3/include/asm-sh64/thread_info.h 2005-04-23 23:18:27.000000000 +0200
> @@ -22,7 +22,7 @@
> struct exec_domain *exec_domain; /* execution domain */
> unsigned long flags; /* low level flags */
> /* Put the 4 32-bit fields together to make asm offsetting easier. */
> - __s32 preempt_count; /* 0 => preemptable, <0 => BUG */
> + int preempt_count; /* 0 => preemptable, <0 => BUG */
> __u16 cpu;
>
> mm_segment_t addr_limit;
> --- linux-2.6.12-rc2-mm3-orig/include/asm-um/thread_info.h 2005-03-02 08:37:54.000000000 +0100
> +++ linux-2.6.12-rc2-mm3/include/asm-um/thread_info.h 2005-04-23 23:18:50.000000000 +0200
> @@ -17,7 +17,7 @@
> struct exec_domain *exec_domain; /* execution domain */
> unsigned long flags; /* low level flags */
> __u32 cpu; /* current CPU */
> - __s32 preempt_count; /* 0 => preemptable,
> + int preempt_count; /* 0 => preemptable,
> <0 => BUG */
> mm_segment_t addr_limit; /* thread address space:
> 0-0xBFFFFFFF for user
>
>
> and then the litle detail in kernel/timer.c can be fixed nicely like this:
>
> Signed-off-by: Jesper Juhl <juh...@di...>
>
> --- linux-2.6.12-rc2-mm3-orig/kernel/timer.c 2005-04-11 21:20:56.000000000 +0200
> +++ linux-2.6.12-rc2-mm3/kernel/timer.c 2005-04-23 23:19:21.000000000 +0200
> @@ -459,7 +459,7 @@ static inline void __run_timers(tvec_bas
> detach_timer(timer, 1);
> spin_unlock_irq(&base->t_base.lock);
> {
> - u32 preempt_count = preempt_count();
> + int preempt_count = preempt_count();
> fn(data);
> if (preempt_count != preempt_count()) {
> printk("huh, entered %p with %08x, exited with %08x?\n", fn, preempt_count, preempt_count());
>
>
> or is there some good reason I'm missing that make the above a bad idea?
>
>
> --
> Jesper Juhl
>
> PS. Please CC: me on replies.
>
>
|
|
From: Jesper J. <juh...@di...> - 2005-04-23 21:26:58
|
While looking through the tree and checking out possible signedness issues
pointed out to me by gcc -W I came across this one :
kernel/timer.c:464: warning: comparison between signed and unsigned
The issue there is this little bit of code :
[...]
462 u32 preempt_count = preempt_count();
463 fn(data);
464 if (preempt_count != preempt_count()) {
[...]
gcc is complaining about that since preempt_count in struct thread_info
(which is what preempt_count() returns) is a signed integer. Initially I
thought "that's a bit sloppy, I'll just make the local variable a s32 and
that should be that", but then I looked a little closer at struct
thread_info for the different archs, and found that the type used differs
between archs and it's not even a signed type on all (s390 being the
unsigned exception). So all of a sudden fixing up this little warning was
not so simple after all.
The different types used for struct thread_info.preempt_count are
__s32, int and unsigned int.
Why are different types used for struct thread_info.preempt_count? Would
it not make sense to make it a __s32 or plain int on all archs? I would
think that consistency here would be a good thing.
And why on earth is it an unsigned int on s390? It seems to me that that
makes it impossible to catch bugs where preempt_count is decremented below
zero.
Any reason not to apply a patch like this one?
my choice of 'int' over '__s32' was pretty arbitrary - as far as I know we
don't support any archs where 'int' is less than 32bits, do we? So I
figured that using a plain int type should give us at least 32 bits
everywhere as well as using the given platforms fastest type. If any of
the archs have <32bit int types, then I guess __s32 would be a better
choice.
Signed-of-by: Jesper Juhl <juh...@di...>
--- linux-2.6.12-rc2-mm3-orig/include/asm-arm/thread_info.h 2005-03-02 08:38:08.000000000 +0100
+++ linux-2.6.12-rc2-mm3/include/asm-arm/thread_info.h 2005-04-23 23:16:04.000000000 +0200
@@ -45,7 +45,7 @@
*/
struct thread_info {
unsigned long flags; /* low level flags */
- __s32 preempt_count; /* 0 => preemptable, <0 => bug */
+ int preempt_count; /* 0 => preemptable, <0 => bug */
mm_segment_t addr_limit; /* address limit */
struct task_struct *task; /* main task structure */
struct exec_domain *exec_domain; /* execution domain */
--- linux-2.6.12-rc2-mm3-orig/include/asm-arm26/thread_info.h 2005-03-02 08:37:50.000000000 +0100
+++ linux-2.6.12-rc2-mm3/include/asm-arm26/thread_info.h 2005-04-23 23:16:22.000000000 +0200
@@ -44,7 +44,7 @@
*/
struct thread_info {
unsigned long flags; /* low level flags */
- __s32 preempt_count; /* 0 => preemptable, <0 => bug */
+ int preempt_count; /* 0 => preemptable, <0 => bug */
mm_segment_t addr_limit; /* address limit */
struct task_struct *task; /* main task structure */
struct exec_domain *exec_domain; /* execution domain */
--- linux-2.6.12-rc2-mm3-orig/include/asm-cris/thread_info.h 2005-03-02 08:38:32.000000000 +0100
+++ linux-2.6.12-rc2-mm3/include/asm-cris/thread_info.h 2005-04-23 23:16:29.000000000 +0200
@@ -31,7 +31,7 @@
struct exec_domain *exec_domain; /* execution domain */
unsigned long flags; /* low level flags */
__u32 cpu; /* current CPU */
- __s32 preempt_count; /* 0 => preemptable, <0 => BUG */
+ int preempt_count; /* 0 => preemptable, <0 => BUG */
mm_segment_t addr_limit; /* thread address space:
0-0xBFFFFFFF for user-thead
--- linux-2.6.12-rc2-mm3-orig/include/asm-frv/thread_info.h 2005-03-02 08:37:50.000000000 +0100
+++ linux-2.6.12-rc2-mm3/include/asm-frv/thread_info.h 2005-04-23 23:16:37.000000000 +0200
@@ -33,7 +33,7 @@
unsigned long flags; /* low level flags */
unsigned long status; /* thread-synchronous flags */
__u32 cpu; /* current CPU */
- __s32 preempt_count; /* 0 => preemptable, <0 => BUG */
+ int preempt_count; /* 0 => preemptable, <0 => BUG */
mm_segment_t addr_limit; /* thread address space:
0-0xBFFFFFFF for user-thead
--- linux-2.6.12-rc2-mm3-orig/include/asm-i386/thread_info.h 2005-04-05 21:21:48.000000000 +0200
+++ linux-2.6.12-rc2-mm3/include/asm-i386/thread_info.h 2005-04-23 23:16:50.000000000 +0200
@@ -31,7 +31,7 @@
unsigned long flags; /* low level flags */
unsigned long status; /* thread-synchronous flags */
__u32 cpu; /* current CPU */
- __s32 preempt_count; /* 0 => preemptable, <0 => BUG */
+ int preempt_count; /* 0 => preemptable, <0 => BUG */
mm_segment_t addr_limit; /* thread address space:
--- linux-2.6.12-rc2-mm3-orig/include/asm-ia64/thread_info.h 2005-03-02 08:38:33.000000000 +0100
+++ linux-2.6.12-rc2-mm3/include/asm-ia64/thread_info.h 2005-04-23 23:17:04.000000000 +0200
@@ -25,7 +25,7 @@
__u32 flags; /* thread_info flags (see TIF_*) */
__u32 cpu; /* current CPU */
mm_segment_t addr_limit; /* user-level address space limit */
- __s32 preempt_count; /* 0=premptable, <0=BUG; will also serve as bh-counter */
+ int preempt_count; /* 0=premptable, <0=BUG; will also serve as bh-counter */
struct restart_block restart_block;
struct {
int signo;
--- linux-2.6.12-rc2-mm3-orig/include/asm-m32r/thread_info.h 2005-03-02 08:38:26.000000000 +0100
+++ linux-2.6.12-rc2-mm3/include/asm-m32r/thread_info.h 2005-04-23 23:17:21.000000000 +0200
@@ -28,7 +28,7 @@
unsigned long flags; /* low level flags */
unsigned long status; /* thread-synchronous flags */
__u32 cpu; /* current CPU */
- __s32 preempt_count; /* 0 => preemptable, <0 => BUG */
+ int preempt_count; /* 0 => preemptable, <0 => BUG */
mm_segment_t addr_limit; /* thread address space:
0-0xBFFFFFFF for user-thread
--- linux-2.6.12-rc2-mm3-orig/include/asm-m68k/thread_info.h 2005-04-05 21:21:49.000000000 +0200
+++ linux-2.6.12-rc2-mm3/include/asm-m68k/thread_info.h 2005-04-23 23:17:29.000000000 +0200
@@ -8,7 +8,7 @@
struct thread_info {
struct task_struct *task; /* main task structure */
struct exec_domain *exec_domain; /* execution domain */
- __s32 preempt_count; /* 0 => preemptable, <0 => BUG */
+ int preempt_count; /* 0 => preemptable, <0 => BUG */
__u32 cpu; /* should always be 0 on m68k */
struct restart_block restart_block;
--- linux-2.6.12-rc2-mm3-orig/include/asm-mips/thread_info.h 2005-03-02 08:37:30.000000000 +0100
+++ linux-2.6.12-rc2-mm3/include/asm-mips/thread_info.h 2005-04-23 23:17:47.000000000 +0200
@@ -27,7 +27,7 @@
struct exec_domain *exec_domain; /* execution domain */
unsigned long flags; /* low level flags */
__u32 cpu; /* current CPU */
- __s32 preempt_count; /* 0 => preemptable, <0 => BUG */
+ int preempt_count; /* 0 => preemptable, <0 => BUG */
mm_segment_t addr_limit; /* thread address space:
0-0xBFFFFFFF for user-thead
--- linux-2.6.12-rc2-mm3-orig/include/asm-parisc/thread_info.h 2005-04-05 21:21:49.000000000 +0200
+++ linux-2.6.12-rc2-mm3/include/asm-parisc/thread_info.h 2005-04-23 23:17:55.000000000 +0200
@@ -12,7 +12,7 @@
unsigned long flags; /* thread_info flags (see TIF_*) */
mm_segment_t addr_limit; /* user-level address space limit */
__u32 cpu; /* current CPU */
- __s32 preempt_count; /* 0=premptable, <0=BUG; will also serve as bh-counter */
+ int preempt_count; /* 0=premptable, <0=BUG; will also serve as bh-counter */
struct restart_block restart_block;
};
--- linux-2.6.12-rc2-mm3-orig/include/asm-s390/thread_info.h 2005-03-02 08:38:13.000000000 +0100
+++ linux-2.6.12-rc2-mm3/include/asm-s390/thread_info.h 2005-04-23 23:18:12.000000000 +0200
@@ -50,7 +50,7 @@
struct exec_domain *exec_domain; /* execution domain */
unsigned long flags; /* low level flags */
unsigned int cpu; /* current CPU */
- unsigned int preempt_count; /* 0 => preemptable */
+ int preempt_count; /* 0 => preemptable */
struct restart_block restart_block;
};
--- linux-2.6.12-rc2-mm3-orig/include/asm-sh/thread_info.h 2005-03-02 08:38:13.000000000 +0100
+++ linux-2.6.12-rc2-mm3/include/asm-sh/thread_info.h 2005-04-23 23:18:20.000000000 +0200
@@ -20,7 +20,7 @@
struct exec_domain *exec_domain; /* execution domain */
__u32 flags; /* low level flags */
__u32 cpu;
- __s32 preempt_count; /* 0 => preemptable, <0 => BUG */
+ int preempt_count; /* 0 => preemptable, <0 => BUG */
struct restart_block restart_block;
__u8 supervisor_stack[0];
};
--- linux-2.6.12-rc2-mm3-orig/include/asm-sh64/thread_info.h 2005-04-05 21:21:49.000000000 +0200
+++ linux-2.6.12-rc2-mm3/include/asm-sh64/thread_info.h 2005-04-23 23:18:27.000000000 +0200
@@ -22,7 +22,7 @@
struct exec_domain *exec_domain; /* execution domain */
unsigned long flags; /* low level flags */
/* Put the 4 32-bit fields together to make asm offsetting easier. */
- __s32 preempt_count; /* 0 => preemptable, <0 => BUG */
+ int preempt_count; /* 0 => preemptable, <0 => BUG */
__u16 cpu;
mm_segment_t addr_limit;
--- linux-2.6.12-rc2-mm3-orig/include/asm-um/thread_info.h 2005-03-02 08:37:54.000000000 +0100
+++ linux-2.6.12-rc2-mm3/include/asm-um/thread_info.h 2005-04-23 23:18:50.000000000 +0200
@@ -17,7 +17,7 @@
struct exec_domain *exec_domain; /* execution domain */
unsigned long flags; /* low level flags */
__u32 cpu; /* current CPU */
- __s32 preempt_count; /* 0 => preemptable,
+ int preempt_count; /* 0 => preemptable,
<0 => BUG */
mm_segment_t addr_limit; /* thread address space:
0-0xBFFFFFFF for user
and then the litle detail in kernel/timer.c can be fixed nicely like this:
Signed-off-by: Jesper Juhl <juh...@di...>
--- linux-2.6.12-rc2-mm3-orig/kernel/timer.c 2005-04-11 21:20:56.000000000 +0200
+++ linux-2.6.12-rc2-mm3/kernel/timer.c 2005-04-23 23:19:21.000000000 +0200
@@ -459,7 +459,7 @@ static inline void __run_timers(tvec_bas
detach_timer(timer, 1);
spin_unlock_irq(&base->t_base.lock);
{
- u32 preempt_count = preempt_count();
+ int preempt_count = preempt_count();
fn(data);
if (preempt_count != preempt_count()) {
printk("huh, entered %p with %08x, exited with %08x?\n", fn, preempt_count, preempt_count());
or is there some good reason I'm missing that make the above a bad idea?
--
Jesper Juhl
PS. Please CC: me on replies.
|
|
From: Hillel<go...@ya...> - 2005-03-19 18:44:14
|
Looking for not expensive high-quality software? We might have just what you need. Windows XP Professional 2002 ............... $50 Adobe Photoshop 7.0 ................................ $60 Microsoft Office XP Professional 2002 .... $60 Corel Draw Graphics Suite 11 .................. $60 and lots more... |
|
From: Knut J B. <kn...@on...> - 2005-03-10 14:14:32
|
caller is arch_add_exec_range+0x49/0x6a
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
When booting linux 2.6.11 with preemetable enable I get BUG: using
smp_processor_id() in preemptible [00000001] code: hotplug/461caller is
arch_add_exec_range+0x49/0x6a
when I load the kernel. I get this error messeage before loading xorg
,and the kernel is untained.
Linux version 2.6.11 (root@knutjorgen) (gcc version 3.4.2 20041017 (Red
Hat 3.4.2-6.fc3)) #1 SMP Thu Mar 10 08:09:49 CET 2005
BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 00000000000a0000 (usable)
BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 000000003fe8cc00 (usable)
BIOS-e820: 000000003fe8cc00 - 000000003fe8ec00 (ACPI NVS)
BIOS-e820: 000000003fe8ec00 - 000000003fe90c00 (ACPI data)
BIOS-e820: 000000003fe90c00 - 0000000040000000 (reserved)
BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved)
BIOS-e820: 00000000fec00000 - 00000000fed00400 (reserved)
BIOS-e820: 00000000fed20000 - 00000000feda0000 (reserved)
BIOS-e820: 00000000fee00000 - 00000000fef00000 (reserved)
BIOS-e820: 00000000ffb00000 - 0000000100000000 (reserved)
126MB HIGHMEM available.
896MB LOWMEM available.
found SMP MP-table at 000fe710
Using x86 segment limits to approximate NX protection
On node 0 totalpages: 261772
DMA zone: 4096 pages, LIFO batch:1
Normal zone: 225280 pages, LIFO batch:16
HighMem zone: 32396 pages, LIFO batch:7
DMI 2.3 present.
Using APIC driver default
ACPI: RSDP (v000 DELL ) @ 0x000febf0
ACPI: RSDT (v001 DELL 8400 0x00000007 ASL 0x00000061) @ 0x000fccbe
ACPI: FADT (v001 DELL 8400 0x00000007 ASL 0x00000061) @ 0x000fccfa
ACPI: SSDT (v001 DELL st_ex 0x00001000 MSFT 0x0100000d) @ 0xfffc92bf
ACPI: MADT (v001 DELL 8400 0x00000007 ASL 0x00000061) @ 0x000fcd6e
ACPI: BOOT (v001 DELL 8400 0x00000007 ASL 0x00000061) @ 0x000fcde0
ACPI: MCFG (v001 DELL 8400 0x00000007 ASL 0x00000061) @ 0x000fce08
ACPI: HPET (v001 DELL 8400 0x00000007 ASL 0x00000061) @ 0x000fce46
ACPI: DSDT (v001 DELL dt_ex 0x00001000 MSFT 0x0100000d) @ 0x00000000
ACPI: PM-Timer IO Port: 0x808
ACPI: Local APIC address 0xfee00000
ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
Processor #0 15:4 APIC version 20
ACPI: LAPIC (acpi_id[0x02] lapic_id[0x01] enabled)
Processor #1 15:4 APIC version 20
ACPI: LAPIC (acpi_id[0x03] lapic_id[0x01] disabled)
ACPI: LAPIC (acpi_id[0x04] lapic_id[0x07] disabled)
ACPI: LAPIC_NMI (acpi_id[0xff] high level lint[0x1])
ACPI: IOAPIC (id[0x08] address[0xfec00000] gsi_base[0])
IOAPIC[0]: apic_id 8, version 32, address 0xfec00000, GSI 0-23
ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
ACPI: IRQ0 used by override.
ACPI: IRQ2 used by override.
ACPI: IRQ9 used by override.
Enabling APIC mode: Flat. Using 1 I/O APICs
ACPI: HPET id: 0x8086a201 base: 0xfed00000
Using ACPI (MADT) for SMP configuration information
Allocating PCI resources starting at 40000000 (gap: 40000000:a0000000)
Built 1 zonelists
Kernel command line: ro root=/dev/VolGroup00/LogVol00 selinux=permissive
single
mapped APIC to ffffd000 (fee00000)
mapped IOAPIC to ffffc000 (fec00000)
Initializing CPU#0
CPU 0 irqstacks, hard=c0436000 soft=c0416000
PID hash table entries: 4096 (order: 12, 65536 bytes)
Console: colour VGA+ 80x25
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
Memory: 1029396k/1047088k available (2120k kernel code, 16900k reserved,
781k data, 232k init, 129584k highmem)
Checking if this processor honours the WP bit even in supervisor mode... Ok.
hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0
hpet0: 0ns tick, 3 64-bit timers
Using HPET for base-timer
Using HPET for gettimeofday
Detected 2993.010 MHz processor.
Using hpet for high-res timesource
Calibrating delay loop... 5931.00 BogoMIPS (lpj=2965504)
Security Framework v1.0.0 initialized
SELinux: Disabled at boot.
Capability LSM initialized
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
CPU: After generic identify, caps: bfebfbff 00000000 00000000 00000000
0000441d 00000000 00000000
CPU: After vendor identify, caps: bfebfbff 00000000 00000000 00000000
0000441d 00000000 00000000
monitor/mwait feature present.
using mwait in idle threads.
CPU: Trace cache: 12K uops, L1 D cache: 16K
CPU: L2 cache: 1024K
CPU: Physical Processor ID: 0
CPU: After all inits, caps: bfebf3f7 00000000 00000000 00000080 0000441d
00000000 00000000
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#0.
CPU0: Intel P4/Xeon Extended MCE MSRs (12) available
CPU0: Thermal monitoring enabled
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Checking 'hlt' instruction... OK.
CPU0: Intel(R) Pentium(R) 4 CPU 3.00GHz stepping 01
per-CPU timeslice cutoff: 2924.86 usecs.
task migration cache decay timeout: 3 msecs.
Booting processor 1/1 eip 3000
CPU 1 irqstacks, hard=c0437000 soft=c0417000
Initializing CPU#1
Calibrating delay loop... 5980.16 BogoMIPS (lpj=2990080)
CPU: After generic identify, caps: bfebfbff 00000000 00000000 00000000
0000441d 00000000 00000000
CPU: After vendor identify, caps: bfebfbff 00000000 00000000 00000000
0000441d 00000000 00000000
monitor/mwait feature present.
CPU: Trace cache: 12K uops, L1 D cache: 16K
CPU: L2 cache: 1024K
CPU: Physical Processor ID: 0
CPU: After all inits, caps: bfebf3f7 00000000 00000000 00000080 0000441d
00000000 00000000
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#1.
CPU1: Intel P4/Xeon Extended MCE MSRs (12) available
CPU1: Thermal monitoring enabled
CPU1: Intel(R) Pentium(R) 4 CPU 3.00GHz stepping 01
Total of 2 processors activated (11911.16 BogoMIPS).
ENABLING IO-APIC IRQs
..TIMER: vector=0x31 pin1=2 pin2=-1
checking TSC synchronization across 2 CPUs: passed.
Brought up 2 CPUs
checking if image is initramfs... it is
Freeing initrd memory: 1231k freed
NET: Registered protocol family 16
PCI: PCI BIOS revision 2.10 entry at 0xfb76a, last bus=4
PCI: Using MMCONFIG
mtrr: v2.0 (20020519)
ACPI: Subsystem revision 20050211
ACPI: Interpreter enabled
ACPI: Using IOAPIC for interrupt routing
ACPI: PCI Root Bridge [PCI0] (00:00)
PCI: Probing PCI hardware (bus 00)
PCI: Ignoring BAR0-3 of IDE controller 0000:00:1f.1
PCI: Transparent bridge - 0000:00:1e.0
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCI1._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCI2._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCI3._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCI4._PRT]
ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 7 9 10 *11 12 15)
ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 7 9 *10 11 12 15)
ACPI: PCI Interrupt Link [LNKC] (IRQs *3 4 5 6 7 9 10 11 12 15)
ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 7 9 10 11 12 15) *0, disabled.
ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 *5 6 7 9 10 11 12 15)
ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 6 7 *9 10 11 12 15)
ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 *5 6 7 9 10 11 12 15)
ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 6 7 9 *10 11 12 15)
Linux Plug and Play Support v0.97 (c) Adam Belay
pnp: PnP ACPI init
pnp: PnP ACPI: found 13 devices
usbcore: registered new driver usbfs
usbcore: registered new driver hub
PCI: Using ACPI for IRQ routing
** PCI interrupts are no longer routed automatically. If this
** causes a device to stop working, it is probably because the
** driver failed to call pci_enable_device(). As a temporary
** workaround, the "pci=routeirq" argument restores the old
** behavior. If this argument makes the device work again,
** please email the output of "lspci" to bjo...@hp...
** so I can fix the driver.
pnp: 00:00: ioport range 0x800-0x85f could not be reserved
pnp: 00:00: ioport range 0xc00-0xc7f has been reserved
pnp: 00:00: ioport range 0x860-0x8ff has been reserved
Simple Boot Flag value 0x87 read from CMOS RAM was invalid
Simple Boot Flag at 0x7a set to 0x1
apm: BIOS version 1.2 Flags 0x03 (Driver version 1.16ac)
apm: disabled - APM is not SMP safe.
audit: initializing netlink socket (disabled)
audit(1110443970.214:0): initialized
highmem bounce pool size: 64 pages
Total HugeTLB memory allocated, 0
VFS: Disk quotas dquot_6.5.1
Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
Initializing Cryptographic API
ksign: Installing public key data
Loading keyring
pci_hotplug: PCI Hot Plug PCI Core version: 0.5
ACPI: PCI interrupt 0000:00:01.0[A] -> GSI 16 (level, low) -> IRQ 169
PCI: Setting latency timer of device 0000:00:01.0 to 64
assign_interrupt_mode Found MSI capability
Allocate Port Service[pcie00]
Allocate Port Service[pcie03]
ACPI: PCI interrupt 0000:00:1c.0[A] -> GSI 16 (level, low) -> IRQ 169
PCI: Setting latency timer of device 0000:00:1c.0 to 64
assign_interrupt_mode Found MSI capability
Allocate Port Service[pcie00]
Allocate Port Service[pcie02]
Allocate Port Service[pcie03]
ACPI: PCI interrupt 0000:00:1c.1[B] -> GSI 17 (level, low) -> IRQ 201
PCI: Setting latency timer of device 0000:00:1c.1 to 64
assign_interrupt_mode Found MSI capability
Allocate Port Service[pcie00]
Allocate Port Service[pcie02]
Allocate Port Service[pcie03]
isapnp: Scanning for PnP cards...
isapnp: No Plug & Play device found
Real Time Clock Driver v1.12
hpet_acpi_add: no address or irqs in _CRS
Linux agpgart interface v0.100 (c) Dave Jones
[drm] Initialized drm 1.0.0 20040925
serio: i8042 AUX port at 0x60,0x64 irq 12
serio: i8042 KBD port at 0x60,0x64 irq 1
Serial: 8250/16550 driver $Revision: 1.90 $ 76 ports, IRQ sharing enabled
ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
io scheduler noop registered
io scheduler cfq registered
RAMDISK driver initialized: 16 RAM disks of 16384K size 1024 blocksize
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
ICH6: IDE controller at PCI slot 0000:00:1f.1
ACPI: PCI interrupt 0000:00:1f.1[A] -> GSI 16 (level, low) -> IRQ 169
ICH6: chipset revision 3
ICH6: not 100% native mode: will probe irqs later
ide0: BM-DMA at 0xffa0-0xffa7, BIOS settings: hda:DMA, hdb:pio
Probing IDE interface ide0...
hda: PHILIPS DVD+/-RW DVD8631, ATAPI CD/DVD-ROM drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
Probing IDE interface ide1...
Probing IDE interface ide2...
Probing IDE interface ide3...
Probing IDE interface ide4...
Probing IDE interface ide5...
hda: ATAPI 40X DVD-ROM DVD-R CD-R/RW drive, 2048kB Cache, UDMA(33)
Uniform CD-ROM driver Revision: 3.20
ide-floppy driver 0.99.newide
usbcore: registered new driver hiddev
usbcore: registered new driver usbhid
drivers/usb/input/hid-core.c: v2.0:USB HID core driver
mice: PS/2 mouse device common for all mice
input: AT Translated Set 2 keyboard on isa0060/serio0
input: ImPS/2 Generic Wheel Mouse on isa0060/serio1
gameport: pci0000:04:00.1 speed 903 kHz
md: md driver 0.90.1 MAX_MD_DEVS=256, MD_SB_DISKS=27
NET: Registered protocol family 2
IP: routing cache hash table of 4096 buckets, 64Kbytes
TCP established hash table entries: 131072 (order: 9, 2097152 bytes)
TCP bind hash table entries: 65536 (order: 8, 1048576 bytes)
TCP: Hash tables configured (established 131072 bind 65536)
Initializing IPsec netlink socket
NET: Registered protocol family 1
NET: Registered protocol family 17
ACPI wakeup devices:
VBTN PCI0 PCI1 PCI2 PCI3 PCI4 KBD USB0 USB1 USB2 USB3
ACPI: (supports S0 S1 S3 S4 S5)
CPU0 attaching sched-domain:
domain 0: span 00000003
groups: 00000001 00000002
domain 1: span 00000003
groups: 00000003
CPU1 attaching sched-domain:
domain 0: span 00000003
groups: 00000002 00000001
domain 1: span 00000003
groups: 00000003
Freeing unused kernel memory: 232k freed
BUG: using smp_processor_id() in preemptible [00000001] code: hotplug/461
caller is arch_add_exec_range+0x49/0x6a
[<c01d2c3f>] smp_processor_id+0x8f/0xa0
[<c0103170>] arch_add_exec_range+0x49/0x6a
[<c0186bb8>] load_elf_binary+0x45e/0xdc0
[<c0144d6f>] rmqueue_bulk+0x68/0x72
[<c014e73b>] set_page_address+0x91/0x166
[<c0310e81>] _spin_unlock_irqrestore+0x21/0x49
[<c0145493>] __alloc_pages+0x17a/0x3de
[<c0310df2>] _spin_unlock+0x1f/0x47
[<c014e14d>] kunmap_high+0x7b/0x9f
[<c018675a>] load_elf_binary+0x0/0xdc0
[<c016a283>] search_binary_handler+0xdd/0x2fe
[<c016a608>] do_execve+0x164/0x205
[<c0102cd6>] sys_execve+0x30/0x94
[<c0104193>] syscall_call+0x7/0xb
[<c0131066>] __exec_usermodehelper+0x84/0xa0
[<c01310a6>] ____call_usermodehelper+0x24/0x2e
[<c0131082>] ____call_usermodehelper+0x0/0x2e
[<c01022f9>] kernel_thread_helper+0x5/0xb
BUG: using smp_processor_id() in preemptible [00000001] code: hotplug/461
caller is load_elf_binary+0xb0b/0xdc0
[<c01d2c3f>] smp_processor_id+0x8f/0xa0
[<c0187265>] load_elf_binary+0xb0b/0xdc0
[<c0310df2>] _spin_unlock+0x1f/0x47
[<c014e14d>] kunmap_high+0x7b/0x9f
[<c018675a>] load_elf_binary+0x0/0xdc0
[<c016a283>] search_binary_handler+0xdd/0x2fe
[<c016a608>] do_execve+0x164/0x205
[<c0102cd6>] sys_execve+0x30/0x94
[<c0104193>] syscall_call+0x7/0xb
[<c01310a6>] ____call_usermodehelper+0x24/0x2e
[<c0131082>] ____call_usermodehelper+0x0/0x2e
[<c01022f9>] kernel_thread_helper+0x5/0xb
BUG: using smp_processor_id() in preemptible [00000001] code: hotplug/462
caller is arch_add_exec_range+0x49/0x6a
[<c01d2c3f>] smp_processor_id+0x8f/0xa0
[<c0103170>] arch_add_exec_range+0x49/0x6a
[<c0186bb8>] load_elf_binary+0x45e/0xdc0
[<c0141bef>] generic_file_read+0x9c/0xba
[<c0310e81>] _spin_unlock_irqrestore+0x21/0x49
[<c0145493>] __alloc_pages+0x17a/0x3de
[<c0310df2>] _spin_unlock+0x1f/0x47
[<c014e14d>] kunmap_high+0x7b/0x9f
BUG: using smp_processor_id() in preemptible [00000001] code: udev/461
caller is arch_add_exec_range+0x49/0x6a
[<c01d2c3f>] smp_processor_id+0x8f/0xa0
[<c0103170>] arch_add_exec_range+0x49/0x6a
[<c015299a>] __vma_link+0x54/0x8c
[<c0152a26>] vma_link+0x54/0xd8
[<c015473a>] do_brk+0x240/0x2dd
[<c0185be2>] set_brk+0x82/0xb6
[<c0187079>] load_elf_binary+0x91f/0xdc0
[<c0145493>] __alloc_pages+0x17a/0x3de
[<c0310df2>] _spin_unlock+0x1f/0x47
[<c014e14d>] kunmap_high+0x7b/0x9f
[<c018675a>] load_elf_binary+0x0/0xdc0
[<c016a283>] search_binary_handler+0xdd/0x2fe
[<c016a608>] do_execve+0x164/0x205
[<c0102cd6>] sys_execve+0x30/0x94
[<c0104193>] syscall_call+0x7/0xb
BUG: using smp_processor_id() in preemptible [00000001] code: udev/461
caller is load_elf_binary+0xb0b/0xdc0
[<c01d2c3f>] smp_processor_id+0x8f/0xa0
[<c0187265>] load_elf_binary+0xb0b/0xdc0
[<c0310df2>] _spin_unlock+0x1f/0x47
[<c014e14d>] kunmap_high+0x7b/0x9f
[<c018675a>] load_elf_binary+0x0/0xdc0
[<c016a283>] search_binary_handler+0xdd/0x2fe
[<c016a608>] do_execve+0x164/0x205
[<c0102cd6>] sys_execve+0x30/0x94
[<c0104193>] syscall_call+0x7/0xb
BUG: using smp_processor_id() in preemptible [00000001] code: udev/461
caller is arch_add_exec_range+0x49/0x6a
[<c01d2c3f>] smp_processor_id+0x8f/0xa0
[<c0103170>] arch_add_exec_range+0x49/0x6a
[<c0153065>] vma_merge+0x13d/0x1bc
[<c01546bd>] do_brk+0x1c3/0x2dd
[<c01528b2>] sys_brk+0xe6/0xea
[<c0104193>] syscall_call+0x7/0xb
[<c018675a>] load_elf_binary+0x0/0xdc0
[<c016a283>] search_binary_handler+0xdd/0x2fe
[<c016a608>] do_execve+0x164/0x205
[<c0102cd6>] sys_execve+0x30/0x94
[<c0104193>] syscall_call+0x7/0xb
[<c0131066>] __exec_usermodehelper+0x84/0xa0
[<c01310a6>] ____call_usermodehelper+0x24/0x2e
[<c0131082>] ____call_usermodehelper+0x0/0x2e
[<c01022f9>] kernel_thread_helper+0x5/0xb
BUG: using smp_processor_id() in preemptible [00000001] code: hotplug/462
caller is load_elf_binary+0xb0b/0xdc0
[<c01d2c3f>] smp_processor_id+0x8f/0xa0
[<c0187265>] load_elf_binary+0xb0b/0xdc0
[<c0310df2>] _spin_unlock+0x1f/0x47
[<c014e14d>] kunmap_high+0x7b/0x9f
[<c018675a>] load_elf_binary+0x0/0xdc0
[<c016a283>] search_binary_handler+0xdd/0x2fe
[<c016a608>] do_execve+0x164/0x205
[<c0102cd6>] sys_execve+0x30/0x94
[<c0104193>] syscall_call+0x7/0xb
[<c01310a6>] ____call_usermodehelper+0x24/0x2e
[<c0131082>] ____call_usermodehelper+0x0/0x2e
[<c01022f9>] kernel_thread_helper+0x5/0xb
BUG: using smp_processor_id() in preemptible [00000001] code: udev/462
BUG: using smp_processor_id() in preemptible [00000001] code: init/1
caller is arch_add_exec_range+0x49/0x6a
[<c01d2c3f>] smp_processor_id+0x8f/0xa0
[<c0103170>] arch_add_exec_range+0x49/0x6a
[<c0186bb8>] load_elf_binary+0x45e/0xdc0
[<c0141bef>] generic_file_read+0x9c/0xba
[<c018ecda>] dnotify_parent+0x1f/0x75
[<c0310df2>] _spin_unlock+0x1f/0x47
[<c015fc62>] vfs_read+0xc2/0x108
[<c018675a>] load_elf_binary+0x0/0xdc0
[<c016a283>] search_binary_handler+0xdd/0x2fe
[<c01695ac>] kernel_read+0x37/0x41
[<c0185b3b>] load_script+0x20b/0x230
[<c0310e81>] _spin_unlock_irqrestore+0x21/0x49
[<c014e697>] page_address+0x71/0x84
[<c0310df2>] _spin_unlock+0x1f/0x47
[<c014e019>] kmap_high+0x130/0x1e9
[<c0145493>] __alloc_pages+0x17a/0x3de
[<c0310df2>] _spin_unlock+0x1f/0x47
[<c014e14d>] kunmap_high+0x7b/0x9f
[<c0185930>] load_script+0x0/0x230
[<c016a283>] search_binary_handler+0xdd/0x2fe
[<c016a608>] do_execve+0x164/0x205
[<c0102cd6>] sys_execve+0x30/0x94
[<c0104193>] syscall_call+0x7/0xb
[<c017007b>] page_symlink+0x3e/0x110
[<c01002e8>] run_init_process+0x19/0x29
[<c0100458>] init+0x160/0x17c
[<c01002f8>] init+0x0/0x17c
[<c01022f9>] kernel_thread_helper+0x5/0xb
BUG: using smp_processor_id() in preemptible [00000001] code: init/1
caller is load_elf_binary+0xb0b/0xdc0
[<c01d2c3f>] smp_processor_id+0x8f/0xa0
[<c0187265>] load_elf_binary+0xb0b/0xdc0
[<c018ecda>] dnotify_parent+0x1f/0x75
[<c0310df2>] _spin_unlock+0x1f/0x47
[<c015fc62>] vfs_read+0xc2/0x108
[<c018675a>] load_elf_binary+0x0/0xdc0
[<c016a283>] search_binary_handler+0xdd/0x2fe
[<c01695ac>] kernel_read+0x37/0x41
[<c0185b3b>] load_script+0x20b/0x230
[<c0310e81>] _spin_unlock_irqrestore+0x21/0x49
[<c014e697>] page_address+0x71/0x84
[<c0310df2>] _spin_unlock+0x1f/0x47
[<c014e019>] kmap_high+0x130/0x1e9
[<c0145493>] __alloc_pages+0x17a/0x3de
[<c0310df2>] _spin_unlock+0x1f/0x47
[<c014e14d>] kunmap_high+0x7b/0x9f
[<c0185930>] load_script+0x0/0x230
[<c016a283>] search_binary_handler+0xdd/0x2fe
[<c016a608>] do_execve+0x164/0x205
[<c0102cd6>] sys_execve+0x30/0x94
[<c0104193>] syscall_call+0x7/0xb
[<c01002f8>] init+0x0/0x17c
[<c01022f9>] kernel_thread_helper+0x5/0xb
caller is arch_add_exec_range+0x49/0x6a
[<c01d2c3f>] smp_processor_id+0x8f/0xa0
[<c0103170>] arch_add_exec_range+0x49/0x6a
[<c015299a>] __vma_link+0x54/0x8c
[<c0152a26>] vma_link+0x54/0xd8
[<c015473a>] do_brk+0x240/0x2dd
[<c0185be2>] set_brk+0x82/0xb6
[<c0187079>] load_elf_binary+0x91f/0xdc0
[<c0145493>] __alloc_pages+0x17a/0x3de
[<c0310df2>] _spin_unlock+0x1f/0x47
[<c014e14d>] kunmap_high+0x7b/0x9f
[<c018675a>] load_elf_binary+0x0/0xdc0
[<c016a283>] search_binary_handler+0xdd/0x2fe
[<c016a608>] do_execve+0x164/0x205
[<c0102cd6>] sys_execve+0x30/0x94
[<c0104193>] syscall_call+0x7/0xb
SCSI subsystem initialized
libata version 1.10 loaded.
ahci version 1.00
ACPI: PCI interrupt 0000:00:1f.2[C] -> GSI 20 (level, low) -> IRQ 217
PCI: Setting latency timer of device 0000:00:1f.2 to 64
ahci(0000:00:1f.2) AHCI 0001.0000 32 slots 4 ports 1.5 Gbps 0xf impl
SATA mode
ahci(0000:00:1f.2) flags: 64bit ncq pm led slum part
ata1: SATA max UDMA/133 cmd 0xF881AD00 ctl 0x0 bmdma 0x0 irq 217
ata2: SATA max UDMA/133 cmd 0xF881AD80 ctl 0x0 bmdma 0x0 irq 217
ata3: SATA max UDMA/133 cmd 0xF881AE00 ctl 0x0 bmdma 0x0 irq 217
ata4: SATA max UDMA/133 cmd 0xF881AE80 ctl 0x0 bmdma 0x0 irq 217
ata1: dev 0 cfg 49:2f00 82:3469 83:7f61 84:4003 85:3469 86:3e41 87:4003
88:207f
ata1: dev 0 ATA, max UDMA/133, 312500000 sectors: lba48
ata1: dev 0 configured for UDMA/133
scsi0 : ahci
ata2: no device found (phy stat 00000000)
scsi1 : ahci
ata3: no device found (phy stat 00000000)
scsi2 : ahci
printk: 98 messages suppressed.
BUG: using smp_processor_id() in preemptible [00000001] code: hotplug/487
caller is arch_add_exec_range+0x49/0x6a
[<c01d2c3f>] smp_processor_id+0x8f/0xa0
[<c0103170>] arch_add_exec_range+0x49/0x6a
[<c0186bb8>] load_elf_binary+0x45e/0xdc0
[<c0141bef>] generic_file_read+0x9c/0xba
[<c0310e81>] _spin_unlock_irqrestore+0x21/0x49
[<c0145493>] __alloc_pages+0x17a/0x3de
[<c0310df2>] _spin_unlock+0x1f/0x47
[<c014e14d>] kunmap_high+0x7b/0x9f
[<c018675a>] load_elf_binary+0x0/0xdc0
[<c016a283>] search_binary_handler+0xdd/0x2fe
[<c016a608>] do_execve+0x164/0x205
[<c0102cd6>] sys_execve+0x30/0x94
[<c0104193>] syscall_call+0x7/0xb
[<c0131066>] __exec_usermodehelper+0x84/0xa0
[<c01310a6>] ____call_usermodehelper+0x24/0x2e
[<c0131082>] ____call_usermodehelper+0x0/0x2e
[<c01022f9>] kernel_thread_helper+0x5/0xb
ata4: no device found (phy stat 00000000)
scsi3 : ahci
Vendor: ATA Model: WDC WD1600JD-75H Rev: 08.0
Type: Direct-Access ANSI SCSI revision: 05
SCSI device sda: 312500000 512-byte hdwr sectors (160000 MB)
SCSI device sda: drive cache: write back
SCSI device sda: 312500000 512-byte hdwr sectors (160000 MB)
SCSI device sda: drive cache: write back
sda: sda1 sda2 sda3 sda4 < sda5 sda6 >
Attached scsi disk sda at scsi0, channel 0, id 0, lun 0
device-mapper: 4.4.0-ioctl (2005-01-12) initialised: dm-...@re...
printk: 158 messages suppressed.
BUG: using smp_processor_id() in preemptible [00000001] code: lvm/514
caller is arch_remove_exec_range+0x68/0x89
[<c01d2c3f>] smp_processor_id+0x8f/0xa0
[<c01031f9>] arch_remove_exec_range+0x68/0x89
[<c0154349>] split_vma+0xeb/0xf4
[<c015447e>] do_munmap+0x12c/0x143
[<c0160b2c>] __fput+0xed/0x166
[<c01544e1>] sys_munmap+0x4c/0x65
[<c0104193>] syscall_call+0x7/0xb
kjournald starting. Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
printk: 884 messages suppressed.
BUG: using smp_processor_id() in preemptible [00000001] code:
10-udev.hotplug/1087
caller is load_elf_binary+0xb0b/0xdc0
[<c01d2c3f>] smp_processor_id+0x8f/0xa0
[<c0187265>] load_elf_binary+0xb0b/0xdc0
[<c0310df2>] _spin_unlock+0x1f/0x47
[<c014e14d>] kunmap_high+0x7b/0x9f
[<c018675a>] load_elf_binary+0x0/0xdc0
[<c016a283>] search_binary_handler+0xdd/0x2fe
[<c016a608>] do_execve+0x164/0x205
[<c0102cd6>] sys_execve+0x30/0x94
[<c0104193>] syscall_call+0x7/0xb
printk: 51 messages suppressed.
BUG: using smp_processor_id() in preemptible [00000001] code:
10-udev.hotplug/1115
caller is load_elf_binary+0xb0b/0xdc0
[<c01d2c3f>] smp_processor_id+0x8f/0xa0
[<c0187265>] load_elf_binary+0xb0b/0xdc0
[<c0310df2>] _spin_unlock+0x1f/0x47
[<c014e14d>] kunmap_high+0x7b/0x9f
[<c018675a>] load_elf_binary+0x0/0xdc0
[<c016a283>] search_binary_handler+0xdd/0x2fe
[<c016a608>] do_execve+0x164/0x205
[<c0102cd6>] sys_execve+0x30/0x94
[<c0104193>] syscall_call+0x7/0xb
printk: 2 messages suppressed.
BUG: using smp_processor_id() in preemptible [00000001] code: udev/1120
caller is load_elf_binary+0xb0b/0xdc0
[<c01d2c3f>] smp_processor_id+0x8f/0xa0
[<c0187265>] load_elf_binary+0xb0b/0xdc0
[<c0310df2>] _spin_unlock+0x1f/0x47
[<c014e14d>] kunmap_high+0x7b/0x9f
[<c018675a>] load_elf_binary+0x0/0xdc0
[<c016a283>] search_binary_handler+0xdd/0x2fe
[<c016a608>] do_execve+0x164/0x205
[<c0102cd6>] sys_execve+0x30/0x94
[<c0104193>] syscall_call+0x7/0xb
printk: 6 messages suppressed.
BUG: using smp_processor_id() in preemptible [00000001] code: udev/1119
caller is arch_remove_exec_range+0x68/0x89
[<c01d2c3f>] smp_processor_id+0x8f/0xa0
[<c01031f9>] arch_remove_exec_range+0x68/0x89
[<c0154349>] split_vma+0xeb/0xf4
[<c0154f41>] mprotect_fixup+0xd7/0x1ff
[<c0155200>] sys_mprotect+0x197/0x259
[<c0104193>] syscall_call+0x7/0xb
printk: 7 messages suppressed.
BUG: using smp_processor_id() in preemptible [00000001] code:
default.hotplug/1122
caller is arch_add_exec_range+0x49/0x6a
[<c01d2c3f>] smp_processor_id+0x8f/0xa0
[<c0103170>] arch_add_exec_range+0x49/0x6a
[<c015299a>] __vma_link+0x54/0x8c
[<c0152a26>] vma_link+0x54/0xd8
[<c015473a>] do_brk+0x240/0x2dd
[<c0185be2>] set_brk+0x82/0xb6
[<c0187079>] load_elf_binary+0x91f/0xdc0
[<c018ecda>] dnotify_parent+0x1f/0x75
[<c0310df2>] _spin_unlock+0x1f/0x47
[<c015fc62>] vfs_read+0xc2/0x108
[<c018675a>] load_elf_binary+0x0/0xdc0
[<c016a283>] search_binary_handler+0xdd/0x2fe
[<c01695ac>] kernel_read+0x37/0x41
[<c0185b3b>] load_script+0x20b/0x230
[<c0310e81>] _spin_unlock_irqrestore+0x21/0x49
[<c014e697>] page_address+0x71/0x84
[<c0310df2>] _spin_unlock+0x1f/0x47
[<c014e019>] kmap_high+0x130/0x1e9
[<c0145493>] __alloc_pages+0x17a/0x3de
[<c0310df2>] _spin_unlock+0x1f/0x47
[<c014e14d>] kunmap_high+0x7b/0x9f
[<c0185930>] load_script+0x0/0x230
[<c016a283>] search_binary_handler+0xdd/0x2fe
[<c016a608>] do_execve+0x164/0x205
[<c0102cd6>] sys_execve+0x30/0x94
[<c0104193>] syscall_call+0x7/0xb
Floppy drive(s): fd0 is 1.44M
FDC 0 is a post-1991 82077
tg3.c:v3.23 (February 15, 2005)
ACPI: PCI interrupt 0000:02:00.0[A] -> GSI 16 (level, low) -> IRQ 169
PCI: Setting latency timer of device 0000:02:00.0 to 64
eth0: Tigon3 [partno(BCM95751) rev 4001 PHY(5750)] (PCIX:100MHz:32-bit)
10/100/1000BaseT Ethernet 00:11:11:80:e6:d4
eth0: RXcsums[1] LinkChgREG[1] MIirq[1] ASF[0] Split[0] WireSpeed[1]
TSOcap[1]
ACPI: PCI interrupt 0000:04:00.0[A] -> GSI 16 (level, low) -> IRQ 169
printk: 1309 messages suppressed.
BUG: using smp_processor_id() in preemptible [00000001] code: uname/1912
caller is load_elf_binary+0xb0b/0xdc0
[<c01d2c3f>] smp_processor_id+0x8f/0xa0
[<c0187265>] load_elf_binary+0xb0b/0xdc0
[<c0310df2>] _spin_unlock+0x1f/0x47
[<c014e14d>] kunmap_high+0x7b/0x9f
[<c018675a>] load_elf_binary+0x0/0xdc0
[<c016a283>] search_binary_handler+0xdd/0x2fe
[<c016a608>] do_execve+0x164/0x205
[<c0102cd6>] sys_execve+0x30/0x94
[<c0104193>] syscall_call+0x7/0xb
hw_random: RNG not detected
ACPI: PCI interrupt 0000:00:1d.7[A] -> GSI 21 (level, low) -> IRQ 225
ehci_hcd 0000:00:1d.7: EHCI Host Controller
PCI: Setting latency timer of device 0000:00:1d.7 to 64
ehci_hcd 0000:00:1d.7: irq 225, pci mem 0xffa80800
ehci_hcd 0000:00:1d.7: new USB bus registered, assigned bus number 1
PCI: cache line size of 128 is not supported by device 0000:00:1d.7
ehci_hcd 0000:00:1d.7: USB 2.0 initialized, EHCI 1.00, driver 10 Dec 2004
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 8 ports detected
USB Universal Host Controller Interface driver v2.2
ACPI: PCI interrupt 0000:00:1d.0[A] -> GSI 21 (level, low) -> IRQ 225
uhci_hcd 0000:00:1d.0: UHCI Host Controller
usb 1-3: new high speed USB device using ehci_hcd and address 2
PCI: Setting latency timer of device 0000:00:1d.0 to 64
uhci_hcd 0000:00:1d.0: irq 225, io base 0xff80
uhci_hcd 0000:00:1d.0: new USB bus registered, assigned bus number 2
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 2 ports detected
ACPI: PCI interrupt 0000:00:1d.1[B] -> GSI 22 (level, low) -> IRQ 233
uhci_hcd 0000:00:1d.1: UHCI Host Controller
hub 1-3:1.0: USB hub found
hub 1-3:1.0: 4 ports detected
PCI: Setting latency timer of device 0000:00:1d.1 to 64
uhci_hcd 0000:00:1d.1: irq 233, io base 0xff60
usb 1-3.1: new high speed USB device using ehci_hcd and address 3
uhci_hcd 0000:00:1d.1: new USB bus registered, assigned bus number 3
hub 3-0:1.0: USB hub found
hub 3-0:1.0: 2 ports detected
ACPI: PCI interrupt 0000:00:1d.2[C] -> GSI 18 (level, low) -> IRQ 50
uhci_hcd 0000:00:1d.2: UHCI Host Controller
PCI: Setting latency timer of device 0000:00:1d.2 to 64
uhci_hcd 0000:00:1d.2: irq 50, io base 0xff40
uhci_hcd 0000:00:1d.2: new USB bus registered, assigned bus number 4
hub 4-0:1.0: USB hub found
hub 4-0:1.0: 2 ports detected
usb 1-3.2: new full speed USB device using ehci_hcd and address 4
ACPI: PCI interrupt 0000:00:1d.3[D] -> GSI 23 (level, low) -> IRQ 58
uhci_hcd 0000:00:1d.3: UHCI Host Controller
Initializing USB Mass Storage driver...
PCI: Setting latency timer of device 0000:00:1d.3 to 64
uhci_hcd 0000:00:1d.3: irq 58, io base 0xff20
uhci_hcd 0000:00:1d.3: new USB bus registered, assigned bus number 5
printk: 901 messages suppressed.
BUG: using smp_processor_id() in preemptible [00000001] code: grep/2375
caller is load_elf_binary+0xb0b/0xdc0
[<c01d2c3f>] smp_processor_id+0x8f/0xa0
[<c0187265>] load_elf_binary+0xb0b/0xdc0
[<c0310df2>] _spin_unlock+0x1f/0x47
[<c014e14d>] kunmap_high+0x7b/0x9f
[<c018675a>] load_elf_binary+0x0/0xdc0
[<c016a283>] search_binary_handler+0xdd/0x2fe
[<c016a608>] do_execve+0x164/0x205
[<c0102cd6>] sys_execve+0x30/0x94
[<c0104193>] syscall_call+0x7/0xb
usb 1-3.3: new full speed USB device using ehci_hcd and address 5
usb 1-3.4: new high speed USB device using ehci_hcd and address 6
hub 1-3.4:1.0: USB hub found
hub 1-3.4:1.0: 4 ports detected
usb 1-3.1: 05-wait_for_sys timed out on ep0in
usb 1-3.1: string descriptor 0 read error: -71
usb 1-3.1: string descriptor 0 read error: -71
usb 1-3.1: string descriptor 0 read error: -71
usb 1-3.1: string descriptor 0 read error: -71
usb 1-3.1: string descriptor 0 read error: -71
usb 1-3.1: string descriptor 0 read error: -71
scsi4 : SCSI emulation for USB Mass Storage devices
usbcore: registered new driver usb-storage
USB Mass Storage support registered.
hub 5-0:1.0: USB hub found
hub 5-0:1.0: 2 ports detected
usb 1-3.4.3: new high speed USB device using ehci_hcd and address 7
usb-storage: device found at 3
usb-storage: waiting for device to settle before scanning
scsi5 : SCSI emulation for USB Mass Storage devices
usb-storage: device found at 7
usb-storage: waiting for device to settle before scanning
drivers/usb/class/usblp.c: usblp0: USB Bidirectional printer dev 5 if 0
alt 0 proto 2 vid 0x04A9 pid 0x1052
usbcore: registered new driver usblp
drivers/usb/class/usblp.c: v0.13: USB Printer Device Class driver
printk: 737 messages suppressed.
BUG: using smp_processor_id() in preemptible [00000001] code: uname/2828
caller is load_elf_binary+0xb0b/0xdc0
[<c01d2c3f>] smp_processor_id+0x8f/0xa0
[<c0187265>] load_elf_binary+0xb0b/0xdc0
[<c0310df2>] _spin_unlock+0x1f/0x47
[<c014e14d>] kunmap_high+0x7b/0x9f
[<c018675a>] load_elf_binary+0x0/0xdc0
[<c016a283>] search_binary_handler+0xdd/0x2fe
[<c016a608>] do_execve+0x164/0x205
[<c0102cd6>] sys_execve+0x30/0x94
[<c0104193>] syscall_call+0x7/0xb
ieee1394: Initialized config rom entry `ip1394'
ohci1394: $Rev: 1223 $ Ben Collins <bco...@de...>
ACPI: PCI interrupt 0000:04:00.2[B] -> GSI 17 (level, low) -> IRQ 201
ohci1394: fw-host0: OHCI-1394 1.1 (PCI): IRQ=[201]
MMIO=[dcdfb800-dcdfbfff] Max Packet=[2048]
md: Autodetecting RAID arrays.
md: autorun ...
md: ... autorun DONE.
Vendor: HDS72258 Model: 0VLAT20 Rev: V32O
Type: Direct-Access ANSI SCSI revision: 00
SCSI device sdb: 160836480 512-byte hdwr sectors (82348 MB)
sdb: assuming drive cache: write through
SCSI device sdb: 160836480 512-byte hdwr sectors (82348 MB)
sdb: assuming drive cache: write through
sdb: sdb1
Attached scsi disk sdb at scsi4, channel 0, id 0, lun 0
usb-storage: device scan complete
ACPI: Power Button (FF) [PWRF]
ibm_acpi: ec object not found
ieee1394: Host added: ID:BUS[0-00:1023] GUID[00023c0191021b5e]
Vendor: LEXAR Model: JUMPDRIVE ELITE Rev: 1000
Type: Direct-Access ANSI SCSI revision: 00
SCSI device sdc: 1010784 512-byte hdwr sectors (518 MB)
sdc: Write Protect is off
sdc: Mode Sense: 43 00 00 00
sdc: assuming drive cache: write through
SCSI device sdc: 1010784 512-byte hdwr sectors (518 MB)
sdc: Write Protect is off
sdc: Mode Sense: 43 00 00 00
sdc: assuming drive cache: write through
sdc: sdc1
Attached scsi removable disk sdc at scsi5, channel 0, id 0, lun 0
usb-storage: device scan complete
printk: 1176 messages suppressed.
BUG: using smp_processor_id() in preemptible [00000001] code: fsck.ext3/3396
caller is arch_add_exec_range+0x49/0x6a
[<c01d2c3f>] smp_processor_id+0x8f/0xa0
[<c0103170>] arch_add_exec_range+0x49/0x6a
[<c015299a>] __vma_link+0x54/0x8c
[<c0152a26>] vma_link+0x54/0xd8
[<c015473a>] do_brk+0x240/0x2dd
[<c0185be2>] set_brk+0x82/0xb6
[<c0187079>] load_elf_binary+0x91f/0xdc0
[<c0145493>] __alloc_pages+0x17a/0x3de
[<c0310df2>] _spin_unlock+0x1f/0x47
[<c014e14d>] kunmap_high+0x7b/0x9f
[<c018675a>] load_elf_binary+0x0/0xdc0
[<c016a283>] search_binary_handler+0xdd/0x2fe
[<c016a608>] do_execve+0x164/0x205
[<c0102cd6>] sys_execve+0x30/0x94
[<c0104193>] syscall_call+0x7/0xb
EXT3 FS on dm-0, internal journal
kjournald starting. Commit interval 5 seconds
EXT3 FS on sda5, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
NTFS driver 2.1.22 [Flags: R/O DEBUG MODULE].
NTFS volume version 3.1.
Adding 2031608k swap on /dev/VolGroup00/LogVol01. Priority:-1 extents:1
printk: 193 messages suppressed.
BUG: using smp_processor_id() in preemptible [00000001] code:
10-hal.dev/3524
caller is load_elf_binary+0xb0b/0xdc0
[<c01d2c3f>] smp_processor_id+0x8f/0xa0
[<c0187265>] load_elf_binary+0xb0b/0xdc0
[<c0310df2>] _spin_unlock+0x1f/0x47
[<c014e14d>] kunmap_high+0x7b/0x9f
[<c018675a>] load_elf_binary+0x0/0xdc0
[<c016a283>] search_binary_handler+0xdd/0x2fe
[<c016a608>] do_execve+0x164/0x205
[<c0102cd6>] sys_execve+0x30/0x94
[<c0104193>] syscall_call+0x7/0xb
printk: 55 messages suppressed.
BUG: using smp_processor_id() in preemptible [00000001] code: ls/3546
caller is load_elf_binary+0xb0b/0xdc0
[<c01d2c3f>] smp_processor_id+0x8f/0xa0
[<c0187265>] load_elf_binary+0xb0b/0xdc0
[<c0310df2>] _spin_unlock+0x1f/0x47
[<c014e14d>] kunmap_high+0x7b/0x9f
[<c018675a>] load_elf_binary+0x0/0xdc0
[<c016a283>] search_binary_handler+0xdd/0x2fe
[<c016a608>] do_execve+0x164/0x205
[<c0102cd6>] sys_execve+0x30/0x94
[<c0104193>] syscall_call+0x7/0xb
BUG: using smp_processor_id() in preemptible [00000001] code: cat/3547
caller is load_elf_binary+0xb0b/0xdc0
[<c01d2c3f>] smp_processor_id+0x8f/0xa0
[<c0187265>] load_elf_binary+0xb0b/0xdc0
[<c0310df2>] _spin_unlock+0x1f/0x47
[<c014e14d>] kunmap_high+0x7b/0x9f
[<c018675a>] load_elf_binary+0x0/0xdc0
[<c016a283>] search_binary_handler+0xdd/0x2fe
[<c016a608>] do_execve+0x164/0x205
[<c0102cd6>] sys_execve+0x30/0x94
[<c0104193>] syscall_call+0x7/0xb
BUG: using smp_processor_id() in preemptible [00000001] code: dmesg/3548
caller is load_elf_binary+0xb0b/0xdc0
[<c01d2c3f>] smp_processor_id+0x8f/0xa0
[<c0187265>] load_elf_binary+0xb0b/0xdc0
[<c0310df2>] _spin_unlock+0x1f/0x47
[<c014e14d>] kunmap_high+0x7b/0x9f
[<c018675a>] load_elf_binary+0x0/0xdc0
[<c016a283>] search_binary_handler+0xdd/0x2fe
[<c016a608>] do_execve+0x164/0x205
[<c0102cd6>] sys_execve+0x30/0x94
[<c0104193>] syscall_call+0x7/0xb
cat /proc/modules
nls_utf8 6400 1 - Live 0xf8ac8000
ntfs 125204 1 - Live 0xf8aa8000
video 19844 0 - Live 0xf8acb000
button 10896 0 - Live 0xf8a96000
battery 13572 0 - Live 0xf8a91000
ac 9092 0 - Live 0xf8a8d000
ohci1394 38552 0 - Live 0xf8a82000
ieee1394 308920 1 ohci1394, Live 0xf8b86000
usblp 17280 0 - Live 0xf8954000
usb_storage 70216 0 - Live 0xf8b73000
uhci_hcd 35736 0 - Live 0xf89d9000
ehci_hcd 37772 0 - Live 0xf8995000
ata_piix 13572 0 - Live 0xf891b000
i2c_i801 12812 0 - Live 0xf88ff000
i2c_core 27136 1 i2c_i801, Live 0xf894a000
snd_emu10k1 97156 0 - Live 0xf8931000
snd_rawmidi 29344 1 snd_emu10k1, Live 0xf895a000
snd_seq_device 12940 2 snd_emu10k1,snd_rawmidi, Live 0xf88fa000
snd_ac97_codec 74232 1 snd_emu10k1, Live 0xf89a4000
snd_pcm_oss 56112 0 - Live 0xf89fd000
snd_mixer_oss 23424 1 snd_pcm_oss, Live 0xf88f3000
snd_pcm 94340 3 snd_emu10k1,snd_ac97_codec,snd_pcm_oss, Live 0xf89e4000
snd_timer 29828 2 snd_emu10k1,snd_pcm, Live 0xf88ea000
snd_page_alloc 14212 2 snd_emu10k1,snd_pcm, Live 0xf88e5000
snd_util_mem 8960 1 snd_emu10k1, Live 0xf8889000
snd_hwdep 14240 1 snd_emu10k1, Live 0xf8904000
snd 60516 9
snd_emu10k1,snd_rawmidi,snd_seq_device,snd_ac97_codec,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_timer,snd_hwdep,
Live 0xf889c000
soundcore 14432 1 snd, Live 0xf8884000
tg3 88580 0 - Live 0xf88ce000
floppy 62768 0 - Live 0xf890a000
dm_snapshot 21544 0 - Live 0xf8895000
dm_zero 6400 0 - Live 0xf881f000
dm_mirror 26464 0 - Live 0xf888d000
ext3 133000 2 - Live 0xf88ac000
jbd 65688 1 ext3, Live 0xf882e000
dm_mod 61448 6 dm_snapshot,dm_zero,dm_mirror, Live 0xf8873000
ahci 14852 3 - Live 0xf8829000
libata 49284 2 ata_piix,ahci, Live 0xf8865000
sd_mod 22272 4 - Live 0xf8822000
scsi_mod 131144 4 usb_storage,ahci,libata,sd_mod, Live 0xf8843000
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.11
# Thu Mar 10 08:03:08 2005
#
CONFIG_X86=y
CONFIG_MMU=y
CONFIG_UID16=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_IOMAP=y
#
# Code maturity level options
#
CONFIG_EXPERIMENTAL=y
CONFIG_CLEAN_COMPILE=y
CONFIG_LOCK_KERNEL=y
#
# General setup
#
CONFIG_LOCALVERSION=""
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
CONFIG_BSD_PROCESS_ACCT=y
# CONFIG_BSD_PROCESS_ACCT_V3 is not set
CONFIG_SYSCTL=y
CONFIG_AUDIT=y
CONFIG_AUDITSYSCALL=y
CONFIG_LOG_BUF_SHIFT=17
CONFIG_HOTPLUG=y
CONFIG_KOBJECT_UEVENT=y
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
# CONFIG_EMBEDDED is not set
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_ALL is not set
CONFIG_KALLSYMS_EXTRA_PASS=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_SHMEM=y
CONFIG_CC_ALIGN_FUNCTIONS=0
CONFIG_CC_ALIGN_LABELS=0
CONFIG_CC_ALIGN_LOOPS=0
CONFIG_CC_ALIGN_JUMPS=0
# CONFIG_TINY_SHMEM is not set
#
# Loadable module support
#
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_FORCE_UNLOAD is not set
CONFIG_OBSOLETE_MODPARM=y
CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y
CONFIG_MODULE_SIG=y
# CONFIG_MODULE_SIG_FORCE is not set
CONFIG_KMOD=y
CONFIG_STOP_MACHINE=y
#
# Processor type and features
#
# CONFIG_X86_PC is not set
# CONFIG_X86_ELAN is not set
# CONFIG_X86_VOYAGER is not set
# CONFIG_X86_NUMAQ is not set
# CONFIG_X86_SUMMIT is not set
# CONFIG_X86_BIGSMP is not set
# CONFIG_X86_VISWS is not set
CONFIG_X86_GENERICARCH=y
# CONFIG_X86_ES7000 is not set
CONFIG_X86_CYCLONE_TIMER=y
# CONFIG_M386 is not set
# CONFIG_M486 is not set
# CONFIG_M586 is not set
# CONFIG_M586TSC is not set
# CONFIG_M586MMX is not set
# CONFIG_M686 is not set
# CONFIG_MPENTIUMII is not set
# CONFIG_MPENTIUMIII is not set
# CONFIG_MPENTIUMM is not set
CONFIG_MPENTIUM4=y
# CONFIG_MK6 is not set
# CONFIG_MK7 is not set
# CONFIG_MK8 is not set
# CONFIG_MCRUSOE is not set
# CONFIG_MEFFICEON is not set
# CONFIG_MWINCHIPC6 is not set
# CONFIG_MWINCHIP2 is not set
# CONFIG_MWINCHIP3D is not set
# CONFIG_MCYRIXIII is not set
# CONFIG_MVIAC3_2 is not set
CONFIG_X86_GENERIC=y
CONFIG_X86_CMPXCHG=y
CONFIG_X86_XADD=y
CONFIG_X86_L1_CACHE_SHIFT=7
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_X86_WP_WORKS_OK=y
CONFIG_X86_INVLPG=y
CONFIG_X86_BSWAP=y
CONFIG_X86_POPAD_OK=y
CONFIG_X86_GOOD_APIC=y
CONFIG_X86_INTEL_USERCOPY=y
CONFIG_X86_USE_PPRO_CHECKSUM=y
CONFIG_HPET_TIMER=y
CONFIG_HPET_EMULATE_RTC=y
CONFIG_SMP=y
CONFIG_NR_CPUS=32
CONFIG_SCHED_SMT=y
CONFIG_PREEMPT=y
CONFIG_PREEMPT_BKL=y
CONFIG_X86_LOCAL_APIC=y
CONFIG_X86_IO_APIC=y
CONFIG_X86_TSC=y
CONFIG_X86_MCE=y
# CONFIG_X86_MCE_NONFATAL is not set
CONFIG_X86_MCE_P4THERMAL=y
CONFIG_TOSHIBA=m
CONFIG_I8K=m
CONFIG_MICROCODE=m
CONFIG_X86_MSR=m
CONFIG_X86_CPUID=m
#
# Firmware Drivers
#
CONFIG_EDD=m
# CONFIG_NOHIGHMEM is not set
# CONFIG_HIGHMEM4G is not set
CONFIG_HIGHMEM64G=y
CONFIG_HIGHMEM=y
CONFIG_X86_PAE=y
# CONFIG_NUMA is not set
CONFIG_HIGHPTE=y
# CONFIG_MATH_EMULATION is not set
CONFIG_MTRR=y
# CONFIG_EFI is not set
# CONFIG_IRQBALANCE is not set
CONFIG_HAVE_DEC_LOCK=y
CONFIG_REGPARM=y
#
# Power management options (ACPI, APM)
#
CONFIG_PM=y
# CONFIG_PM_DEBUG is not set
# CONFIG_SOFTWARE_SUSPEND is not set
#
# ACPI (Advanced Configuration and Power Interface) Support
#
CONFIG_ACPI=y
CONFIG_ACPI_BOOT=y
CONFIG_ACPI_INTERPRETER=y
CONFIG_ACPI_SLEEP=y
CONFIG_ACPI_SLEEP_PROC_FS=y
CONFIG_ACPI_AC=m
CONFIG_ACPI_BATTERY=m
CONFIG_ACPI_BUTTON=m
CONFIG_ACPI_VIDEO=m
CONFIG_ACPI_FAN=y
CONFIG_ACPI_PROCESSOR=y
CONFIG_ACPI_THERMAL=y
CONFIG_ACPI_ASUS=m
CONFIG_ACPI_IBM=m
CONFIG_ACPI_TOSHIBA=m
CONFIG_ACPI_BLACKLIST_YEAR=2001
# CONFIG_ACPI_DEBUG is not set
CONFIG_ACPI_BUS=y
CONFIG_ACPI_EC=y
CONFIG_ACPI_POWER=y
CONFIG_ACPI_PCI=y
CONFIG_ACPI_SYSTEM=y
CONFIG_X86_PM_TIMER=y
# CONFIG_ACPI_CONTAINER is not set
#
# APM (Advanced Power Management) BIOS Support
#
CONFIG_APM=y
# CONFIG_APM_IGNORE_USER_SUSPEND is not set
# CONFIG_APM_DO_ENABLE is not set
CONFIG_APM_CPU_IDLE=y
# CONFIG_APM_DISPLAY_BLANK is not set
CONFIG_APM_RTC_IS_GMT=y
# CONFIG_APM_ALLOW_INTS is not set
# CONFIG_APM_REAL_MODE_POWER_OFF is not set
#
# CPU Frequency scaling
#
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_DEBUG=y
CONFIG_CPU_FREQ_STAT=m
CONFIG_CPU_FREQ_STAT_DETAILS=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
CONFIG_CPU_FREQ_GOV_POWERSAVE=m
CONFIG_CPU_FREQ_GOV_USERSPACE=y
CONFIG_CPU_FREQ_GOV_ONDEMAND=m
CONFIG_CPU_FREQ_TABLE=y
#
# CPUFreq processor drivers
#
CONFIG_X86_ACPI_CPUFREQ=m
CONFIG_X86_POWERNOW_K6=m
CONFIG_X86_POWERNOW_K7=y
CONFIG_X86_POWERNOW_K7_ACPI=y
CONFIG_X86_POWERNOW_K8=m
CONFIG_X86_POWERNOW_K8_ACPI=y
# CONFIG_X86_GX_SUSPMOD is not set
CONFIG_X86_SPEEDSTEP_CENTRINO=y
CONFIG_X86_SPEEDSTEP_CENTRINO_ACPI=y
CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE=y
CONFIG_X86_SPEEDSTEP_ICH=y
CONFIG_X86_SPEEDSTEP_SMI=m
CONFIG_X86_P4_CLOCKMOD=m
# CONFIG_X86_CPUFREQ_NFORCE2 is not set
CONFIG_X86_LONGRUN=y
CONFIG_X86_LONGHAUL=y
#
# shared options
#
# CONFIG_X86_ACPI_CPUFREQ_PROC_INTF is not set
CONFIG_X86_SPEEDSTEP_LIB=y
# CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK is not set
#
# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
#
CONFIG_PCI=y
# CONFIG_PCI_GOBIOS is not set
# CONFIG_PCI_GOMMCONFIG is not set
# CONFIG_PCI_GODIRECT is not set
CONFIG_PCI_GOANY=y
CONFIG_PCI_BIOS=y
CONFIG_PCI_DIRECT=y
CONFIG_PCI_MMCONFIG=y
CONFIG_PCIEPORTBUS=y
CONFIG_HOTPLUG_PCI_PCIE=m
# CONFIG_HOTPLUG_PCI_PCIE_POLL_EVENT_MODE is not set
CONFIG_PCI_MSI=y
CONFIG_PCI_LEGACY_PROC=y
# CONFIG_PCI_NAMES is not set
CONFIG_ISA=y
# CONFIG_EISA is not set
# CONFIG_MCA is not set
# CONFIG_SCx200 is not set
#
# PCCARD (PCMCIA/CardBus) support
#
CONFIG_PCCARD=m
# CONFIG_PCMCIA_DEBUG is not set
CONFIG_PCMCIA=m
CONFIG_CARDBUS=y
#
# PC-card bridges
#
CONFIG_YENTA=m
CONFIG_PD6729=m
CONFIG_I82092=m
CONFIG_I82365=m
CONFIG_TCIC=m
CONFIG_PCMCIA_PROBE=y
CONFIG_PCCARD_NONSTATIC=m
#
# PCI Hotplug Support
#
CONFIG_HOTPLUG_PCI=y
# CONFIG_HOTPLUG_PCI_FAKE is not set
CONFIG_HOTPLUG_PCI_COMPAQ=m
# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set
CONFIG_HOTPLUG_PCI_IBM=m
CONFIG_HOTPLUG_PCI_ACPI=m
CONFIG_HOTPLUG_PCI_ACPI_IBM=m
# CONFIG_HOTPLUG_PCI_CPCI is not set
CONFIG_HOTPLUG_PCI_SHPC=m
# CONFIG_HOTPLUG_PCI_SHPC_POLL_EVENT_MODE is not set
#
# Executable file formats
#
CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_AOUT is not set
CONFIG_BINFMT_MISC=y
#
# Device Drivers
#
#
# Generic Driver Options
#
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=y
# CONFIG_DEBUG_DRIVER is not set
#
# Memory Technology Devices (MTD)
#
CONFIG_MTD=m
# CONFIG_MTD_DEBUG is not set
CONFIG_MTD_PARTITIONS=y
CONFIG_MTD_CONCAT=m
CONFIG_MTD_REDBOOT_PARTS=m
CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
CONFIG_MTD_CMDLINE_PARTS=y
#
# User Modules And Translation Layers
#
CONFIG_MTD_CHAR=m
CONFIG_MTD_BLOCK=m
CONFIG_MTD_BLOCK_RO=m
CONFIG_FTL=m
CONFIG_NFTL=m
CONFIG_NFTL_RW=y
CONFIG_INFTL=m
#
# RAM/ROM/Flash chip drivers
#
CONFIG_MTD_CFI=m
CONFIG_MTD_JEDECPROBE=m
CONFIG_MTD_GEN_PROBE=m
# CONFIG_MTD_CFI_ADV_OPTIONS is not set
CONFIG_MTD_MAP_BANK_WIDTH_1=y
CONFIG_MTD_MAP_BANK_WIDTH_2=y
CONFIG_MTD_MAP_BANK_WIDTH_4=y
# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
CONFIG_MTD_CFI_I1=y
CONFIG_MTD_CFI_I2=y
# CONFIG_MTD_CFI_I4 is not set
# CONFIG_MTD_CFI_I8 is not set
CONFIG_MTD_CFI_INTELEXT=m
CONFIG_MTD_CFI_AMDSTD=m
CONFIG_MTD_CFI_AMDSTD_RETRY=3
CONFIG_MTD_CFI_STAA=m
CONFIG_MTD_CFI_UTIL=m
CONFIG_MTD_RAM=m
CONFIG_MTD_ROM=m
CONFIG_MTD_ABSENT=m
#
# Mapping drivers for chip access
#
CONFIG_MTD_COMPLEX_MAPPINGS=y
# CONFIG_MTD_PHYSMAP is not set
# CONFIG_MTD_PNC2000 is not set
CONFIG_MTD_SC520CDP=m
CONFIG_MTD_NETSC520=m
CONFIG_MTD_TS5500=m
CONFIG_MTD_SBC_GXX=m
CONFIG_MTD_ELAN_104NC=m
CONFIG_MTD_SCx200_DOCFLASH=m
# CONFIG_MTD_AMD76XROM is not set
# CONFIG_MTD_ICHXROM is not set
CONFIG_MTD_SCB2_FLASH=m
# CONFIG_MTD_NETtel is not set
# CONFIG_MTD_DILNETPC is not set
# CONFIG_MTD_L440GX is not set
CONFIG_MTD_PCI=m
#
# Self-contained MTD device drivers
#
CONFIG_MTD_PMC551=m
# CONFIG_MTD_PMC551_BUGFIX is not set
# CONFIG_MTD_PMC551_DEBUG is not set
# CONFIG_MTD_SLRAM is not set
# CONFIG_MTD_PHRAM is not set
CONFIG_MTD_MTDRAM=m
CONFIG_MTDRAM_TOTAL_SIZE=4096
CONFIG_MTDRAM_ERASE_SIZE=128
# CONFIG_MTD_BLKMTD is not set
CONFIG_MTD_BLOCK2MTD=m
#
# Disk-On-Chip Device Drivers
#
CONFIG_MTD_DOC2000=m
# CONFIG_MTD_DOC2001 is not set
CONFIG_MTD_DOC2001PLUS=m
CONFIG_MTD_DOCPROBE=m
CONFIG_MTD_DOCECC=m
# CONFIG_MTD_DOCPROBE_ADVANCED is not set
CONFIG_MTD_DOCPROBE_ADDRESS=0
#
# NAND Flash Device Drivers
#
CONFIG_MTD_NAND=m
# CONFIG_MTD_NAND_VERIFY_WRITE is not set
CONFIG_MTD_NAND_IDS=m
# CONFIG_MTD_NAND_DISKONCHIP is not set
# CONFIG_MTD_NAND_NANDSIM is not set
#
# Parallel port support
#
CONFIG_PARPORT=m
CONFIG_PARPORT_PC=m
CONFIG_PARPORT_PC_CML1=m
CONFIG_PARPORT_SERIAL=m
# CONFIG_PARPORT_PC_FIFO is not set
# CONFIG_PARPORT_PC_SUPERIO is not set
CONFIG_PARPORT_PC_PCMCIA=m
# CONFIG_PARPORT_OTHER is not set
CONFIG_PARPORT_1284=y
#
# Plug and Play support
#
CONFIG_PNP=y
# CONFIG_PNP_DEBUG is not set
#
# Protocols
#
CONFIG_ISAPNP=y
# CONFIG_PNPBIOS is not set
CONFIG_PNPACPI=y
#
# Block devices
#
CONFIG_BLK_DEV_FD=m
# CONFIG_BLK_DEV_XD is not set
CONFIG_PARIDE=m
CONFIG_PARIDE_PARPORT=m
#
# Parallel IDE high-level drivers
#
CONFIG_PARIDE_PD=m
CONFIG_PARIDE_PCD=m
CONFIG_PARIDE_PF=m
CONFIG_PARIDE_PT=m
CONFIG_PARIDE_PG=m
#
# Parallel IDE protocol modules
#
CONFIG_PARIDE_ATEN=m
CONFIG_PARIDE_BPCK=m
CONFIG_PARIDE_BPCK6=m
CONFIG_PARIDE_COMM=m
CONFIG_PARIDE_DSTR=m
CONFIG_PARIDE_FIT2=m
CONFIG_PARIDE_FIT3=m
CONFIG_PARIDE_EPAT=m
CONFIG_PARIDE_EPATC8=y
CONFIG_PARIDE_EPIA=m
CONFIG_PARIDE_FRIQ=m
CONFIG_PARIDE_FRPW=m
CONFIG_PARIDE_KBIC=m
CONFIG_PARIDE_KTTI=m
CONFIG_PARIDE_ON20=m
CONFIG_PARIDE_ON26=m
CONFIG_BLK_CPQ_DA=m
CONFIG_BLK_CPQ_CISS_DA=m
CONFIG_CISS_SCSI_TAPE=y
CONFIG_BLK_DEV_DAC960=m
CONFIG_BLK_DEV_UMEM=m
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=m
CONFIG_BLK_DEV_CRYPTOLOOP=m
CONFIG_BLK_DEV_NBD=m
CONFIG_BLK_DEV_SX8=m
# CONFIG_BLK_DEV_UB is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=16384
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_LBD=y
CONFIG_CDROM_PKTCDVD=m
CONFIG_CDROM_PKTCDVD_BUFFERS=8
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
CONFIG_DISKDUMP=m
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=m
CONFIG_IOSCHED_DEADLINE=m
CONFIG_IOSCHED_CFQ=y
CONFIG_ATA_OVER_ETH=m
#
# ATA/ATAPI/MFM/RLL support
#
CONFIG_IDE=y
CONFIG_BLK_DEV_IDE=y
#
# Please see Documentation/ide.txt for help/info on IDE drives
#
# CONFIG_BLK_DEV_IDE_SATA is not set
# CONFIG_BLK_DEV_HD_IDE is not set
CONFIG_BLK_DEV_IDEDISK=y
CONFIG_IDEDISK_MULTI_MODE=y
CONFIG_BLK_DEV_IDECS=m
CONFIG_BLK_DEV_IDECD=y
# CONFIG_BLK_DEV_IDETAPE is not set
CONFIG_BLK_DEV_IDEFLOPPY=y
CONFIG_BLK_DEV_IDESCSI=m
# CONFIG_IDE_TASK_IOCTL is not set
#
# IDE chipset support/bugfixes
#
CONFIG_IDE_GENERIC=y
CONFIG_BLK_DEV_CMD640=y
CONFIG_BLK_DEV_CMD640_ENHANCED=y
CONFIG_BLK_DEV_IDEPNP=y
CONFIG_BLK_DEV_IDEPCI=y
CONFIG_IDEPCI_SHARE_IRQ=y
# CONFIG_BLK_DEV_OFFBOARD is not set
CONFIG_BLK_DEV_GENERIC=y
# CONFIG_BLK_DEV_OPTI621 is not set
CONFIG_BLK_DEV_RZ1000=y
CONFIG_BLK_DEV_IDEDMA_PCI=y
# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
CONFIG_IDEDMA_PCI_AUTO=y
# CONFIG_IDEDMA_ONLYDISK is not set
CONFIG_BLK_DEV_AEC62XX=y
CONFIG_BLK_DEV_ALI15X3=y
# CONFIG_WDC_ALI15X3 is not set
CONFIG_BLK_DEV_AMD74XX=y
CONFIG_BLK_DEV_ATIIXP=y
CONFIG_BLK_DEV_CMD64X=y
CONFIG_BLK_DEV_TRIFLEX=y
CONFIG_BLK_DEV_CY82C693=y
CONFIG_BLK_DEV_CS5520=y
CONFIG_BLK_DEV_CS5530=y
CONFIG_BLK_DEV_HPT34X=y
# CONFIG_HPT34X_AUTODMA is not set
CONFIG_BLK_DEV_HPT366=y
# CONFIG_BLK_DEV_SC1200 is not set
CONFIG_BLK_DEV_PIIX=y
# CONFIG_BLK_DEV_NS87415 is not set
CONFIG_BLK_DEV_PDC202XX_OLD=y
# CONFIG_PDC202XX_BURST is not set
CONFIG_BLK_DEV_PDC202XX_NEW=y
CONFIG_PDC202XX_FORCE=y
CONFIG_BLK_DEV_SVWKS=y
CONFIG_BLK_DEV_SIIMAGE=y
CONFIG_BLK_DEV_SIS5513=y
CONFIG_BLK_DEV_SLC90E66=y
# CONFIG_BLK_DEV_TRM290 is not set
CONFIG_BLK_DEV_VIA82CXXX=y
# CONFIG_IDE_ARM is not set
# CONFIG_IDE_CHIPSETS is not set
CONFIG_BLK_DEV_IDEDMA=y
# CONFIG_IDEDMA_IVB is not set
CONFIG_IDEDMA_AUTO=y
# CONFIG_BLK_DEV_HD is not set
#
# SCSI device support
#
CONFIG_SCSI=m
CONFIG_SCSI_PROC_FS=y
#
# SCSI support type (disk, tape, CD-ROM)
#
CONFIG_BLK_DEV_SD=m
CONFIG_CHR_DEV_ST=m
CONFIG_CHR_DEV_OSST=m
CONFIG_BLK_DEV_SR=m
CONFIG_BLK_DEV_SR_VENDOR=y
CONFIG_CHR_DEV_SG=m
#
# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
#
CONFIG_SCSI_MULTI_LUN=y
CONFIG_SCSI_CONSTANTS=y
CONFIG_SCSI_LOGGING=y
#
# SCSI Transport Attributes
#
CONFIG_SCSI_SPI_ATTRS=m
CONFIG_SCSI_FC_ATTRS=m
CONFIG_SCSI_ISCSI_ATTRS=m
#
# SCSI low-level drivers
#
CONFIG_BLK_DEV_3W_XXXX_RAID=m
CONFIG_SCSI_3W_9XXX=m
# CONFIG_SCSI_7000FASST is not set
CONFIG_SCSI_ACARD=m
CONFIG_SCSI_AHA152X=m
CONFIG_SCSI_AHA1542=m
CONFIG_SCSI_AACRAID=m
CONFIG_SCSI_AIC7XXX=m
CONFIG_AIC7XXX_CMDS_PER_DEVICE=4
CONFIG_AIC7XXX_RESET_DELAY_MS=15000
# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
CONFIG_AIC7XXX_DEBUG_MASK=0
# CONFIG_AIC7XXX_REG_PRETTY_PRINT is not set
CONFIG_SCSI_AIC7XXX_OLD=m
CONFIG_SCSI_AIC79XX=m
CONFIG_AIC79XX_CMDS_PER_DEVICE=4
CONFIG_AIC79XX_RESET_DELAY_MS=15000
# CONFIG_AIC79XX_ENABLE_RD_STRM is not set
# CONFIG_AIC79XX_DEBUG_ENABLE is not set
CONFIG_AIC79XX_DEBUG_MASK=0
# CONFIG_AIC79XX_REG_PRETTY_PRINT is not set
# CONFIG_SCSI_DPT_I2O is not set
CONFIG_SCSI_IN2000=m
CONFIG_MEGARAID_NEWGEN=y
CONFIG_MEGARAID_MM=m
CONFIG_MEGARAID_MAILBOX=m
CONFIG_MEGARAID_LEGACY=m
CONFIG_SCSI_SATA=y
CONFIG_SCSI_SATA_AHCI=m
CONFIG_SCSI_SATA_SVW=m
CONFIG_SCSI_ATA_PIIX=m
CONFIG_SCSI_SATA_NV=m
CONFIG_SCSI_SATA_PROMISE=m
CONFIG_SCSI_SATA_QSTOR=m
CONFIG_SCSI_SATA_SX4=m
CONFIG_SCSI_SATA_SIL=m
CONFIG_SCSI_SATA_SIS=m
CONFIG_SCSI_SATA_ULI=m
CONFIG_SCSI_SATA_VIA=m
CONFIG_SCSI_SATA_VITESSE=m
CONFIG_SCSI_BUSLOGIC=m
# CONFIG_SCSI_OMIT_FLASHPOINT is not set
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_DTC3280 is not set
# CONFIG_SCSI_EATA is not set
# CONFIG_SCSI_EATA_PIO is not set
CONFIG_SCSI_FUTURE_DOMAIN=m
CONFIG_SCSI_GDTH=m
# CONFIG_SCSI_GENERIC_NCR5380 is not set
# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set
CONFIG_SCSI_IPS=m
CONFIG_SCSI_INITIO=m
CONFIG_SCSI_INIA100=m
CONFIG_SCSI_PPA=m
CONFIG_SCSI_IMM=m
# CONFIG_SCSI_IZIP_EPP16 is not set
# CONFIG_SCSI_IZIP_SLOW_CTR is not set
# CONFIG_SCSI_NCR53C406A is not set
CONFIG_SCSI_SYM53C8XX_2=m
CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
# CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set
# CONFIG_SCSI_IPR is not set
# CONFIG_SCSI_PAS16 is not set
# CONFIG_SCSI_PSI240I is not set
CONFIG_SCSI_QLOGIC_FAS=m
CONFIG_SCSI_QLOGIC_ISP=m
# CONFIG_SCSI_QLOGIC_FC is not set
CONFIG_SCSI_QLOGIC_1280=m
CONFIG_SCSI_QLOGIC_1280_1040=y
CONFIG_SCSI_QLA2XXX=m
CONFIG_SCSI_QLA21XX=m
CONFIG_SCSI_QLA22XX=m
CONFIG_SCSI_QLA2300=m
CONFIG_SCSI_QLA2322=m
CONFIG_SCSI_QLA6312=m
# CONFIG_SCSI_SYM53C416 is not set
# CONFIG_SCSI_DC395x is not set
CONFIG_SCSI_DC390T=m
# CONFIG_SCSI_T128 is not set
# CONFIG_SCSI_U14_34F is not set
# CONFIG_SCSI_ULTRASTOR is not set
# CONFIG_SCSI_NSP32 is not set
# CONFIG_SCSI_DEBUG is not set
#
# PCMCIA SCSI adapter support
#
CONFIG_PCMCIA_AHA152X=m
CONFIG_PCMCIA_FDOMAIN=m
CONFIG_PCMCIA_NINJA_SCSI=m
CONFIG_PCMCIA_QLOGIC=m
CONFIG_PCMCIA_SYM53C500=m
#
# Old CD-ROM drivers (not SCSI, not IDE)
#
# CONFIG_CD_NO_IDESCSI is not set
#
# Multi-device support (RAID and LVM)
#
CONFIG_MD=y
CONFIG_BLK_DEV_MD=y
CONFIG_MD_LINEAR=m
CONFIG_MD_RAID0=m
CONFIG_MD_RAID1=m
CONFIG_MD_RAID10=m
CONFIG_MD_RAID5=m
CONFIG_MD_RAID6=m
CONFIG_MD_MULTIPATH=m
CONFIG_MD_FAULTY=m
CONFIG_BLK_DEV_DM=m
CONFIG_DM_CRYPT=m
CONFIG_DM_SNAPSHOT=m
CONFIG_DM_MIRROR=m
CONFIG_DM_ZERO=m
#
# Fusion MPT device support
#
CONFIG_FUSION=m
CONFIG_FUSION_MAX_SGE=40
CONFIG_FUSION_CTL=m
CONFIG_FUSION_LAN=m
#
# IEEE 1394 (FireWire) support
#
CONFIG_IEEE1394=m
#
# Subsystem Options
#
# CONFIG_IEEE1394_VERBOSEDEBUG is not set
CONFIG_IEEE1394_OUI_DB=y
CONFIG_IEEE1394_EXTRA_CONFIG_ROMS=y
CONFIG_IEEE1394_CONFIG_ROM_IP1394=y
#
# Device Drivers
#
CONFIG_IEEE1394_PCILYNX=m
CONFIG_IEEE1394_OHCI1394=m
#
# Protocol Drivers
#
CONFIG_IEEE1394_VIDEO1394=m
CONFIG_IEEE1394_SBP2=m
# CONFIG_IEEE1394_SBP2_PHYS_DMA is not set
CONFIG_IEEE1394_ETH1394=m
CONFIG_IEEE1394_DV1394=m
CONFIG_IEEE1394_RAWIO=m
CONFIG_IEEE1394_CMP=m
CONFIG_IEEE1394_AMDTP=m
#
# I2O device support
#
CONFIG_I2O=m
CONFIG_I2O_CONFIG=m
CONFIG_I2O_BLOCK=m
CONFIG_I2O_SCSI=m
CONFIG_I2O_PROC=m
#
# Networking support
#
CONFIG_NET=y
#
# Networking options
#
CONFIG_PACKET=y
CONFIG_PACKET_MMAP=y
CONFIG_NETLINK_DEV=y
CONFIG_UNIX=y
CONFIG_NET_KEY=m
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_IP_MULTIPLE_TABLES=y
CONFIG_IP_ROUTE_FWMARK=y
CONFIG_IP_ROUTE_MULTIPATH=y
CONFIG_IP_ROUTE_VERBOSE=y
# CONFIG_IP_PNP is not set
CONFIG_NET_IPIP=m
CONFIG_NET_IPGRE=m
CONFIG_NET_IPGRE_BROADCAST=y
CONFIG_IP_MROUTE=y
CONFIG_IP_PIMSM_V1=y
CONFIG_IP_PIMSM_V2=y
# CONFIG_ARPD is not set
CONFIG_SYN_COOKIES=y
CONFIG_INET_AH=m
CONFIG_INET_ESP=m
CONFIG_INET_IPCOMP=m
CONFIG_INET_TUNNEL=m
CONFIG_IP_TCPDIAG=m
CONFIG_IP_TCPDIAG_IPV6=y
#
# IP: Virtual Server Configuration
#
CONFIG_IP_VS=m
# CONFIG_IP_VS_DEBUG is not set
CONFIG_IP_VS_TAB_BITS=12
#
# IPVS transport protocol load balancing support
#
CONFIG_IP_VS_PROTO_TCP=y
CONFIG_IP_VS_PROTO_UDP=y
CONFIG_IP_VS_PROTO_ESP=y
CONFIG_IP_VS_PROTO_AH=y
#
# IPVS scheduler
#
CONFIG_IP_VS_RR=m
CONFIG_IP_VS_WRR=m
CONFIG_IP_VS_LC=m
CONFIG_IP_VS_WLC=m
CONFIG_IP_VS_LBLC=m
CONFIG_IP_VS_LBLCR=m
CONFIG_IP_VS_DH=m
CONFIG_IP_VS_SH=m
CONFIG_IP_VS_SED=m
CONFIG_IP_VS_NQ=m
#
# IPVS application helper
#
CONFIG_IP_VS_FTP=m
CONFIG_IPV6=m
CONFIG_IPV6_PRIVACY=y
CONFIG_INET6_AH=m
CONFIG_INET6_ESP=m
CONFIG_INET6_IPCOMP=m
CONFIG_INET6_TUNNEL=m
CONFIG_IPV6_TUNNEL=m
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
CONFIG_BRIDGE_NETFILTER=y
#
# IP: Netfilter Configuration
#
CONFIG_IP_NF_CONNTRACK=m
CONFIG_IP_NF_CT_ACCT=y
CONFIG_IP_NF_CONNTRACK_MARK=y
CONFIG_IP_NF_CT_PROTO_SCTP=m
CONFIG_IP_NF_FTP=m
CONFIG_IP_NF_IRC=m
CONFIG_IP_NF_TFTP=m
CONFIG_IP_NF_AMANDA=m
CONFIG_IP_NF_QUEUE=m
CONFIG_IP_NF_IPTABLES=m
CONFIG_IP_NF_MATCH_LIMIT=m
CONFIG_IP_NF_MATCH_IPRANGE=m
CONFIG_IP_NF_MATCH_MAC=m
CONFIG_IP_NF_MATCH_PKTTYPE=m
CONFIG_IP_NF_MATCH_MARK=m
CONFIG_IP_NF_MATCH_MULTIPORT=m
CONFIG_IP_NF_MATCH_TOS=m
CONFIG_IP_NF_MATCH_RECENT=m
CONFIG_IP_NF_MATCH_ECN=m
CONFIG_IP_NF_MATCH_DSCP=m
CONFIG_IP_NF_MATCH_AH_ESP=m
CONFIG_IP_NF_MATCH_LENGTH=m
CONFIG_IP_NF_MATCH_TTL=m
CONFIG_IP_NF_MATCH_TCPMSS=m
CONFIG_IP_NF_MATCH_HELPER=m
CONFIG_IP_NF_MATCH_STATE=m
CONFIG_IP_NF_MATCH_CONNTRACK=m
CONFIG_IP_NF_MATCH_OWNER=m
CONFIG_IP_NF_MATCH_PHYSDEV=m
CONFIG_IP_NF_MATCH_ADDRTYPE=m
CONFIG_IP_NF_MATCH_REALM=m
CONFIG_IP_NF_MATCH_SCTP=m
CONFIG_IP_NF_MATCH_COMMENT=m
CONFIG_IP_NF_MATCH_CONNMARK=m
CONFIG_IP_NF_MATCH_HASHLIMIT=m
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_TARGET_LOG=m
CONFIG_IP_NF_TARGET_ULOG=m
CONFIG_IP_NF_TARGET_TCPMSS=m
CONFIG_IP_NF_NAT=m
CONFIG_IP_NF_NAT_NEEDED=y
CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_IP_NF_TARGET_REDIRECT=m
CONFIG_IP_NF_TARGET_NETMAP=m
CONFIG_IP_NF_TARGET_SAME=m
CONFIG_IP_NF_NAT_SNMP_BASIC=m
CONFIG_IP_NF_NAT_IRC=m
CONFIG_IP_NF_NAT_FTP=m
CONFIG_IP_NF_NAT_TFTP=m
CONFIG_IP_NF_NAT_AMANDA=m
CONFIG_IP_NF_MANGLE=m
CONFIG_IP_NF_TARGET_TOS=m
CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_DSCP=m
CONFIG_IP_NF_TARGET_MARK=m
CONFIG_IP_NF_TARGET_CLASSIFY=m
CONFIG_IP_NF_TARGET_CONNMARK=m
CONFIG_IP_NF_TARGET_CLUSTERIP=m
CONFIG_IP_NF_RAW=m
CONFIG_IP_NF_TARGET_NOTRACK=m
CONFIG_IP_NF_ARPTABLES=m
CONFIG_IP_NF_ARPFILTER=m
CONFIG_IP_NF_ARP_MANGLE=m
#
# IPv6: Netfilter Configuration
#
# CONFIG_IP6_NF_QUEUE is not set
CONFIG_IP6_NF_IPTABLES=m
CONFIG_IP6_NF_MATCH_LIMIT=m
CONFIG_IP6_NF_MATCH_MAC=m
CONFIG_IP6_NF_MATCH_RT=m
CONFIG_IP6_NF_MATCH_OPTS=m
CONFIG_IP6_NF_MATCH_FRAG=m
CONFIG_IP6_NF_MATCH_HL=m
CONFIG_IP6_NF_MATCH_MULTIPORT=m
CONFIG_IP6_NF_MATCH_OWNER=m
CONFIG_IP6_NF_MATCH_MARK=m
CONFIG_IP6_NF_MATCH_IPV6HEADER=m
CONFIG_IP6_NF_MATCH_AHESP=m
CONFIG_IP6_NF_MATCH_LENGTH=m
CONFIG_IP6_NF_MATCH_EUI64=m
CONFIG_IP6_NF_MATCH_PHYSDEV=m
CONFIG_IP6_NF_FILTER=m
CONFIG_IP6_NF_TARGET_LOG=m
CONFIG_IP6_NF_MANGLE=m
CONFIG_IP6_NF_TARGET_MARK=m
CONFIG_IP6_NF_RAW=m
#
# Bridge: Netfilter Configuration
#
CONFIG_BRIDGE_NF_EBTABLES=m
CONFIG_BRIDGE_EBT_BROUTE=m
CONFIG_BRIDGE_EBT_T_FILTER=m
CONFIG_BRIDGE_EBT_T_NAT=m
CONFIG_BRIDGE_EBT_802_3=m
CONFIG_BRIDGE_EBT_AMONG=m
CONFIG_BRIDGE_EBT_ARP=m
CONFIG_BRIDGE_EBT_IP=m
CONFIG_BRIDGE_EBT_LIMIT=m
CONFIG_BRIDGE_EBT_MARK=m
CONFIG_BRIDGE_EBT_PKTTYPE=m
CONFIG_BRIDGE_EBT_STP=m
CONFIG_BRIDGE_EBT_VLAN=m
CONFIG_BRIDGE_EBT_ARPREPLY=m
CONFIG_BRIDGE_EBT_DNAT=m
CONFIG_BRIDGE_EBT_MARK_T=m
CONFIG_BRIDGE_EBT_REDIRECT=m
CONFIG_BRIDGE_EBT_SNAT=m
CONFIG_BRIDGE_EBT_LOG=m
CONFIG_BRIDGE_EBT_ULOG=m
CONFIG_XFRM=y
CONFIG_XFRM_USER=y
#
# SCTP Configuration (EXPERIMENTAL)
#
CONFIG_IP_SCTP=m
# CONFIG_SCTP_DBG_MSG is not set
# CONFIG_SCTP_DBG_OBJCNT is not set
# CONFIG_SCTP_HMAC_NONE is not set
# CONFIG_SCTP_HMAC_SHA1 is not set
CONFIG_SCTP_HMAC_MD5=y
CONFIG_ATM=m
CONFIG_ATM_CLIP=m
# CONFIG_ATM_CLIP_NO_ICMP is not set
CONFIG_ATM_LANE=m
# CONFIG_ATM_MPOA is not set
CONFIG_ATM_BR2684=m
# CONFIG_ATM_BR2684_IPFILTER is not set
CONFIG_BRIDGE=m
CONFIG_VLAN_8021Q=m
# CONFIG_DECNET is not set
CONFIG_LLC=y
# CONFIG_LLC2 is not set
CONFIG_IPX=m
# CONFIG_IPX_INTERN is not set
CONFIG_ATALK=m
CONFIG_DEV_APPLETALK=y
CONFIG_LTPC=m
CONFIG_COPS=m
CONFIG_COPS_DAYNA=y
CONFIG_COPS_TANGENT=y
CONFIG_IPDDP=m
CONFIG_IPDDP_ENCAP=y
CONFIG_IPDDP_DECAP=y
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
CONFIG_NET_DIVERT=y
# CONFIG_ECONET is not set
CONFIG_WAN_ROUTER=m
#
# QoS and/or fair queueing
#
CONFIG_NET_SCHED=y
CONFIG_NET_SCH_CLK_JIFFIES=y
# CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set
# CONFIG_NET_SCH_CLK_CPU is not set
CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_HTB=m
CONFIG_NET_SCH_HFSC=m
CONFIG_NET_SCH_ATM=m
CONFIG_NET_SCH_PRIO=m
CONFIG_NET_SCH_RED=m
CONFIG_NET_SCH_SFQ=m
CONFIG_NET_SCH_TEQL=m
CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_GRED=m
CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCH_NETEM=m
CONFIG_NET_SCH_INGRESS=m
CONFIG_NET_QOS=y
CONFIG_NET_ESTIMATOR=y
CONFIG_NET_CLS=y
CONFIG_NET_CLS_TCINDEX=m
CONFIG_NET_CLS_ROUTE4=m
CONFIG_NET_CLS_ROUTE=y
CONFIG_NET_CLS_FW=m
CONFIG_NET_CLS_U32=m
CONFIG_CLS_U32_PERF=y
CONFIG_NET_CLS_IND=y
CONFIG_CLS_U32_MARK=y
CONFIG_NET_CLS_RSVP=m
CONFIG_NET_CLS_RSVP6=m
# CONFIG_NET_CLS_ACT is not set
CONFIG_NET_CLS_POLICE=y
#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
CONFIG_NETPOLL=y
# CONFIG_NETPOLL_RX is not set
CONFIG_NETPOLL_TRAP=y
CONFIG_NET_POLL_CONTROLLER=y
# CONFIG_HAMRADIO is not set
CONFIG_IRDA=m
#
# IrDA protocols
#
CONFIG_IRLAN=m
CONFIG_IRNET=m
CONFIG_IRCOMM=m
# CONFIG_IRDA_ULTRA is not set
#
# IrDA options
#
CONFIG_IRDA_CACHE_LAST_LSAP=y
CONFIG_IRDA_FAST_RR=y
# CONFIG_IRDA_DEBUG is not set
#
# Infrared-port device drivers
#
#
# SIR device drivers
#
CONFIG_IRTTY_SIR=m
#
# Dongle support
#
CONFIG_DONGLE=y
CONFIG_ESI_DONGLE=m
CONFIG_ACTISYS_DONGLE=m
CONFIG_TEKRAM_DONGLE=m
CONFIG_LITELINK_DONGLE=m
CONFIG_MA600_DONGLE=m
CONFIG_GIRBIL_DONGLE=m
CONFIG_MCP2120_DONGLE=m
CONFIG_OLD_BELKIN_DONGLE=m
CONFIG_ACT200L_DONGLE=m
#
# Old SIR device drivers
#
#
# Old Serial dongle support
#
#
# FIR device drivers
#
CONFIG_USB_IRDA=m
CONFIG_SIGMATEL_FIR=m
CONFIG_NSC_FIR=m
CONFIG_WINBOND_FIR=m
CONFIG_TOSHIBA_FIR=m
CONFIG_SMC_IRCC_FIR=m
CONFIG_ALI_FIR=m
CONFIG_VLSI_FIR=m
CONFIG_VIA_FIR=m
CONFIG_BT=m
CONFIG_BT_L2CAP=m
CONFIG_BT_SCO=m
CONFIG_BT_RFCOMM=m
CONFIG_BT_RFCOMM_TTY=y
CONFIG_BT_BNEP=m
CONFIG_BT_BNEP_MC_FILTER=y
CONFIG_BT_BNEP_PROTO_FILTER=y
CONFIG_BT_CMTP=m
CONFIG_BT_HIDP=m
#
# Bluetooth device drivers
#
CONFIG_BT_HCIUSB=m
CONFIG_BT_HCIUSB_SCO=y
CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_H4=y
CONFIG_BT_HCIUART_BCSP=y
CONFIG_BT_HCIUART_BCSP_TXCRC=y
CONFIG_BT_HCIBCM203X=m
CONFIG_BT_HCIBPA10X=m
CONFIG_BT_HCIBFUSB=m
CONFIG_BT_HCIDTL1=m
CONFIG_BT_HCIBT3C=m
CONFIG_BT_HCIBLUECARD=m
CONFIG_BT_HCIBTUART=m
CONFIG_BT_HCIVHCI=m
CONFIG_TUX=m
#
# TUX options
#
CONFIG_TUX_EXTCGI=y
CONFIG_TUX_EXTENDED_LOG=y
# CONFIG_TUX_DEBUG is not set
CONFIG_NETDEVICES=y
CONFIG_DUMMY=m
CONFIG_BONDING=m
CONFIG_EQUALIZER=m
CO...
[truncated message content] |
|
From: Arjan v. de V. <ar...@in...> - 2005-03-10 14:03:51
|
On Thu, 2005-03-10 at 13:55 +0100, Knut J Bjuland wrote: > caller is arch_add_exec_range+0x49/0x6a > Content-Type: text/plain; charset=ISO-8859-1; format=flowed > Content-Transfer-Encoding: 7bit > > When booting linux 2.6.11 with preemetable enable I get BUG: using > smp_processor_id() in preemptible [00000001] code: hotplug/461caller is > arch_add_exec_range+0x49/0x6a > when I load the kernel. I get this error messeage before loading xorg > ,and the kernel is untained. that function isn't in kernel.org kernels... but only in the Exec Shield patch series.. sounds like you have a misapplied patch somewhere... |
|
From: Milada K. <Eur...@ka...> - 2005-03-06 03:54:18
|
Hello, Have a nice day. |
|
From: Gizem B. <Con...@kg...> - 2005-02-27 22:36:35
|
Hello, He had to admit to himself that the influence of Cowperwood over way--not legally, anyhow. But that's not what I'm thinking of. was to say that, although he could not at present return the five it would be; but this that he had designed for Cowperwood and his nothing in particular. Who said I was talking about her? He So they stood, and so Cowperwood left them, wondering whether any mother and him. She realized that all these were important in not agree to give up seeing him, and he was not willing that she money at two per cent. (most of it, to save himself, had been prosecution is going to be undertaken by some one else--possibly Have a nice day. |
|
From: <Mar...@Ra...> - 2005-02-09 14:37:16
|
George Anzinger wrote:
> Adam Jerome wrote:
> > Mark, George,
> > [snip]
> > I assume that kernel preemption can be disabled at some granularity;
> > perhaps per kernel process.
Actually, any thread of execution:
- interrupt processing
- system call
- kernel thread
can disable kernel preemption. As George notes below - it preemption
should be disabled only when you MUST protect some data.
> > Hypothetically, assume that a process is in
> > a state that it could easily relinquish control, but instead it
> > stubbornly continues to perform its task.
Let me use a simple case with the following patch (applied to 2.6.10-mm1)
as an example:
--- net/ipv4/tcp_minisocks.c.orig 2004-12-15 14:02:23.000000000 -0600
+++ net/ipv4/tcp_minisocks.c 2004-12-15 14:02:59.000000000 -0600
@@ -414,7 +414,7 @@
#define TCP_TWKILL_SLOTS 8 /* Please keep this a power of 2.
*/
#define TCP_TWKILL_PERIOD (TCP_TIMEWAIT_LEN/TCP_TWKILL_SLOTS)
-#define TCP_TWKILL_QUOTA 100
+#define TCP_TWKILL_QUOTA 30
static struct hlist_head tcp_tw_death_row[TCP_TWKILL_SLOTS];
static DEFINE_SPINLOCK(tw_death_lock);
There is also code later that does this:
while (tcp_do_twkill_work(i, TCP_TWKILL_QUOTA) != 0) {
if (softirq_need_resched()) {
spin_unlock_bh(&tw_death_lock);
schedule();
spin_lock_bh(&tw_death_lock);
}
So it does not check for a reschedule for 100 (30 with the patch)
iterations inside tcp_do_twkill_work. Note that the work still
has to be done in either case if the preemption occurs.
[a side note - this example is coded pretty strange if you track
all uses of tw_death_lock and should probably be cleaned up]
There are A LOT of these kinds of examples in the Linux kernel.
Many have been fixed. There is no guidance that I am aware of on
the timing / limits for loops for such constructs.
> > In such a state, it would
> > seem to me that a process might be capable of "hogging" the CPU,
> > inappropriately starving other kernel processes out of CPU time.
What one user sees as "hogging" the CPU, another sees as efficient
use of the CPU. If I had a big iron network server, the patch I
show above makes the system less efficient. But for me, it improves
latency for my real time applications.
> > If my
> > assumptions are correct; my question is this... What would be
considered
> > a proper Maximum CPU time slice for such a process; (when exceeding
> > such, the process would be considered a "CPU hog").
>
> If you are talking about kernel code, we (rt interested folks) are
looking for
> preemption times in the 10-100 microsecond region.
I wish I could get 10-100 microseconds. If my RT task gets preempted for
less than 1000 microseconds I will be pretty happy.
> To do this most locks (spin
> locks and reader/writer locks) are being changed to mutexes which will
yield
> control on demand. The notion is that what needs protection is the data
and
> that is what a mutex does. As it turns out, a preemption lock is rather
cheap
> (only a bit is set/reset) so it is the preferred way (given a UP machine)
to
> lock data for quick access (such things as popping an element from a
list),
> while the mutex is best for longer held things.
I agree.
> Still, your question seems to be more of a scheduler question. The
notion of a
> CPU hog is defined there and changes the relative priority of non rt
tasks to
> best optimize the system. This, however, is a long term thing and take
some
> time to react. It is designed to catch things like compilers and tell
them from
> interactive things like X and your editor.
>
This is certainly a traditional definition of "CPU hog". Note the OP has
asserted that a [kernel?] process can "stubbornly continue to perform
its task" (which I provided an example). If that is an device driver
or file system code in the kernel, it can still be a "hog" for the RT
applications.
> > I realize the arguments on both sides; that sometimes it would be
> > better to "complete the task" than relinquish control, etc., and that
> > perhaps there should not be an exact maximum time slice.
>
> Again a scheduler issue...
For a thread, yes. For one of the other items I mentioned (interrupt
or system call), I disagree. The scheduler doesn't usually get involved
in cases like the example I illustrated unless it is explicitly coded
to allow it.
> >
> > I am working on a list of guide-lines for Linux kernel module
> > developers; and this "Maximum CPU Time Slice" issue was brought to my
> > attention. Initially, I assumed (perhaps incorrectly), that this value
> > should be similar to the maximum allowed by kernel process preemption.
> > Obviously, I was hoping for an answer something like "40ms (or so)".
If its a kernel thread a value like 40 msec may actually be a
good guideline. However for something that runs in the context of
a (possibly RT) user application (e.g., interrupt) - that is an
extremely long period of time. I run tasks at 80 HZ (12.5 msec period)
so if that task gets stopped for a millisecond (or 15 times for
100 usec each - yes I've measured that) in that period, I start to
get worried.
> > However, your previous replies helped me better understand the
> > complexity of trying to tackle this issue that way.
>
> Kernel modules should do only the locking needed to protect the data they
are
> working with. If they directly interact with hardware, they will also
need to
> protect that interaction with the necessary locks. In general, they
should
> expect to be preempted at ANY instruction. If they loose control, the
data
> should still be protected until they get control again. The way to do
this is
> with spin locks and, sometimes, preemption disables. A lot has been
written on
> how to do this and the issues involved. Such code should turn off
interrupts
> only on when absolutely needed and then for as short a time as possible.
I think we are in violent agreement on this issue.
The other point I might make is that an RT application developer will
also do what they can to tightly control non RT applications. For
example, if you start a lot of network I/O from a non RT application,
that can cause a number of interrupts to occur, impacting the RT
application.
--Mark
|
|
From: George A. <ge...@mv...> - 2005-02-08 19:21:09
|
Adam Jerome wrote: > Mark, George, > > Thank you for your replies. I now realize that your (much appreciated) > answers demonstrate my somewhat flawed questions. Perhaps these > question are closer to the mark: > > I assume that kernel preemption can be disabled at some granularity; > perhaps per kernel process. Hypothetically, assume that a process is in > a state that it could easily relinquish control, but instead it > stubbornly continues to perform its task. In such a state, it would > seem to me that a process might be capable of "hogging" the CPU, > inappropriately starving other kernel processes out of CPU time. If my > assumptions are correct; my question is this... What would be considered > a proper Maximum CPU time slice for such a process; (when exceeding > such, the process would be considered a "CPU hog"). If you are talking about kernel code, we (rt interested folks) are looking for preemption times in the 10-100 microsecond region. To do this most locks (spin locks and reader/writer locks) are being changed to mutexes which will yield control on demand. The notion is that what needs protection is the data and that is what a mutex does. As it turns out, a preemption lock is rather cheap (only a bit is set/reset) so it is the preferred way (given a UP machine) to lock data for quick access (such things as popping an element from a list), while the mutex is best for longer held things. Still, your question seems to be more of a scheduler question. The notion of a CPU hog is defined there and changes the relative priority of non rt tasks to best optimize the system. This, however, is a long term thing and take some time to react. It is designed to catch things like compilers and tell them from interactive things like X and your editor. > > I realize the arguments on both sides; that sometimes it would be > better to "complete the task" than relinquish control, etc., and that > perhaps there should not be an exact maximum time slice. Again a scheduler issue... > > I am working on a list of guide-lines for Linux kernel module > developers; and this "Maximum CPU Time Slice" issue was brought to my > attention. Initially, I assumed (perhaps incorrectly), that this value > should be similar to the maximum allowed by kernel process preemption. > Obviously, I was hoping for an answer something like "40ms (or so)". > However, your previous replies helped me better understand the > complexity of trying to tackle this issue that way. Kernel modules should do only the locking needed to protect the data they are working with. If they directly interact with hardware, they will also need to protect that interaction with the necessary locks. In general, they should expect to be preempted at ANY instruction. If they loose control, the data should still be protected until they get control again. The way to do this is with spin locks and, sometimes, preemption disables. A lot has been written on how to do this and the issues involved. Such code should turn off interrupts only on when absolutely needed and then for as short a time as possible. -- George Anzinger ge...@mv... High-res-timers: http://sourceforge.net/projects/high-res-timers/ |
|
From: Adam J. <AJ...@no...> - 2005-02-08 15:55:10
|
Mark, George, Thank you for your replies. I now realize that your (much appreciated) answers demonstrate my somewhat flawed questions. Perhaps these question are closer to the mark: I assume that kernel preemption can be disabled at some granularity; perhaps per kernel process. Hypothetically, assume that a process is in a state that it could easily relinquish control, but instead it stubbornly continues to perform its task. In such a state, it would seem to me that a process might be capable of "hogging" the CPU, inappropriately starving other kernel processes out of CPU time. If my assumptions are correct; my question is this... What would be considered a proper Maximum CPU time slice for such a process; (when exceeding such, the process would be considered a "CPU hog"). I realize the arguments on both sides; that sometimes it would be better to "complete the task" than relinquish control, etc., and that perhaps there should not be an exact maximum time slice. I am working on a list of guide-lines for Linux kernel module developers; and this "Maximum CPU Time Slice" issue was brought to my attention. Initially, I assumed (perhaps incorrectly), that this value should be similar to the maximum allowed by kernel process preemption. Obviously, I was hoping for an answer somethin like "40ms (or so)". However, your previous replies helped me better understand the complexity of trying to tackle this issue that way. Any help, or suggestions, are appreciated. -adam |
|
From: <Mar...@ra...> - 2005-02-08 14:12:15
|
> Specifically, how long will the 2.6 kernel tolerate a preemptable > kernel process before attempting to preempt it? Preemption of the kernel happens in a few different ways (assuming CONFIG_PREEMPT): - not in a critical region, preemption occurs immediately - in a critical region, check done if "need_resched" and if so, release the locks & try again later - a critical region ends Note the hardware also has to be "nice" for a preemption to occur. I have demonstrated > 1 msec latencies when using udma4 or udma5 on an IDE disk drive on my SMP PC's. Setting the disk to udma2 fixes that particular symptom. So there is no "formula" to be found. Part of Ingo Molnar's realtime-preempt patch modifies the behavior of loops in a critical region, checking for a rescheduling condition more frequently. Some areas patched include the file system, audio, and network drivers. Now there may also be some scheduling bugs on SMP systems. I have reported for some time "starvation" of a non RT application on an SMP system running a single RT application & a nice'd application. The non RT application did not preempt the nice'd application. There was a similar problem if you had more than one RT application but I think Ingo has fixed that one. This information is based on my testing of RT patches up through 2.6.10 (we've stopped there for now to let the dust settle). --Mark H Johnson <mailto:Mar...@ra...> |
|
From: George A. <ge...@mv...> - 2005-02-08 01:08:47
|
Adam Jerome wrote: > I am doing some research on the 2.6 kernel; and I am having difficulty > locating information (in documentation form) specific to kernel process > preemption. > > Specifically, how long will the 2.6 kernel tolerate a preemptable > kernel process before attempting to preempt it? As far as I know, if a process is preemptable and there is work at a better priority, it happens NOW, no waiting... Now you are into the notion of priority which is a scheduler issue, not a preemption one. George > > Is this tolerance based on a formula, a constant value and/or > configured by a system administrator? > If based on a formula, what is the formula? > > Best wishes; > - Adam Jerome / Novell Inc. > > PS: I just ordered "Linux Kernel Development" by Robert Love. I > browsed through a copy owned by a peer... Looks great! > -- George Anzinger ge...@mv... High-res-timers: http://sourceforge.net/projects/high-res-timers/ |
|
From: Adam J. <AJ...@no...> - 2005-02-08 00:08:02
|
I am doing some research on the 2.6 kernel; and I am having difficulty locating information (in documentation form) specific to kernel process preemption. Specifically, how long will the 2.6 kernel tolerate a preemptable kernel process before attempting to preempt it? Is this tolerance based on a formula, a constant value and/or configured by a system administrator? If based on a formula, what is the formula? Best wishes; - Adam Jerome / Novell Inc. PS: I just ordered "Linux Kernel Development" by Robert Love. I browsed through a copy owned by a peer... Looks great! |
|
From: Friedman Lindsey<se...@ya...> - 2005-02-05 15:49:18
|
See attachment message.html |
|
From: Fishbein Martha<gr...@ya...> - 2005-02-05 05:21:36
|
See attachment message.html |
|
From: Geffen Barbara<ha...@ya...> - 2005-02-04 14:03:41
|
See attachment message.html |