Merge branch 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull smp hotplug cleanups from Thomas Gleixner: "This series is merily a cleanup of code copied around in arch/* and not changing any of the real cpu hotplug horrors yet. I wish I'd had something more substantial for 3.5, but I underestimated the lurking horror..." Fix up trivial conflicts in arch/{arm,sparc,x86}/Kconfig and arch/sparc/include/asm/thread_info_32.h * 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (79 commits) um: Remove leftover declaration of alloc_task_struct_node() task_allocator: Use config switches instead of magic defines sparc: Use common threadinfo allocator score: Use common threadinfo allocator sh-use-common-threadinfo-allocator mn10300: Use common threadinfo allocator powerpc: Use common threadinfo allocator mips: Use common threadinfo allocator hexagon: Use common threadinfo allocator m32r: Use common threadinfo allocator frv: Use common threadinfo allocator cris: Use common threadinfo allocator x86: Use common threadinfo allocator c6x: Use common threadinfo allocator fork: Provide kmemcache based thread_info allocator tile: Use common threadinfo allocator fork: Provide weak arch_release_[task_struct|thread_info] functions fork: Move thread info gfp flags to header fork: Remove the weak insanity sh: Remove cpu_idle_wait() ...
This commit is contained in:
@@ -270,6 +270,7 @@ struct leon2_cacheregs {
|
||||
#include <linux/interrupt.h>
|
||||
|
||||
struct device_node;
|
||||
struct task_struct;
|
||||
extern unsigned int leon_build_device_irq(unsigned int real_irq,
|
||||
irq_flow_handler_t flow_handler,
|
||||
const char *name, int do_ack);
|
||||
@@ -289,7 +290,7 @@ extern int leon_smp_nrcpus(void);
|
||||
extern void leon_clear_profile_irq(int cpu);
|
||||
extern void leon_smp_done(void);
|
||||
extern void leon_boot_cpus(void);
|
||||
extern int leon_boot_one_cpu(int i);
|
||||
extern int leon_boot_one_cpu(int i, struct task_struct *);
|
||||
void leon_init_smp(void);
|
||||
extern void cpu_idle(void);
|
||||
extern void init_IRQ(void);
|
||||
@@ -325,7 +326,7 @@ extern int leon_ipi_irq;
|
||||
#define init_leon() do {} while (0)
|
||||
#define leon_smp_done() do {} while (0)
|
||||
#define leon_boot_cpus() do {} while (0)
|
||||
#define leon_boot_one_cpu(i) 1
|
||||
#define leon_boot_one_cpu(i, t) 1
|
||||
#define leon_init_smp() do {} while (0)
|
||||
|
||||
#endif /* !defined(CONFIG_SPARC_LEON) */
|
||||
|
@@ -79,8 +79,6 @@ register struct thread_info *current_thread_info_reg asm("g6");
|
||||
*/
|
||||
#define THREAD_INFO_ORDER 1
|
||||
|
||||
#define __HAVE_ARCH_THREAD_INFO_ALLOCATOR
|
||||
|
||||
struct thread_info * alloc_thread_info_node(struct task_struct *tsk, int node);
|
||||
void free_thread_info(struct thread_info *);
|
||||
|
||||
|
@@ -138,32 +138,11 @@ register struct thread_info *current_thread_info_reg asm("g6");
|
||||
|
||||
/* thread information allocation */
|
||||
#if PAGE_SHIFT == 13
|
||||
#define __THREAD_INFO_ORDER 1
|
||||
#define THREAD_SIZE_ORDER 1
|
||||
#else /* PAGE_SHIFT == 13 */
|
||||
#define __THREAD_INFO_ORDER 0
|
||||
#define THREAD_SIZE_ORDER 0
|
||||
#endif /* PAGE_SHIFT == 13 */
|
||||
|
||||
#define __HAVE_ARCH_THREAD_INFO_ALLOCATOR
|
||||
|
||||
#ifdef CONFIG_DEBUG_STACK_USAGE
|
||||
#define THREAD_FLAGS (GFP_KERNEL | __GFP_ZERO)
|
||||
#else
|
||||
#define THREAD_FLAGS (GFP_KERNEL)
|
||||
#endif
|
||||
|
||||
#define alloc_thread_info_node(tsk, node) \
|
||||
({ \
|
||||
struct page *page = alloc_pages_node(node, THREAD_FLAGS, \
|
||||
__THREAD_INFO_ORDER); \
|
||||
struct thread_info *ret; \
|
||||
\
|
||||
ret = page ? page_address(page) : NULL; \
|
||||
ret; \
|
||||
})
|
||||
|
||||
#define free_thread_info(ti) \
|
||||
free_pages((unsigned long)(ti),__THREAD_INFO_ORDER)
|
||||
|
||||
#define __thread_flag_byte_ptr(ti) \
|
||||
((unsigned char *)(&((ti)->flags)))
|
||||
#define __cur_thread_flag_byte_ptr __thread_flag_byte_ptr(current_thread_info())
|
||||
|
Reference in New Issue
Block a user