#endif
};
++ #ifdef CONFIG_CPUMASK_OFFSTACK
++ /* We are not allocating a variable-sized bad_irq_desc.affinity */
++ #error "Blackfin architecture does not support CONFIG_CPUMASK_OFFSTACK."
++ #endif
++
int show_interrupts(struct seq_file *p, void *v)
{
int i = *(loff_t *) v, j;
#endif
generic_handle_irq(irq);
------ -#ifndef CONFIG_IPIPE /* Useless and bugous over the I-pipe: IRQs are threaded. */
------ - /* If we're the only interrupt running (ignoring IRQ15 which is for
------ - syscalls), lower our priority to IRQ14 so that softirqs run at
------ - that level. If there's another, lower-level interrupt, irq_exit
------ - will defer softirqs to that. */
++++++ +#ifndef CONFIG_IPIPE
++++++ + /*
++++++ + * If we're the only interrupt running (ignoring IRQ15 which
++++++ + * is for syscalls), lower our priority to IRQ14 so that
++++++ + * softirqs run at that level. If there's another,
++++++ + * lower-level interrupt, irq_exit will defer softirqs to
++++++ + * that. If the interrupt pipeline is enabled, we are already
++++++ + * running at IRQ14 priority, so we don't need this code.
++++++ + */
CSYNC();
pending = bfin_read_IPEND() & ~0x8000;
other_ints = pending & (pending - 1);
} else {
VIRTUAL_BUG_ON(x < PAGE_OFFSET);
x -= PAGE_OFFSET;
--- VIRTUAL_BUG_ON(system_state == SYSTEM_BOOTING ? x > MAXMEM :
--- !phys_addr_valid(x));
+++ VIRTUAL_BUG_ON(!phys_addr_valid(x));
}
return x;
}
if (x < PAGE_OFFSET)
return false;
x -= PAGE_OFFSET;
--- if (system_state == SYSTEM_BOOTING ?
--- x > MAXMEM : !phys_addr_valid(x)) {
+++ if (!phys_addr_valid(x))
return false;
--- }
}
return pfn_valid(x >> PAGE_SHIFT);
#ifdef CONFIG_DEBUG_VIRTUAL
unsigned long __phys_addr(unsigned long x)
{
--- /* VMALLOC_* aren't constants; not available at the boot time */
+++ /* VMALLOC_* aren't constants */
VIRTUAL_BUG_ON(x < PAGE_OFFSET);
--- VIRTUAL_BUG_ON(system_state != SYSTEM_BOOTING &&
--- is_vmalloc_addr((void *) x));
+++ VIRTUAL_BUG_ON(__vmalloc_start_set && is_vmalloc_addr((void *) x));
return x - PAGE_OFFSET;
}
EXPORT_SYMBOL(__phys_addr);
{
if (x < PAGE_OFFSET)
return false;
--- if (system_state != SYSTEM_BOOTING && is_vmalloc_addr((void *) x))
+++ if (__vmalloc_start_set && is_vmalloc_addr((void *) x))
+++ return false;
++++ +++ if (x >= FIXADDR_START)
++++ return false;
return pfn_valid((x - PAGE_OFFSET) >> PAGE_SHIFT);
}
EXPORT_SYMBOL(__virt_addr_valid);
*
* Must be freed with iounmap.
*/
-- void __iomem *ioremap_wc(unsigned long phys_addr, unsigned long size)
++ void __iomem *ioremap_wc(resource_size_t phys_addr, unsigned long size)
{
if (pat_enabled)
return __ioremap_caller(phys_addr, size, _PAGE_CACHE_WC,
return &bm_pte[pte_index(addr)];
}
++ +++++static unsigned long slot_virt[FIX_BTMAPS_SLOTS] __initdata;
++ +++++
void __init early_ioremap_init(void)
{
pmd_t *pmd;
++ +++++ int i;
if (early_ioremap_debug)
printk(KERN_INFO "early_ioremap_init()\n");
++ +++++ for (i = 0; i < FIX_BTMAPS_SLOTS; i++)
++ +++++ slot_virt[i] = fix_to_virt(FIX_BTMAP_BEGIN - NR_FIX_BTMAPS*i);
++ +++++
pmd = early_ioremap_pmd(fix_to_virt(FIX_BTMAP_BEGIN));
memset(bm_pte, 0, sizeof(bm_pte));
pmd_populate_kernel(&init_mm, pmd, bm_pte);
static void __iomem *prev_map[FIX_BTMAPS_SLOTS] __initdata;
static unsigned long prev_size[FIX_BTMAPS_SLOTS] __initdata;
++ +++++
static int __init check_early_ioremap_leak(void)
{
int count = 0;
}
late_initcall(check_early_ioremap_leak);
-- -----static void __init __iomem *__early_ioremap(unsigned long phys_addr, unsigned long size, pgprot_t prot)
++ +++++static void __init __iomem *
++ +++++__early_ioremap(unsigned long phys_addr, unsigned long size, pgprot_t prot)
{
unsigned long offset, last_addr;
unsigned int nrpages;
--nrpages;
}
if (early_ioremap_debug)
-- ----- printk(KERN_CONT "%08lx + %08lx\n", offset, fix_to_virt(idx0));
++ +++++ printk(KERN_CONT "%08lx + %08lx\n", offset, slot_virt[slot]);
-- ----- prev_map[slot] = (void __iomem *)(offset + fix_to_virt(idx0));
++ +++++ prev_map[slot] = (void __iomem *)(offset + slot_virt[slot]);
return prev_map[slot];
}
}
prev_map[slot] = NULL;
}
-- -----
-- -----void __this_fixmap_does_not_exist(void)
-- -----{
-- ----- WARN_ON(1);
-- -----}