Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8568dae2 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6:
  [S390] show_interrupts: prevent cpu hotplug when walking cpu_online_map.
  [S390] smp: __smp_call_function_map vs cpu_online_map fix.
  [S390] tape: Use ccw_dev_id to build cdev_id.
  [S390] dasd: fix timeout handling in interrupt handler
  [S390] s390dbf: Use const char * for dbf name.
  [S390] dasd: Use const in busid functions.
  [S390] blacklist.c: removed duplicated include
  [S390] vmlogrdr: module initialization function should return negative errors
  [S390] sparsemem vmemmap: initialize memmap.
  [S390] Remove last traces of cio_msg=.
  [S390] cio: Remove CCW_CMD_SUSPEND_RECONN in front of CCW_CMD_SET_PGID.
parents 713c0515 8dd79cb1
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -398,9 +398,6 @@ and is between 256 and 4096 characters. It is defined in the file
	cio_ignore=	[S390]
			See Documentation/s390/CommonIO for details.

	cio_msg=	[S390]
			See Documentation/s390/CommonIO for details.

	clock=		[BUGS=X86-32, HW] gettimeofday clocksource override.
			[Deprecated]
			Forces specified clocksource (if available) to be used
+10 −10
Original line number Diff line number Diff line
@@ -71,7 +71,7 @@ static ssize_t debug_input(struct file *file, const char __user *user_buf,
			size_t user_len, loff_t * offset);
static int debug_open(struct inode *inode, struct file *file);
static int debug_close(struct inode *inode, struct file *file);
static debug_info_t*  debug_info_create(char *name, int pages_per_area,
static debug_info_t *debug_info_create(const char *name, int pages_per_area,
			int nr_areas, int buf_size, mode_t mode);
static void debug_info_get(debug_info_t *);
static void debug_info_put(debug_info_t *);
@@ -234,8 +234,8 @@ fail_malloc_areas:
 */

static debug_info_t*
debug_info_alloc(char *name, int pages_per_area, int nr_areas, int buf_size,
		int level, int mode)
debug_info_alloc(const char *name, int pages_per_area, int nr_areas,
		 int buf_size, int level, int mode)
{
	debug_info_t* rc;

@@ -326,8 +326,8 @@ debug_info_free(debug_info_t* db_info){
 */

static debug_info_t*
debug_info_create(char *name, int pages_per_area, int nr_areas, int buf_size,
		  mode_t mode)
debug_info_create(const char *name, int pages_per_area, int nr_areas,
		  int buf_size, mode_t mode)
{
	debug_info_t* rc;

@@ -684,9 +684,9 @@ debug_close(struct inode *inode, struct file *file)
 * - Returns handle for debug area
 */

debug_info_t *debug_register_mode(char *name, int pages_per_area, int nr_areas,
				  int buf_size, mode_t mode, uid_t uid,
				  gid_t gid)
debug_info_t *debug_register_mode(const char *name, int pages_per_area,
				  int nr_areas, int buf_size, mode_t mode,
				  uid_t uid, gid_t gid)
{
	debug_info_t *rc = NULL;

@@ -722,8 +722,8 @@ EXPORT_SYMBOL(debug_register_mode);
 * - returns handle for debug area
 */

debug_info_t *debug_register(char *name, int pages_per_area, int nr_areas,
			     int buf_size)
debug_info_t *debug_register(const char *name, int pages_per_area,
			     int nr_areas, int buf_size)
{
	return debug_register_mode(name, pages_per_area, nr_areas, buf_size,
				   S_IRUSR | S_IWUSR, 0, 0);
+2 −1
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ int show_interrupts(struct seq_file *p, void *v)
	static const char *intrclass_names[] = { "EXT", "I/O", };
	int i = *(loff_t *) v, j;

	get_online_cpus();
	if (i == 0) {
		seq_puts(p, "           ");
		for_each_online_cpu(j)
@@ -43,7 +44,7 @@ int show_interrupts(struct seq_file *p, void *v)
                seq_putc(p, '\n');

        }

	put_online_cpus();
        return 0;
}

+8 −8
Original line number Diff line number Diff line
@@ -139,7 +139,6 @@ static void __smp_call_function_map(void (*func) (void *info), void *info,
	if (wait)
		data.finished = CPU_MASK_NONE;

	spin_lock(&call_lock);
	call_data = &data;

	for_each_cpu_mask(cpu, map)
@@ -151,7 +150,6 @@ static void __smp_call_function_map(void (*func) (void *info), void *info,
	if (wait)
		while (!cpus_equal(map, data.finished))
			cpu_relax();
	spin_unlock(&call_lock);
out:
	if (local) {
		local_irq_disable();
@@ -177,11 +175,11 @@ int smp_call_function(void (*func) (void *info), void *info, int nonatomic,
{
	cpumask_t map;

	preempt_disable();
	spin_lock(&call_lock);
	map = cpu_online_map;
	cpu_clear(smp_processor_id(), map);
	__smp_call_function_map(func, info, nonatomic, wait, map);
	preempt_enable();
	spin_unlock(&call_lock);
	return 0;
}
EXPORT_SYMBOL(smp_call_function);
@@ -202,10 +200,10 @@ EXPORT_SYMBOL(smp_call_function);
int smp_call_function_single(int cpu, void (*func) (void *info), void *info,
			     int nonatomic, int wait)
{
	preempt_disable();
	spin_lock(&call_lock);
	__smp_call_function_map(func, info, nonatomic, wait,
				cpumask_of_cpu(cpu));
	preempt_enable();
	spin_unlock(&call_lock);
	return 0;
}
EXPORT_SYMBOL(smp_call_function_single);
@@ -228,10 +226,10 @@ EXPORT_SYMBOL(smp_call_function_single);
int smp_call_function_mask(cpumask_t mask, void (*func)(void *), void *info,
			   int wait)
{
	preempt_disable();
	spin_lock(&call_lock);
	cpu_clear(smp_processor_id(), mask);
	__smp_call_function_map(func, info, 0, wait, mask);
	preempt_enable();
	spin_unlock(&call_lock);
	return 0;
}
EXPORT_SYMBOL(smp_call_function_mask);
@@ -592,7 +590,9 @@ int __cpuinit start_secondary(void *cpuvoid)
	pfault_init();

	/* Mark this cpu as online */
	spin_lock(&call_lock);
	cpu_set(smp_processor_id(), cpu_online_map);
	spin_unlock(&call_lock);
	/* Switch on interrupts */
	local_irq_enable();
	/* Print info about this processor */
+6 −13
Original line number Diff line number Diff line
@@ -27,19 +27,12 @@ struct memory_segment {

static LIST_HEAD(mem_segs);

static void __ref *vmem_alloc_pages(unsigned int order)
{
	if (slab_is_available())
		return (void *)__get_free_pages(GFP_KERNEL, order);
	return alloc_bootmem_pages((1 << order) * PAGE_SIZE);
}

static inline pud_t *vmem_pud_alloc(void)
static pud_t *vmem_pud_alloc(void)
{
	pud_t *pud = NULL;

#ifdef CONFIG_64BIT
	pud = vmem_alloc_pages(2);
	pud = vmemmap_alloc_block(PAGE_SIZE * 4, 0);
	if (!pud)
		return NULL;
	clear_table((unsigned long *) pud, _REGION3_ENTRY_EMPTY, PAGE_SIZE * 4);
@@ -47,12 +40,12 @@ static inline pud_t *vmem_pud_alloc(void)
	return pud;
}

static inline pmd_t *vmem_pmd_alloc(void)
static pmd_t *vmem_pmd_alloc(void)
{
	pmd_t *pmd = NULL;

#ifdef CONFIG_64BIT
	pmd = vmem_alloc_pages(2);
	pmd = vmemmap_alloc_block(PAGE_SIZE * 4, 0);
	if (!pmd)
		return NULL;
	clear_table((unsigned long *) pmd, _SEGMENT_ENTRY_EMPTY, PAGE_SIZE * 4);
@@ -60,7 +53,7 @@ static inline pmd_t *vmem_pmd_alloc(void)
	return pmd;
}

static pte_t __init_refok *vmem_pte_alloc(void)
static pte_t __ref *vmem_pte_alloc(void)
{
	pte_t *pte;

@@ -214,7 +207,7 @@ int __meminit vmemmap_populate(struct page *start, unsigned long nr, int node)
		if (pte_none(*pt_dir)) {
			unsigned long new_page;

			new_page =__pa(vmem_alloc_pages(0));
			new_page =__pa(vmemmap_alloc_block(PAGE_SIZE, 0));
			if (!new_page)
				goto out;
			pte = pfn_pte(new_page >> PAGE_SHIFT, PAGE_KERNEL);
Loading