diff options
| author | Jeff Garzik <jgarzik@pobox.com> | 2005-10-20 10:11:25 -0400 |
|---|---|---|
| committer | Jeff Garzik <jgarzik@pobox.com> | 2005-10-20 10:11:25 -0400 |
| commit | 323cb3ce6eea9d4e72a81a9ffaac4c4e5b800810 (patch) | |
| tree | 01c9fc4f3d6757705d0c286da2aa153704c2a3bc /include | |
| parent | 59a10b172fccaea793352c00fd9065f0a5b4ef70 (diff) | |
| parent | 93918e9afc76717176e9e114e79cdbb602a45ae8 (diff) | |
Merge branch 'master'
Diffstat (limited to 'include')
| -rw-r--r-- | include/asm-arm/arch-ixp4xx/entry-macro.S | 9 | ||||
| -rw-r--r-- | include/asm-arm/arch-ixp4xx/hardware.h | 2 | ||||
| -rw-r--r-- | include/asm-arm/arch-pxa/pxa-regs.h | 2 | ||||
| -rw-r--r-- | include/asm-arm/locks.h | 4 | ||||
| -rw-r--r-- | include/linux/bootmem.h | 32 | ||||
| -rw-r--r-- | include/linux/hugetlb.h | 13 |
6 files changed, 52 insertions, 10 deletions
diff --git a/include/asm-arm/arch-ixp4xx/entry-macro.S b/include/asm-arm/arch-ixp4xx/entry-macro.S index 455da64832de..323b0bc4a39c 100644 --- a/include/asm-arm/arch-ixp4xx/entry-macro.S +++ b/include/asm-arm/arch-ixp4xx/entry-macro.S | |||
| @@ -15,25 +15,26 @@ | |||
| 15 | ldr \irqstat, =(IXP4XX_INTC_BASE_VIRT+IXP4XX_ICIP_OFFSET) | 15 | ldr \irqstat, =(IXP4XX_INTC_BASE_VIRT+IXP4XX_ICIP_OFFSET) |
| 16 | ldr \irqstat, [\irqstat] @ get interrupts | 16 | ldr \irqstat, [\irqstat] @ get interrupts |
| 17 | cmp \irqstat, #0 | 17 | cmp \irqstat, #0 |
| 18 | beq 1001f | 18 | beq 1001f @ upper IRQ? |
| 19 | clz \irqnr, \irqstat | 19 | clz \irqnr, \irqstat |
| 20 | mov \base, #31 | 20 | mov \base, #31 |
| 21 | subs \irqnr, \base, \irqnr | 21 | sub \irqnr, \base, \irqnr |
| 22 | b 1002f @ lower IRQ being | ||
| 23 | @ handled | ||
| 22 | 24 | ||
| 23 | 1001: | 25 | 1001: |
| 24 | /* | 26 | /* |
| 25 | * IXP465 has an upper IRQ status register | 27 | * IXP465 has an upper IRQ status register |
| 26 | */ | 28 | */ |
| 27 | #if defined(CONFIG_CPU_IXP46X) | 29 | #if defined(CONFIG_CPU_IXP46X) |
| 28 | bne 1002f | ||
| 29 | ldr \irqstat, =(IXP4XX_INTC_BASE_VIRT+IXP4XX_ICIP2_OFFSET) | 30 | ldr \irqstat, =(IXP4XX_INTC_BASE_VIRT+IXP4XX_ICIP2_OFFSET) |
| 30 | ldr \irqstat, [\irqstat] @ get upper interrupts | 31 | ldr \irqstat, [\irqstat] @ get upper interrupts |
| 31 | mov \irqnr, #63 | 32 | mov \irqnr, #63 |
| 32 | clz \irqstat, \irqstat | 33 | clz \irqstat, \irqstat |
| 33 | cmp \irqstat, #32 | 34 | cmp \irqstat, #32 |
| 34 | subne \irqnr, \irqnr, \irqstat | 35 | subne \irqnr, \irqnr, \irqstat |
| 35 | 1002: | ||
| 36 | #endif | 36 | #endif |
| 37 | 1002: | ||
| 37 | .endm | 38 | .endm |
| 38 | 39 | ||
| 39 | 40 | ||
diff --git a/include/asm-arm/arch-ixp4xx/hardware.h b/include/asm-arm/arch-ixp4xx/hardware.h index 4ac964b9078a..55d85eea8c1a 100644 --- a/include/asm-arm/arch-ixp4xx/hardware.h +++ b/include/asm-arm/arch-ixp4xx/hardware.h | |||
| @@ -27,7 +27,7 @@ | |||
| 27 | 27 | ||
| 28 | #define pcibios_assign_all_busses() 1 | 28 | #define pcibios_assign_all_busses() 1 |
| 29 | 29 | ||
| 30 | #if defined(CONFIG_CPU_IXP465) && !defined(__ASSEMBLY__) | 30 | #if defined(CONFIG_CPU_IXP46X) && !defined(__ASSEMBLY__) |
| 31 | extern unsigned int processor_id; | 31 | extern unsigned int processor_id; |
| 32 | #define cpu_is_ixp465() ((processor_id & 0xffffffc0) == 0x69054200) | 32 | #define cpu_is_ixp465() ((processor_id & 0xffffffc0) == 0x69054200) |
| 33 | #else | 33 | #else |
diff --git a/include/asm-arm/arch-pxa/pxa-regs.h b/include/asm-arm/arch-pxa/pxa-regs.h index 13fa2deb4ddd..3af7165ab0d7 100644 --- a/include/asm-arm/arch-pxa/pxa-regs.h +++ b/include/asm-arm/arch-pxa/pxa-regs.h | |||
| @@ -653,7 +653,7 @@ | |||
| 653 | 653 | ||
| 654 | #define UDCCS_IO_RFS (1 << 0) /* Receive FIFO service */ | 654 | #define UDCCS_IO_RFS (1 << 0) /* Receive FIFO service */ |
| 655 | #define UDCCS_IO_RPC (1 << 1) /* Receive packet complete */ | 655 | #define UDCCS_IO_RPC (1 << 1) /* Receive packet complete */ |
| 656 | #define UDCCS_IO_ROF (1 << 3) /* Receive overflow */ | 656 | #define UDCCS_IO_ROF (1 << 2) /* Receive overflow */ |
| 657 | #define UDCCS_IO_DME (1 << 3) /* DMA enable */ | 657 | #define UDCCS_IO_DME (1 << 3) /* DMA enable */ |
| 658 | #define UDCCS_IO_RNE (1 << 6) /* Receive FIFO not empty */ | 658 | #define UDCCS_IO_RNE (1 << 6) /* Receive FIFO not empty */ |
| 659 | #define UDCCS_IO_RSP (1 << 7) /* Receive short packet */ | 659 | #define UDCCS_IO_RSP (1 << 7) /* Receive short packet */ |
diff --git a/include/asm-arm/locks.h b/include/asm-arm/locks.h index f08dc8447913..852220eecdbc 100644 --- a/include/asm-arm/locks.h +++ b/include/asm-arm/locks.h | |||
| @@ -103,7 +103,7 @@ | |||
| 103 | ({ \ | 103 | ({ \ |
| 104 | smp_mb(); \ | 104 | smp_mb(); \ |
| 105 | __asm__ __volatile__( \ | 105 | __asm__ __volatile__( \ |
| 106 | "@ up_op_read\n" \ | 106 | "@ up_op_write\n" \ |
| 107 | "1: ldrex lr, [%0]\n" \ | 107 | "1: ldrex lr, [%0]\n" \ |
| 108 | " adds lr, lr, %1\n" \ | 108 | " adds lr, lr, %1\n" \ |
| 109 | " strex ip, lr, [%0]\n" \ | 109 | " strex ip, lr, [%0]\n" \ |
| @@ -231,7 +231,7 @@ | |||
| 231 | #define __up_op_write(ptr,wake) \ | 231 | #define __up_op_write(ptr,wake) \ |
| 232 | ({ \ | 232 | ({ \ |
| 233 | __asm__ __volatile__( \ | 233 | __asm__ __volatile__( \ |
| 234 | "@ up_op_read\n" \ | 234 | "@ up_op_write\n" \ |
| 235 | " mrs ip, cpsr\n" \ | 235 | " mrs ip, cpsr\n" \ |
| 236 | " orr lr, ip, #128\n" \ | 236 | " orr lr, ip, #128\n" \ |
| 237 | " msr cpsr_c, lr\n" \ | 237 | " msr cpsr_c, lr\n" \ |
diff --git a/include/linux/bootmem.h b/include/linux/bootmem.h index 82bd8842d11c..3b03b0b868dd 100644 --- a/include/linux/bootmem.h +++ b/include/linux/bootmem.h | |||
| @@ -43,7 +43,7 @@ typedef struct bootmem_data { | |||
| 43 | extern unsigned long __init bootmem_bootmap_pages (unsigned long); | 43 | extern unsigned long __init bootmem_bootmap_pages (unsigned long); |
| 44 | extern unsigned long __init init_bootmem (unsigned long addr, unsigned long memend); | 44 | extern unsigned long __init init_bootmem (unsigned long addr, unsigned long memend); |
| 45 | extern void __init free_bootmem (unsigned long addr, unsigned long size); | 45 | extern void __init free_bootmem (unsigned long addr, unsigned long size); |
| 46 | extern void * __init __alloc_bootmem (unsigned long size, unsigned long align, unsigned long goal); | 46 | extern void * __init __alloc_bootmem_limit (unsigned long size, unsigned long align, unsigned long goal, unsigned long limit); |
| 47 | #ifndef CONFIG_HAVE_ARCH_BOOTMEM_NODE | 47 | #ifndef CONFIG_HAVE_ARCH_BOOTMEM_NODE |
| 48 | extern void __init reserve_bootmem (unsigned long addr, unsigned long size); | 48 | extern void __init reserve_bootmem (unsigned long addr, unsigned long size); |
| 49 | #define alloc_bootmem(x) \ | 49 | #define alloc_bootmem(x) \ |
| @@ -54,6 +54,16 @@ extern void __init reserve_bootmem (unsigned long addr, unsigned long size); | |||
| 54 | __alloc_bootmem((x), PAGE_SIZE, __pa(MAX_DMA_ADDRESS)) | 54 | __alloc_bootmem((x), PAGE_SIZE, __pa(MAX_DMA_ADDRESS)) |
| 55 | #define alloc_bootmem_low_pages(x) \ | 55 | #define alloc_bootmem_low_pages(x) \ |
| 56 | __alloc_bootmem((x), PAGE_SIZE, 0) | 56 | __alloc_bootmem((x), PAGE_SIZE, 0) |
| 57 | |||
| 58 | #define alloc_bootmem_limit(x, limit) \ | ||
| 59 | __alloc_bootmem_limit((x), SMP_CACHE_BYTES, __pa(MAX_DMA_ADDRESS), (limit)) | ||
| 60 | #define alloc_bootmem_low_limit(x, limit) \ | ||
| 61 | __alloc_bootmem_limit((x), SMP_CACHE_BYTES, 0, (limit)) | ||
| 62 | #define alloc_bootmem_pages_limit(x, limit) \ | ||
| 63 | __alloc_bootmem_limit((x), PAGE_SIZE, __pa(MAX_DMA_ADDRESS), (limit)) | ||
| 64 | #define alloc_bootmem_low_pages_limit(x, limit) \ | ||
| 65 | __alloc_bootmem_limit((x), PAGE_SIZE, 0, (limit)) | ||
| 66 | |||
| 57 | #endif /* !CONFIG_HAVE_ARCH_BOOTMEM_NODE */ | 67 | #endif /* !CONFIG_HAVE_ARCH_BOOTMEM_NODE */ |
| 58 | extern unsigned long __init free_all_bootmem (void); | 68 | extern unsigned long __init free_all_bootmem (void); |
| 59 | 69 | ||
| @@ -61,7 +71,7 @@ extern unsigned long __init init_bootmem_node (pg_data_t *pgdat, unsigned long f | |||
| 61 | extern void __init reserve_bootmem_node (pg_data_t *pgdat, unsigned long physaddr, unsigned long size); | 71 | extern void __init reserve_bootmem_node (pg_data_t *pgdat, unsigned long physaddr, unsigned long size); |
| 62 | extern void __init free_bootmem_node (pg_data_t *pgdat, unsigned long addr, unsigned long size); | 72 | extern void __init free_bootmem_node (pg_data_t *pgdat, unsigned long addr, unsigned long size); |
| 63 | extern unsigned long __init free_all_bootmem_node (pg_data_t *pgdat); | 73 | extern unsigned long __init free_all_bootmem_node (pg_data_t *pgdat); |
| 64 | extern void * __init __alloc_bootmem_node (pg_data_t *pgdat, unsigned long size, unsigned long align, unsigned long goal); | 74 | extern void * __init __alloc_bootmem_node_limit (pg_data_t *pgdat, unsigned long size, unsigned long align, unsigned long goal, unsigned long limit); |
| 65 | #ifndef CONFIG_HAVE_ARCH_BOOTMEM_NODE | 75 | #ifndef CONFIG_HAVE_ARCH_BOOTMEM_NODE |
| 66 | #define alloc_bootmem_node(pgdat, x) \ | 76 | #define alloc_bootmem_node(pgdat, x) \ |
| 67 | __alloc_bootmem_node((pgdat), (x), SMP_CACHE_BYTES, __pa(MAX_DMA_ADDRESS)) | 77 | __alloc_bootmem_node((pgdat), (x), SMP_CACHE_BYTES, __pa(MAX_DMA_ADDRESS)) |
| @@ -69,6 +79,14 @@ extern void * __init __alloc_bootmem_node (pg_data_t *pgdat, unsigned long size, | |||
| 69 | __alloc_bootmem_node((pgdat), (x), PAGE_SIZE, __pa(MAX_DMA_ADDRESS)) | 79 | __alloc_bootmem_node((pgdat), (x), PAGE_SIZE, __pa(MAX_DMA_ADDRESS)) |
| 70 | #define alloc_bootmem_low_pages_node(pgdat, x) \ | 80 | #define alloc_bootmem_low_pages_node(pgdat, x) \ |
| 71 | __alloc_bootmem_node((pgdat), (x), PAGE_SIZE, 0) | 81 | __alloc_bootmem_node((pgdat), (x), PAGE_SIZE, 0) |
| 82 | |||
| 83 | #define alloc_bootmem_node_limit(pgdat, x, limit) \ | ||
| 84 | __alloc_bootmem_node_limit((pgdat), (x), SMP_CACHE_BYTES, __pa(MAX_DMA_ADDRESS), (limit)) | ||
| 85 | #define alloc_bootmem_pages_node_limit(pgdat, x, limit) \ | ||
| 86 | __alloc_bootmem_node_limit((pgdat), (x), PAGE_SIZE, __pa(MAX_DMA_ADDRESS), (limit)) | ||
| 87 | #define alloc_bootmem_low_pages_node_limit(pgdat, x, limit) \ | ||
| 88 | __alloc_bootmem_node_limit((pgdat), (x), PAGE_SIZE, 0, (limit)) | ||
| 89 | |||
| 72 | #endif /* !CONFIG_HAVE_ARCH_BOOTMEM_NODE */ | 90 | #endif /* !CONFIG_HAVE_ARCH_BOOTMEM_NODE */ |
| 73 | 91 | ||
| 74 | #ifdef CONFIG_HAVE_ARCH_ALLOC_REMAP | 92 | #ifdef CONFIG_HAVE_ARCH_ALLOC_REMAP |
| @@ -105,5 +123,15 @@ extern void *__init alloc_large_system_hash(const char *tablename, | |||
| 105 | #endif | 123 | #endif |
| 106 | extern int __initdata hashdist; /* Distribute hashes across NUMA nodes? */ | 124 | extern int __initdata hashdist; /* Distribute hashes across NUMA nodes? */ |
| 107 | 125 | ||
| 126 | static inline void *__alloc_bootmem (unsigned long size, unsigned long align, unsigned long goal) | ||
| 127 | { | ||
| 128 | return __alloc_bootmem_limit(size, align, goal, 0); | ||
| 129 | } | ||
| 130 | |||
| 131 | static inline void *__alloc_bootmem_node (pg_data_t *pgdat, unsigned long size, unsigned long align, | ||
| 132 | unsigned long goal) | ||
| 133 | { | ||
| 134 | return __alloc_bootmem_node_limit(pgdat, size, align, goal, 0); | ||
| 135 | } | ||
| 108 | 136 | ||
| 109 | #endif /* _LINUX_BOOTMEM_H */ | 137 | #endif /* _LINUX_BOOTMEM_H */ |
diff --git a/include/linux/hugetlb.h b/include/linux/hugetlb.h index e670b0d13fe0..42cb7d70f9ac 100644 --- a/include/linux/hugetlb.h +++ b/include/linux/hugetlb.h | |||
| @@ -155,11 +155,24 @@ static inline void set_file_hugepages(struct file *file) | |||
| 155 | { | 155 | { |
| 156 | file->f_op = &hugetlbfs_file_operations; | 156 | file->f_op = &hugetlbfs_file_operations; |
| 157 | } | 157 | } |
| 158 | |||
| 159 | static inline int valid_hugetlb_file_off(struct vm_area_struct *vma, | ||
| 160 | unsigned long address) | ||
| 161 | { | ||
| 162 | struct inode *inode = vma->vm_file->f_dentry->d_inode; | ||
| 163 | loff_t file_off = address - vma->vm_start; | ||
| 164 | |||
| 165 | file_off += (vma->vm_pgoff << PAGE_SHIFT); | ||
| 166 | |||
| 167 | return (file_off < inode->i_size); | ||
| 168 | } | ||
| 169 | |||
| 158 | #else /* !CONFIG_HUGETLBFS */ | 170 | #else /* !CONFIG_HUGETLBFS */ |
| 159 | 171 | ||
| 160 | #define is_file_hugepages(file) 0 | 172 | #define is_file_hugepages(file) 0 |
| 161 | #define set_file_hugepages(file) BUG() | 173 | #define set_file_hugepages(file) BUG() |
| 162 | #define hugetlb_zero_setup(size) ERR_PTR(-ENOSYS) | 174 | #define hugetlb_zero_setup(size) ERR_PTR(-ENOSYS) |
| 175 | #define valid_hugetlb_file_off(vma, address) 0 | ||
| 163 | 176 | ||
| 164 | #endif /* !CONFIG_HUGETLBFS */ | 177 | #endif /* !CONFIG_HUGETLBFS */ |
| 165 | 178 | ||
