use thread_info.h in uaccess.h
Subsystems (3)
PATCH 1/1 use thread_info.h in uaccess.h
Hi Linus,
Please consider pulling from:
bk://oops.kerneljanitors.org:hell_header-2.5
Comments on the changeset, but its fairly trivial. Tested
with 'make allmodconfig' and 'make allyesconfig'.
- Arnaldo
You can import this changeset into BK by piping this whole message to:
'| bk receive [path to repository]' or apply the patch as usual.
===================================================================
[email protected], 2002-11-15 09:05:29-02:00, [email protected]
o includes: remove include sched.h from asm-i386/uaccess.h
It only needs current_thread_info, so now it includes just asm/thread_info.h, this way sched.h will not be included indirectly hundreds of times when all that is needed is copy_to_user and friends.
fs/autofs/autofs_i.h | 2 ++ fs/autofs4/autofs_i.h | 2 ++ fs/ext2/ioctl.c | 2 ++ include/asm-i386/uaccess.h | 2 +- ipc/msg.c | 2 ++ 5 files changed, 9 insertions(+), 1 deletion(-)
fs/autofs/autofs_i.h +2 -0
@@ -25,6 +25,8 @@#include <linux/wait.h> #include <linux/dcache.h> #include <linux/namei.h> +#include <asm/current.h> +#include <linux/sched.h> #include <asm/uaccess.h> #ifdef DEBUG
fs/autofs4/autofs_i.h +2 -0
@@ -24,6 +24,8 @@#include <linux/time.h> #include <linux/string.h> #include <linux/wait.h> +#include <linux/sched.h> +#include <asm/current.h> #include <asm/uaccess.h> /* #define DEBUG */
fs/ext2/ioctl.c +2 -0
@@ -9,6 +9,8 @@#include "ext2.h" #include <linux/time.h> +#include <linux/sched.h> +#include <asm/current.h> #include <asm/uaccess.h>
include/asm-i386/uaccess.h +1 -1
@@ -6,7 +6,7 @@*/ #include <linux/config.h> #include <linux/errno.h> -#include <linux/sched.h> +#include <linux/thread_info.h> #include <linux/prefetch.h> #include <asm/page.h>
ipc/msg.c +2 -0
@@ -23,6 +23,8 @@#include <linux/proc_fs.h> #include <linux/list.h> #include <linux/security.h> +#include <linux/sched.h> +#include <asm/current.h> #include <asm/uaccess.h> #include "util.h"
===================================================================
This BitKeeper patch contains the following changesets:
1.851
## Wrapped with gzip_uu ##
begin 664 bkpatch25755 M'XL(`%K5U#T``^V876_;-A2&KZ-?02"7JR5^ZL-8@JSML4=L"!#KX;!H$DJ MTB*)@4C'-:?OR,[=FPGBA-W=XTMV(9$'KXZ?/@>RJ?HJS/M^$2JV@2GZ'?K M_/A$V<8H7][+4-DZG+9PX=I:N!5MC;1QR]18:IJ4ABI33NBH0B@Q97TJD#W MIG7C$Q*RS1F_N#/CD^M??_OZQR_707!VACX5LKDQ?QF/SLX";]M[66EW(7U1 MV2;TK6Q<;?QR[&[3M*,84W@+DCLXH[$F">=(IH0R8G1F/(TYH_1>J$OQB*$ M"!P31D2'<49X\!F1,!4$81H1$A&!<#;&8DRS$:9CC%&?H8O]S*"?!!KAX"/Z M?V_C4Z"0166CJIDV;HQ:4]M[LSZ!G"J,#@N4M[9&TM6CDJ5Q-)-*&>?"CK# M<>F1;:H%:HS1#JE9VYK&3WS1PJQ-RB:W'Y"SJ+%S5/K-4.C?F?/0&8)&6TW# MX@/R1>G07"XVH\_+JH+^'DTWRC3\T&4+*:H6$*68-;KM1[<Y\F4-X>>%:9"$ M?KZ0,*I;JNN[@4)[MYAX.YD!CT@V&NZN-(UV8?%Q3PC++AZ)"<8O?$5!%CB MX/S`/)5W*JK=3:BVYHECC#M,XX1W7"6"Y5F>")-.I1E@8B]*#QHAF#'1B8R2 M]*"(W$7FFZ=1:2&-.U)8QM*.T(QF74K%-#,)3G(N<QA@0,ISL;8$<9)R\1I! M<N;MYFM2AL6^*A8+G'0IT0+K/%><PLJ:JF%5SP?<DD8P%\GKI?%!;5G'<3]Y M=$JT,8PEAG*<Q=DA;4\B;HFC3"3D,$VK11$]7:$["CGO!.,$=X)KGHA:97' MN<C8$%XOA]WA+<%L:;G/9?RP^QX_\<'T!@J!O]"E;KR>J=O0MC<OS#O&*>24 M@B/B&#^8,<&[7LS&3+SLQ?3'\&(PQ-7J^!.-VOGR(.[>G:2CS#*2YH@&IRN M;_#G?OP'R6%QOG6A*IO9M^@A>>[G/'C0'O[,CYVM-5_(@:R0A-EZ@E[Z0- MD;:RNB'2^/>B%N^@MD?4((,/J&V7ME=!]O:Z&DA=5D#8!0AQWK2Y&XX5UR" M,0*F"+L&NB0K?B=KB*S5YN,I6=N)/88I0HYF:KBT'L;K>ZO]LT;V]WK,?PZ6 M?<Q@H\I@MPIE'YQR54+96_$C:$1^#/Q6FZ,]_(:3?2)GS-$@LO^8Y_&'2T/ MZ*T?&EY!VMN>4@)Y>U<#5C?&]MVWD=I[4,&PK<"9$)YDH@E0=F[?PT#U#_- D[0.T3NE1U5<YUSKOUJ@I;IUL_J,Q(I"#9/!?SP3!.#?$0``
`
end
While we're janitoring headers...
This patch removes all the wait_queue handling code from sched.h and puts it in wait.h with the rest of the wait_queue handling code. Note that sched.h must continue to include wait.h for the wait_queue_head_t embedded in struct task. However there may be files which only need wait.h now.
include/linux/sched.h +0 -127
@@ -488,31 +488,10 @@ extern unsigned long itimer_ticks;extern unsigned long itimer_next;extern void do_timer (struct pt_regs *); -extern void FASTCALL (__wake_up (wait_queue_head_t *q,unsigned int mode,int nr)); -extern void FASTCALL (__wake_up_locked (wait_queue_head_t *q,unsigned int mode)); -extern void FASTCALL (__wake_up_sync (wait_queue_head_t *q,unsigned int mode,int nr)); -extern void FASTCALL (sleep_on (wait_queue_head_t *q)); -extern long FASTCALL (sleep_on_timeout (wait_queue_head_t *q, -signed long timeout)); -extern void FASTCALL (interruptible_sleep_on (wait_queue_head_t *q)); -extern long FASTCALL (interruptible_sleep_on_timeout (wait_queue_head_t *q, -signed long timeout));extern int FASTCALL (wake_up_process (struct task_struct * tsk));extern void FASTCALL (wake_up_forked_process (struct task_struct * tsk));extern void FASTCALL (sched_exit (task_t * p)); -#define wake_up (x) __wake_up((x),TASK_UNINTERRUPTIBLE | TASK_INTERRUPTIBLE, 1) -#define wake_up_nr (x, nr) __wake_up((x),TASK_UNINTERRUPTIBLE | TASK_INTERRUPTIBLE, nr) -#define wake_up_all (x) __wake_up((x),TASK_UNINTERRUPTIBLE | TASK_INTERRUPTIBLE, 0) -#define wake_up_interruptible (x) __wake_up((x),TASK_INTERRUPTIBLE, 1) -#define wake_up_interruptible_nr (x, nr) __wake_up((x),TASK_INTERRUPTIBLE, nr) -#define wake_up_interruptible_all (x) __wake_up((x),TASK_INTERRUPTIBLE, 0) -#define wake_up_locked (x) __wake_up_locked((x), TASK_UNINTERRUPTIBLE | TASK_INTERRUPTIBLE) -#ifdef CONFIG_SMP -#define wake_up_interruptible_sync (x) __wake_up_sync((x),TASK_INTERRUPTIBLE, 1) -#else -#define wake_up_interruptible_sync (x) __wake_up((x),TASK_INTERRUPTIBLE, 1) -#endif asmlinkage long sys_wait4 (pid_t pid,unsigned int * stat_addr,int options,struct rusage * ru);extern int in_group_p (gid_t );
@@ -654,10 +633,6 @@ extern task_t *child_reaper;extern int do_execve (char *,char **,char **,struct pt_regs *);extern struct task_struct *do_fork (unsigned long ,unsigned long ,struct pt_regs *,unsigned long ,int *); -extern void FASTCALL (add_wait_queue (wait_queue_head_t *q,wait_queue_t * wait)); -extern void FASTCALL (add_wait_queue_exclusive (wait_queue_head_t *q,wait_queue_t * wait)); -extern void FASTCALL (remove_wait_queue (wait_queue_head_t *q,wait_queue_t * wait)); -#ifdef CONFIG_SMP extern void wait_task_inactive (task_t * p);#else
@@ -665,108 +640,6 @@ extern void wait_task_inactive(task_t *#endif extern void kick_if_running (task_t * p); -#define __wait_event (wq, condition) \ -do { \ - wait_queue_t __wait; \ - init_waitqueue_entry(&__wait, current); \ - \ - add_wait_queue(&wq, &__wait); \ - for (;;) { \ - set_current_state(TASK_UNINTERRUPTIBLE); \ - if (condition) \ - break; \ - schedule(); \ - } \ - current->state = TASK_RUNNING; \ - remove_wait_queue(&wq, &__wait); \ -} while (0) - -#define wait_event (wq, condition) \ -do { \ - if (condition) \ - break; \ - __wait_event(wq, condition); \ -} while (0) - -#define __wait_event_interruptible (wq, condition, ret) \ -do { \ - wait_queue_t __wait; \ - init_waitqueue_entry(&__wait, current); \ - \ - add_wait_queue(&wq, &__wait); \ - for (;;) { \ - set_current_state(TASK_INTERRUPTIBLE); \ - if (condition) \ - break; \ - if (!signal_pending(current)) { \ - schedule(); \ - continue; \ - } \ - ret = -ERESTARTSYS; \ - break; \ - } \ - current->state = TASK_RUNNING; \ - remove_wait_queue(&wq, &__wait); \ -} while (0) - -#define wait_event_interruptible (wq, condition) \ -({ \ - int __ret = 0; \ - if (!(condition)) \ - __wait_event_interruptible(wq, condition, __ret); \ - __ret; \ -}) - -#define __wait_event_interruptible_timeout (wq, condition, ret) \ -do { \ - wait_queue_t __wait; \ - init_waitqueue_entry(&__wait, current); \ - \ - add_wait_queue(&wq, &__wait); \ - for (;;) { \ - set_current_state(TASK_INTERRUPTIBLE); \ - if (condition) \ - break; \ - if (!signal_pending(current)) { \ - ret = schedule_timeout(ret); \ - if (!ret) \ - break; \ - continue; \ - } \ - ret = -ERESTARTSYS; \ - break; \ - } \ - current->state = TASK_RUNNING; \ - remove_wait_queue(&wq, &__wait); \ -} while (0) - -#define wait_event_interruptible_timeout (wq, condition, timeout) \ -({ \ - long __ret = timeout; \ - if (!(condition)) \ - __wait_event_interruptible_timeout(wq, condition, __ret); \ - __ret; \ -}) - -/* -* Must be called with the spinlock in the wait_queue_head_t held. -*/ -static inline void add_wait_queue_exclusive_locked (wait_queue_head_t *q, -wait_queue_t * wait) -{ - wait->flags |=WQ_FLAG_EXCLUSIVE ; -__add_wait_queue_tail (q, wait); -} - -/* -* Must be called with the spinlock in the wait_queue_head_t held. -*/ -static inline void remove_wait_queue_locked (wait_queue_head_t *q, -wait_queue_t * wait) -{ -__remove_wait_queue (q, wait); -} -#define remove_parent (p) list_del_init(&(p)->sibling)#define add_parent (p, parent) list_add_tail(&(p)->sibling,&(parent)->children)
include/linux/wait.h +138 -6
171 lines not on this page · raw message
Signature · 1 line
Revolutions do not require corporate support.
Quoted 7 lines · Matthew Wilcox
While we're janitoring headers...
This patch removes all the
wait_queuehandling code fromsched.hand puts it inwait.hwith the rest of thewait_queuehandling code. Note thatsched.hmust continue to includewait.hfor thewait_queue_head_tembedded in struct task. However there may be files which only needwait.hnow.
Move the typedef into linux/types.h and that problem goes away.
-ben