diff options
| author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-01-20 01:16:58 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-01-20 01:16:58 -0500 |
| commit | 497992917edf03994088ec8757b8262e1d9f568a (patch) | |
| tree | 7e82975f98d3d3c9f80e10c981601db23eef5bd1 /include | |
| parent | 7e732bfc5570b8f9bb5f155cf36e94b2e7d6bf6a (diff) | |
| parent | 386d1d50c8eef254653b1015fde06622ef38ba76 (diff) | |
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6
Diffstat (limited to 'include')
| -rw-r--r-- | include/asm-ia64/semaphore.h | 8 | ||||
| -rw-r--r-- | include/asm-ia64/sn/xp.h | 3 | ||||
| -rw-r--r-- | include/asm-ia64/sn/xpc.h | 9 | ||||
| -rw-r--r-- | include/asm-ia64/topology.h | 4 |
4 files changed, 15 insertions, 9 deletions
diff --git a/include/asm-ia64/semaphore.h b/include/asm-ia64/semaphore.h index bb8906285fab..f483eeb95dd1 100644 --- a/include/asm-ia64/semaphore.h +++ b/include/asm-ia64/semaphore.h | |||
| @@ -61,7 +61,7 @@ static inline void | |||
| 61 | down (struct semaphore *sem) | 61 | down (struct semaphore *sem) |
| 62 | { | 62 | { |
| 63 | might_sleep(); | 63 | might_sleep(); |
| 64 | if (atomic_dec_return(&sem->count) < 0) | 64 | if (ia64_fetchadd(-1, &sem->count.counter, acq) < 1) |
| 65 | __down(sem); | 65 | __down(sem); |
| 66 | } | 66 | } |
| 67 | 67 | ||
| @@ -75,7 +75,7 @@ down_interruptible (struct semaphore * sem) | |||
| 75 | int ret = 0; | 75 | int ret = 0; |
| 76 | 76 | ||
| 77 | might_sleep(); | 77 | might_sleep(); |
| 78 | if (atomic_dec_return(&sem->count) < 0) | 78 | if (ia64_fetchadd(-1, &sem->count.counter, acq) < 1) |
| 79 | ret = __down_interruptible(sem); | 79 | ret = __down_interruptible(sem); |
| 80 | return ret; | 80 | return ret; |
| 81 | } | 81 | } |
| @@ -85,7 +85,7 @@ down_trylock (struct semaphore *sem) | |||
| 85 | { | 85 | { |
| 86 | int ret = 0; | 86 | int ret = 0; |
| 87 | 87 | ||
| 88 | if (atomic_dec_return(&sem->count) < 0) | 88 | if (ia64_fetchadd(-1, &sem->count.counter, acq) < 1) |
| 89 | ret = __down_trylock(sem); | 89 | ret = __down_trylock(sem); |
| 90 | return ret; | 90 | return ret; |
| 91 | } | 91 | } |
| @@ -93,7 +93,7 @@ down_trylock (struct semaphore *sem) | |||
| 93 | static inline void | 93 | static inline void |
| 94 | up (struct semaphore * sem) | 94 | up (struct semaphore * sem) |
| 95 | { | 95 | { |
| 96 | if (atomic_inc_return(&sem->count) <= 0) | 96 | if (ia64_fetchadd(1, &sem->count.counter, rel) <= -1) |
| 97 | __up(sem); | 97 | __up(sem); |
| 98 | } | 98 | } |
| 99 | 99 | ||
diff --git a/include/asm-ia64/sn/xp.h b/include/asm-ia64/sn/xp.h index 203945ae034e..9bd2f9bf329b 100644 --- a/include/asm-ia64/sn/xp.h +++ b/include/asm-ia64/sn/xp.h | |||
| @@ -18,6 +18,7 @@ | |||
| 18 | 18 | ||
| 19 | #include <linux/cache.h> | 19 | #include <linux/cache.h> |
| 20 | #include <linux/hardirq.h> | 20 | #include <linux/hardirq.h> |
| 21 | #include <linux/mutex.h> | ||
| 21 | #include <asm/sn/types.h> | 22 | #include <asm/sn/types.h> |
| 22 | #include <asm/sn/bte.h> | 23 | #include <asm/sn/bte.h> |
| 23 | 24 | ||
| @@ -359,7 +360,7 @@ typedef void (*xpc_notify_func)(enum xpc_retval reason, partid_t partid, | |||
| 359 | * the channel. | 360 | * the channel. |
| 360 | */ | 361 | */ |
| 361 | struct xpc_registration { | 362 | struct xpc_registration { |
| 362 | struct semaphore sema; | 363 | struct mutex mutex; |
| 363 | xpc_channel_func func; /* function to call */ | 364 | xpc_channel_func func; /* function to call */ |
| 364 | void *key; /* pointer to user's key */ | 365 | void *key; /* pointer to user's key */ |
| 365 | u16 nentries; /* #of msg entries in local msg queue */ | 366 | u16 nentries; /* #of msg entries in local msg queue */ |
diff --git a/include/asm-ia64/sn/xpc.h b/include/asm-ia64/sn/xpc.h index 87e9cd588510..0c36928ffd8b 100644 --- a/include/asm-ia64/sn/xpc.h +++ b/include/asm-ia64/sn/xpc.h | |||
| @@ -19,6 +19,8 @@ | |||
| 19 | #include <linux/interrupt.h> | 19 | #include <linux/interrupt.h> |
| 20 | #include <linux/sysctl.h> | 20 | #include <linux/sysctl.h> |
| 21 | #include <linux/device.h> | 21 | #include <linux/device.h> |
| 22 | #include <linux/mutex.h> | ||
| 23 | #include <linux/completion.h> | ||
| 22 | #include <asm/pgtable.h> | 24 | #include <asm/pgtable.h> |
| 23 | #include <asm/processor.h> | 25 | #include <asm/processor.h> |
| 24 | #include <asm/sn/bte.h> | 26 | #include <asm/sn/bte.h> |
| @@ -335,8 +337,7 @@ struct xpc_openclose_args { | |||
| 335 | * and consumed by the intended recipient. | 337 | * and consumed by the intended recipient. |
| 336 | */ | 338 | */ |
| 337 | struct xpc_notify { | 339 | struct xpc_notify { |
| 338 | struct semaphore sema; /* notify semaphore */ | 340 | volatile u8 type; /* type of notification */ |
| 339 | volatile u8 type; /* type of notification */ | ||
| 340 | 341 | ||
| 341 | /* the following two fields are only used if type == XPC_N_CALL */ | 342 | /* the following two fields are only used if type == XPC_N_CALL */ |
| 342 | xpc_notify_func func; /* user's notify function */ | 343 | xpc_notify_func func; /* user's notify function */ |
| @@ -465,8 +466,8 @@ struct xpc_channel { | |||
| 465 | xpc_channel_func func; /* user's channel function */ | 466 | xpc_channel_func func; /* user's channel function */ |
| 466 | void *key; /* pointer to user's key */ | 467 | void *key; /* pointer to user's key */ |
| 467 | 468 | ||
| 468 | struct semaphore msg_to_pull_sema; /* next msg to pull serialization */ | 469 | struct mutex msg_to_pull_mutex; /* next msg to pull serialization */ |
| 469 | struct semaphore wdisconnect_sema; /* wait for channel disconnect */ | 470 | struct completion wdisconnect_wait; /* wait for channel disconnect */ |
| 470 | 471 | ||
| 471 | struct xpc_openclose_args *local_openclose_args; /* args passed on */ | 472 | struct xpc_openclose_args *local_openclose_args; /* args passed on */ |
| 472 | /* opening or closing of channel */ | 473 | /* opening or closing of channel */ |
diff --git a/include/asm-ia64/topology.h b/include/asm-ia64/topology.h index d8aae4da3978..412ef8e493a8 100644 --- a/include/asm-ia64/topology.h +++ b/include/asm-ia64/topology.h | |||
| @@ -18,6 +18,10 @@ | |||
| 18 | #include <asm/smp.h> | 18 | #include <asm/smp.h> |
| 19 | 19 | ||
| 20 | #ifdef CONFIG_NUMA | 20 | #ifdef CONFIG_NUMA |
| 21 | |||
| 22 | /* Nodes w/o CPUs are preferred for memory allocations, see build_zonelists */ | ||
| 23 | #define PENALTY_FOR_NODE_WITH_CPUS 255 | ||
| 24 | |||
| 21 | /* | 25 | /* |
| 22 | * Returns the number of the node containing CPU 'cpu' | 26 | * Returns the number of the node containing CPU 'cpu' |
| 23 | */ | 27 | */ |
