Merge branch 'linux-2.6' into for-2.6.24

This commit is contained in:
Paul Mackerras 2007-10-03 15:33:17 +10:00
commit 70f227d884
170 changed files with 2323 additions and 1599 deletions

View file

@ -32,15 +32,7 @@
* CPUFREQ NOTIFIER INTERFACE *
*********************************************************************/
#ifdef CONFIG_CPU_FREQ
int cpufreq_register_notifier(struct notifier_block *nb, unsigned int list);
#else
static inline int cpufreq_register_notifier(struct notifier_block *nb,
unsigned int list)
{
return 0;
}
#endif
int cpufreq_unregister_notifier(struct notifier_block *nb, unsigned int list);
#define CPUFREQ_TRANSITION_NOTIFIER (0)
@ -268,22 +260,17 @@ struct freq_attr {
int cpufreq_get_policy(struct cpufreq_policy *policy, unsigned int cpu);
int cpufreq_update_policy(unsigned int cpu);
/* query the current CPU frequency (in kHz). If zero, cpufreq couldn't detect it */
unsigned int cpufreq_get(unsigned int cpu);
/*
* query the last known CPU freq (in kHz). If zero, cpufreq couldn't detect it
*/
/* query the last known CPU freq (in kHz). If zero, cpufreq couldn't detect it */
#ifdef CONFIG_CPU_FREQ
unsigned int cpufreq_quick_get(unsigned int cpu);
unsigned int cpufreq_get(unsigned int cpu);
#else
static inline unsigned int cpufreq_quick_get(unsigned int cpu)
{
return 0;
}
static inline unsigned int cpufreq_get(unsigned int cpu)
{
return 0;
}
#endif

View file

@ -86,7 +86,7 @@ extern struct nsproxy init_nsproxy;
.count = ATOMIC_INIT(1), \
.action = { { { .sa_handler = NULL, } }, }, \
.siglock = __SPIN_LOCK_UNLOCKED(sighand.siglock), \
.signalfd_list = LIST_HEAD_INIT(sighand.signalfd_list), \
.signalfd_wqh = __WAIT_QUEUE_HEAD_INITIALIZER(sighand.signalfd_wqh), \
}
extern struct group_info init_groups;

View file

@ -438,7 +438,7 @@ struct sighand_struct {
atomic_t count;
struct k_sigaction action[_NSIG];
spinlock_t siglock;
struct list_head signalfd_list;
wait_queue_head_t signalfd_wqh;
};
struct pacct_struct {
@ -1406,6 +1406,7 @@ extern unsigned int sysctl_sched_wakeup_granularity;
extern unsigned int sysctl_sched_batch_wakeup_granularity;
extern unsigned int sysctl_sched_stat_granularity;
extern unsigned int sysctl_sched_runtime_limit;
extern unsigned int sysctl_sched_compat_yield;
extern unsigned int sysctl_sched_child_runs_first;
extern unsigned int sysctl_sched_features;

View file

@ -45,49 +45,17 @@ struct signalfd_siginfo {
#ifdef CONFIG_SIGNALFD
/*
* Deliver the signal to listening signalfd. This must be called
* with the sighand lock held. Same are the following that end up
* calling signalfd_deliver().
*/
void signalfd_deliver(struct task_struct *tsk, int sig);
/*
* No need to fall inside signalfd_deliver() if no signal listeners
* are available.
* Deliver the signal to listening signalfd.
*/
static inline void signalfd_notify(struct task_struct *tsk, int sig)
{
if (unlikely(!list_empty(&tsk->sighand->signalfd_list)))
signalfd_deliver(tsk, sig);
}
/*
* The signal -1 is used to notify the signalfd that the sighand
* is on its way to be detached.
*/
static inline void signalfd_detach_locked(struct task_struct *tsk)
{
if (unlikely(!list_empty(&tsk->sighand->signalfd_list)))
signalfd_deliver(tsk, -1);
}
static inline void signalfd_detach(struct task_struct *tsk)
{
struct sighand_struct *sighand = tsk->sighand;
if (unlikely(!list_empty(&sighand->signalfd_list))) {
spin_lock_irq(&sighand->siglock);
signalfd_deliver(tsk, -1);
spin_unlock_irq(&sighand->siglock);
}
if (unlikely(waitqueue_active(&tsk->sighand->signalfd_wqh)))
wake_up(&tsk->sighand->signalfd_wqh);
}
#else /* CONFIG_SIGNALFD */
#define signalfd_deliver(t, s) do { } while (0)
#define signalfd_notify(t, s) do { } while (0)
#define signalfd_detach_locked(t) do { } while (0)
#define signalfd_detach(t) do { } while (0)
static inline void signalfd_notify(struct task_struct *tsk, int sig) { }
#endif /* CONFIG_SIGNALFD */