diff options
| author | David Teigland <teigland@redhat.com> | 2006-04-27 11:49:55 -0400 |
|---|---|---|
| committer | Steven Whitehouse <swhiteho@redhat.com> | 2006-04-27 11:49:55 -0400 |
| commit | d26046bb0aff707aac38a9bf3dd56fa39b28a399 (patch) | |
| tree | c59e0514ca45cb56c3cbf7920a4590dad6975bcd /include | |
| parent | e7f5c01caddbad150dcf003f76cd5aac413f4c50 (diff) | |
| parent | 2be4d50295e2b6f62c07b614e1b103e280dddb84 (diff) | |
Merge branch 'master'
Diffstat (limited to 'include')
| -rw-r--r-- | include/asm-i386/unistd.h | 3 | ||||
| -rw-r--r-- | include/asm-ia64/unistd.h | 3 | ||||
| -rw-r--r-- | include/asm-parisc/io.h | 17 | ||||
| -rw-r--r-- | include/asm-parisc/page.h | 25 | ||||
| -rw-r--r-- | include/asm-parisc/pgtable.h | 63 | ||||
| -rw-r--r-- | include/asm-parisc/unistd.h | 8 | ||||
| -rw-r--r-- | include/asm-powerpc/iommu.h | 7 | ||||
| -rw-r--r-- | include/asm-powerpc/machdep.h | 6 | ||||
| -rw-r--r-- | include/asm-powerpc/unistd.h | 3 | ||||
| -rw-r--r-- | include/asm-sparc/unistd.h | 2 | ||||
| -rw-r--r-- | include/asm-sparc64/unistd.h | 2 | ||||
| -rw-r--r-- | include/asm-x86_64/unistd.h | 4 | ||||
| -rw-r--r-- | include/linux/netdevice.h | 18 | ||||
| -rw-r--r-- | include/linux/netfilter/x_tables.h | 4 | ||||
| -rw-r--r-- | include/linux/pipe_fs_i.h | 17 | ||||
| -rw-r--r-- | include/linux/syscalls.h | 3 | ||||
| -rw-r--r-- | include/net/ieee80211softmac.h | 5 |
17 files changed, 135 insertions, 55 deletions
diff --git a/include/asm-i386/unistd.h b/include/asm-i386/unistd.h index d81d6cfc1bb4..eb4b152c82fc 100644 --- a/include/asm-i386/unistd.h +++ b/include/asm-i386/unistd.h | |||
| @@ -321,8 +321,9 @@ | |||
| 321 | #define __NR_splice 313 | 321 | #define __NR_splice 313 |
| 322 | #define __NR_sync_file_range 314 | 322 | #define __NR_sync_file_range 314 |
| 323 | #define __NR_tee 315 | 323 | #define __NR_tee 315 |
| 324 | #define __NR_vmsplice 316 | ||
| 324 | 325 | ||
| 325 | #define NR_syscalls 316 | 326 | #define NR_syscalls 317 |
| 326 | 327 | ||
| 327 | /* | 328 | /* |
| 328 | * user-visible error numbers are in the range -1 - -128: see | 329 | * user-visible error numbers are in the range -1 - -128: see |
diff --git a/include/asm-ia64/unistd.h b/include/asm-ia64/unistd.h index a40ebec6aeeb..7107763168bf 100644 --- a/include/asm-ia64/unistd.h +++ b/include/asm-ia64/unistd.h | |||
| @@ -290,12 +290,13 @@ | |||
| 290 | #define __NR_get_robust_list 1299 | 290 | #define __NR_get_robust_list 1299 |
| 291 | #define __NR_sync_file_range 1300 | 291 | #define __NR_sync_file_range 1300 |
| 292 | #define __NR_tee 1301 | 292 | #define __NR_tee 1301 |
| 293 | #define __NR_vmsplice 1302 | ||
| 293 | 294 | ||
| 294 | #ifdef __KERNEL__ | 295 | #ifdef __KERNEL__ |
| 295 | 296 | ||
| 296 | #include <linux/config.h> | 297 | #include <linux/config.h> |
| 297 | 298 | ||
| 298 | #define NR_syscalls 278 /* length of syscall table */ | 299 | #define NR_syscalls 279 /* length of syscall table */ |
| 299 | 300 | ||
| 300 | #define __ARCH_WANT_SYS_RT_SIGACTION | 301 | #define __ARCH_WANT_SYS_RT_SIGACTION |
| 301 | 302 | ||
diff --git a/include/asm-parisc/io.h b/include/asm-parisc/io.h index 29da31194b91..244f6b8883f4 100644 --- a/include/asm-parisc/io.h +++ b/include/asm-parisc/io.h | |||
| @@ -126,24 +126,17 @@ static inline void gsc_writeq(unsigned long long val, unsigned long addr) | |||
| 126 | 126 | ||
| 127 | extern void __iomem * __ioremap(unsigned long offset, unsigned long size, unsigned long flags); | 127 | extern void __iomem * __ioremap(unsigned long offset, unsigned long size, unsigned long flags); |
| 128 | 128 | ||
| 129 | extern inline void __iomem * ioremap(unsigned long offset, unsigned long size) | 129 | /* Most machines react poorly to I/O-space being cacheable... Instead let's |
| 130 | { | 130 | * define ioremap() in terms of ioremap_nocache(). |
| 131 | return __ioremap(offset, size, 0); | ||
| 132 | } | ||
| 133 | |||
| 134 | /* | ||
| 135 | * This one maps high address device memory and turns off caching for that area. | ||
| 136 | * it's useful if some control registers are in such an area and write combining | ||
| 137 | * or read caching is not desirable: | ||
| 138 | */ | 131 | */ |
| 139 | extern inline void * ioremap_nocache(unsigned long offset, unsigned long size) | 132 | extern inline void __iomem * ioremap(unsigned long offset, unsigned long size) |
| 140 | { | 133 | { |
| 141 | return __ioremap(offset, size, _PAGE_NO_CACHE /* _PAGE_PCD */); | 134 | return __ioremap(offset, size, _PAGE_NO_CACHE); |
| 142 | } | 135 | } |
| 136 | #define ioremap_nocache(off, sz) ioremap((off), (sz)) | ||
| 143 | 137 | ||
| 144 | extern void iounmap(void __iomem *addr); | 138 | extern void iounmap(void __iomem *addr); |
| 145 | 139 | ||
| 146 | |||
| 147 | static inline unsigned char __raw_readb(const volatile void __iomem *addr) | 140 | static inline unsigned char __raw_readb(const volatile void __iomem *addr) |
| 148 | { | 141 | { |
| 149 | return (*(volatile unsigned char __force *) (addr)); | 142 | return (*(volatile unsigned char __force *) (addr)); |
diff --git a/include/asm-parisc/page.h b/include/asm-parisc/page.h index 45e02aa5bf4b..c0dd461fb8f1 100644 --- a/include/asm-parisc/page.h +++ b/include/asm-parisc/page.h | |||
| @@ -1,13 +1,30 @@ | |||
| 1 | #ifndef _PARISC_PAGE_H | 1 | #ifndef _PARISC_PAGE_H |
| 2 | #define _PARISC_PAGE_H | 2 | #define _PARISC_PAGE_H |
| 3 | 3 | ||
| 4 | /* PAGE_SHIFT determines the page size */ | 4 | #if !defined(__KERNEL__) |
| 5 | #define PAGE_SHIFT 12 | 5 | /* this is for userspace applications (4k page size) */ |
| 6 | #define PAGE_SIZE (1UL << PAGE_SHIFT) | 6 | # define PAGE_SHIFT 12 /* 4k */ |
| 7 | #define PAGE_MASK (~(PAGE_SIZE-1)) | 7 | # define PAGE_SIZE (1UL << PAGE_SHIFT) |
| 8 | # define PAGE_MASK (~(PAGE_SIZE-1)) | ||
| 9 | #endif | ||
| 10 | |||
| 8 | 11 | ||
| 9 | #ifdef __KERNEL__ | 12 | #ifdef __KERNEL__ |
| 10 | #include <linux/config.h> | 13 | #include <linux/config.h> |
| 14 | |||
| 15 | #if defined(CONFIG_PARISC_PAGE_SIZE_4KB) | ||
| 16 | # define PAGE_SHIFT 12 /* 4k */ | ||
| 17 | #elif defined(CONFIG_PARISC_PAGE_SIZE_16KB) | ||
| 18 | # define PAGE_SHIFT 14 /* 16k */ | ||
| 19 | #elif defined(CONFIG_PARISC_PAGE_SIZE_64KB) | ||
| 20 | # define PAGE_SHIFT 16 /* 64k */ | ||
| 21 | #else | ||
| 22 | # error "unknown default kernel page size" | ||
| 23 | #endif | ||
| 24 | #define PAGE_SIZE (1UL << PAGE_SHIFT) | ||
| 25 | #define PAGE_MASK (~(PAGE_SIZE-1)) | ||
| 26 | |||
| 27 | |||
| 11 | #ifndef __ASSEMBLY__ | 28 | #ifndef __ASSEMBLY__ |
| 12 | 29 | ||
| 13 | #include <asm/types.h> | 30 | #include <asm/types.h> |
diff --git a/include/asm-parisc/pgtable.h b/include/asm-parisc/pgtable.h index 4e34c6b44059..aec089eb8b85 100644 --- a/include/asm-parisc/pgtable.h +++ b/include/asm-parisc/pgtable.h | |||
| @@ -59,16 +59,15 @@ | |||
| 59 | #define ISTACK_SIZE 32768 /* Interrupt Stack Size */ | 59 | #define ISTACK_SIZE 32768 /* Interrupt Stack Size */ |
| 60 | #define ISTACK_ORDER 3 | 60 | #define ISTACK_ORDER 3 |
| 61 | 61 | ||
| 62 | /* This is the size of the initially mapped kernel memory (i.e. currently | 62 | /* This is the size of the initially mapped kernel memory */ |
| 63 | * 0 to 1<<23 == 8MB */ | ||
| 64 | #ifdef CONFIG_64BIT | 63 | #ifdef CONFIG_64BIT |
| 65 | #define KERNEL_INITIAL_ORDER 24 | 64 | #define KERNEL_INITIAL_ORDER 24 /* 0 to 1<<24 = 16MB */ |
| 66 | #else | 65 | #else |
| 67 | #define KERNEL_INITIAL_ORDER 23 | 66 | #define KERNEL_INITIAL_ORDER 23 /* 0 to 1<<23 = 8MB */ |
| 68 | #endif | 67 | #endif |
| 69 | #define KERNEL_INITIAL_SIZE (1 << KERNEL_INITIAL_ORDER) | 68 | #define KERNEL_INITIAL_SIZE (1 << KERNEL_INITIAL_ORDER) |
| 70 | 69 | ||
| 71 | #ifdef CONFIG_64BIT | 70 | #if defined(CONFIG_64BIT) && defined(CONFIG_PARISC_PAGE_SIZE_4KB) |
| 72 | #define PT_NLEVELS 3 | 71 | #define PT_NLEVELS 3 |
| 73 | #define PGD_ORDER 1 /* Number of pages per pgd */ | 72 | #define PGD_ORDER 1 /* Number of pages per pgd */ |
| 74 | #define PMD_ORDER 1 /* Number of pages per pmd */ | 73 | #define PMD_ORDER 1 /* Number of pages per pmd */ |
| @@ -111,11 +110,15 @@ | |||
| 111 | #define MAX_ADDRBITS (PGDIR_SHIFT + BITS_PER_PGD) | 110 | #define MAX_ADDRBITS (PGDIR_SHIFT + BITS_PER_PGD) |
| 112 | #define MAX_ADDRESS (1UL << MAX_ADDRBITS) | 111 | #define MAX_ADDRESS (1UL << MAX_ADDRBITS) |
| 113 | 112 | ||
| 114 | #define SPACEID_SHIFT (MAX_ADDRBITS - 32) | 113 | #define SPACEID_SHIFT (MAX_ADDRBITS - 32) |
| 115 | 114 | ||
| 116 | /* This calculates the number of initial pages we need for the initial | 115 | /* This calculates the number of initial pages we need for the initial |
| 117 | * page tables */ | 116 | * page tables */ |
| 118 | #define PT_INITIAL (1 << (KERNEL_INITIAL_ORDER - PMD_SHIFT)) | 117 | #if (KERNEL_INITIAL_ORDER) >= (PMD_SHIFT) |
| 118 | # define PT_INITIAL (1 << (KERNEL_INITIAL_ORDER - PMD_SHIFT)) | ||
| 119 | #else | ||
| 120 | # define PT_INITIAL (1) /* all initial PTEs fit into one page */ | ||
| 121 | #endif | ||
| 119 | 122 | ||
| 120 | /* | 123 | /* |
| 121 | * pgd entries used up by user/kernel: | 124 | * pgd entries used up by user/kernel: |
| @@ -160,6 +163,10 @@ extern void *vmalloc_start; | |||
| 160 | * to zero */ | 163 | * to zero */ |
| 161 | #define PTE_SHIFT xlate_pabit(_PAGE_USER_BIT) | 164 | #define PTE_SHIFT xlate_pabit(_PAGE_USER_BIT) |
| 162 | 165 | ||
| 166 | /* PFN_PTE_SHIFT defines the shift of a PTE value to access the PFN field */ | ||
| 167 | #define PFN_PTE_SHIFT 12 | ||
| 168 | |||
| 169 | |||
| 163 | /* this is how many bits may be used by the file functions */ | 170 | /* this is how many bits may be used by the file functions */ |
| 164 | #define PTE_FILE_MAX_BITS (BITS_PER_LONG - PTE_SHIFT) | 171 | #define PTE_FILE_MAX_BITS (BITS_PER_LONG - PTE_SHIFT) |
| 165 | 172 | ||
| @@ -188,7 +195,8 @@ extern void *vmalloc_start; | |||
| 188 | /* The pgd/pmd contains a ptr (in phys addr space); since all pgds/pmds | 195 | /* The pgd/pmd contains a ptr (in phys addr space); since all pgds/pmds |
| 189 | * are page-aligned, we don't care about the PAGE_OFFSET bits, except | 196 | * are page-aligned, we don't care about the PAGE_OFFSET bits, except |
| 190 | * for a few meta-information bits, so we shift the address to be | 197 | * for a few meta-information bits, so we shift the address to be |
| 191 | * able to effectively address 40-bits of physical address space. */ | 198 | * able to effectively address 40/42/44-bits of physical address space |
| 199 | * depending on 4k/16k/64k PAGE_SIZE */ | ||
| 192 | #define _PxD_PRESENT_BIT 31 | 200 | #define _PxD_PRESENT_BIT 31 |
| 193 | #define _PxD_ATTACHED_BIT 30 | 201 | #define _PxD_ATTACHED_BIT 30 |
| 194 | #define _PxD_VALID_BIT 29 | 202 | #define _PxD_VALID_BIT 29 |
| @@ -198,7 +206,7 @@ extern void *vmalloc_start; | |||
| 198 | #define PxD_FLAG_VALID (1 << xlate_pabit(_PxD_VALID_BIT)) | 206 | #define PxD_FLAG_VALID (1 << xlate_pabit(_PxD_VALID_BIT)) |
| 199 | #define PxD_FLAG_MASK (0xf) | 207 | #define PxD_FLAG_MASK (0xf) |
| 200 | #define PxD_FLAG_SHIFT (4) | 208 | #define PxD_FLAG_SHIFT (4) |
| 201 | #define PxD_VALUE_SHIFT (8) | 209 | #define PxD_VALUE_SHIFT (8) /* (PAGE_SHIFT-PxD_FLAG_SHIFT) */ |
| 202 | 210 | ||
| 203 | #ifndef __ASSEMBLY__ | 211 | #ifndef __ASSEMBLY__ |
| 204 | 212 | ||
| @@ -246,6 +254,7 @@ extern void *vmalloc_start; | |||
| 246 | #define __S110 PAGE_RWX | 254 | #define __S110 PAGE_RWX |
| 247 | #define __S111 PAGE_RWX | 255 | #define __S111 PAGE_RWX |
| 248 | 256 | ||
| 257 | |||
| 249 | extern pgd_t swapper_pg_dir[]; /* declared in init_task.c */ | 258 | extern pgd_t swapper_pg_dir[]; /* declared in init_task.c */ |
| 250 | 259 | ||
| 251 | /* initial page tables for 0-8MB for kernel */ | 260 | /* initial page tables for 0-8MB for kernel */ |
| @@ -272,7 +281,7 @@ extern unsigned long *empty_zero_page; | |||
| 272 | #define pgd_flag(x) (pgd_val(x) & PxD_FLAG_MASK) | 281 | #define pgd_flag(x) (pgd_val(x) & PxD_FLAG_MASK) |
| 273 | #define pgd_address(x) ((unsigned long)(pgd_val(x) &~ PxD_FLAG_MASK) << PxD_VALUE_SHIFT) | 282 | #define pgd_address(x) ((unsigned long)(pgd_val(x) &~ PxD_FLAG_MASK) << PxD_VALUE_SHIFT) |
| 274 | 283 | ||
| 275 | #ifdef CONFIG_64BIT | 284 | #if PT_NLEVELS == 3 |
| 276 | /* The first entry of the permanent pmd is not there if it contains | 285 | /* The first entry of the permanent pmd is not there if it contains |
| 277 | * the gateway marker */ | 286 | * the gateway marker */ |
| 278 | #define pmd_none(x) (!pmd_val(x) || pmd_flag(x) == PxD_FLAG_ATTACHED) | 287 | #define pmd_none(x) (!pmd_val(x) || pmd_flag(x) == PxD_FLAG_ATTACHED) |
| @@ -282,7 +291,7 @@ extern unsigned long *empty_zero_page; | |||
| 282 | #define pmd_bad(x) (!(pmd_flag(x) & PxD_FLAG_VALID)) | 291 | #define pmd_bad(x) (!(pmd_flag(x) & PxD_FLAG_VALID)) |
| 283 | #define pmd_present(x) (pmd_flag(x) & PxD_FLAG_PRESENT) | 292 | #define pmd_present(x) (pmd_flag(x) & PxD_FLAG_PRESENT) |
| 284 | static inline void pmd_clear(pmd_t *pmd) { | 293 | static inline void pmd_clear(pmd_t *pmd) { |
| 285 | #ifdef CONFIG_64BIT | 294 | #if PT_NLEVELS == 3 |
| 286 | if (pmd_flag(*pmd) & PxD_FLAG_ATTACHED) | 295 | if (pmd_flag(*pmd) & PxD_FLAG_ATTACHED) |
| 287 | /* This is the entry pointing to the permanent pmd | 296 | /* This is the entry pointing to the permanent pmd |
| 288 | * attached to the pgd; cannot clear it */ | 297 | * attached to the pgd; cannot clear it */ |
| @@ -303,7 +312,7 @@ static inline void pmd_clear(pmd_t *pmd) { | |||
| 303 | #define pgd_bad(x) (!(pgd_flag(x) & PxD_FLAG_VALID)) | 312 | #define pgd_bad(x) (!(pgd_flag(x) & PxD_FLAG_VALID)) |
| 304 | #define pgd_present(x) (pgd_flag(x) & PxD_FLAG_PRESENT) | 313 | #define pgd_present(x) (pgd_flag(x) & PxD_FLAG_PRESENT) |
| 305 | static inline void pgd_clear(pgd_t *pgd) { | 314 | static inline void pgd_clear(pgd_t *pgd) { |
| 306 | #ifdef CONFIG_64BIT | 315 | #if PT_NLEVELS == 3 |
| 307 | if(pgd_flag(*pgd) & PxD_FLAG_ATTACHED) | 316 | if(pgd_flag(*pgd) & PxD_FLAG_ATTACHED) |
| 308 | /* This is the permanent pmd attached to the pgd; cannot | 317 | /* This is the permanent pmd attached to the pgd; cannot |
| 309 | * free it */ | 318 | * free it */ |
| @@ -351,7 +360,7 @@ extern inline pte_t pte_mkwrite(pte_t pte) { pte_val(pte) |= _PAGE_WRITE; return | |||
| 351 | ({ \ | 360 | ({ \ |
| 352 | pte_t __pte; \ | 361 | pte_t __pte; \ |
| 353 | \ | 362 | \ |
| 354 | pte_val(__pte) = ((addr)+pgprot_val(pgprot)); \ | 363 | pte_val(__pte) = ((((addr)>>PAGE_SHIFT)<<PFN_PTE_SHIFT) + pgprot_val(pgprot)); \ |
| 355 | \ | 364 | \ |
| 356 | __pte; \ | 365 | __pte; \ |
| 357 | }) | 366 | }) |
| @@ -361,20 +370,16 @@ extern inline pte_t pte_mkwrite(pte_t pte) { pte_val(pte) |= _PAGE_WRITE; return | |||
| 361 | static inline pte_t pfn_pte(unsigned long pfn, pgprot_t pgprot) | 370 | static inline pte_t pfn_pte(unsigned long pfn, pgprot_t pgprot) |
| 362 | { | 371 | { |
| 363 | pte_t pte; | 372 | pte_t pte; |
| 364 | pte_val(pte) = (pfn << PAGE_SHIFT) | pgprot_val(pgprot); | 373 | pte_val(pte) = (pfn << PFN_PTE_SHIFT) | pgprot_val(pgprot); |
| 365 | return pte; | 374 | return pte; |
| 366 | } | 375 | } |
| 367 | 376 | ||
| 368 | /* This takes a physical page address that is used by the remapping functions */ | ||
| 369 | #define mk_pte_phys(physpage, pgprot) \ | ||
| 370 | ({ pte_t __pte; pte_val(__pte) = physpage + pgprot_val(pgprot); __pte; }) | ||
| 371 | |||
| 372 | extern inline pte_t pte_modify(pte_t pte, pgprot_t newprot) | 377 | extern inline pte_t pte_modify(pte_t pte, pgprot_t newprot) |
| 373 | { pte_val(pte) = (pte_val(pte) & _PAGE_CHG_MASK) | pgprot_val(newprot); return pte; } | 378 | { pte_val(pte) = (pte_val(pte) & _PAGE_CHG_MASK) | pgprot_val(newprot); return pte; } |
| 374 | 379 | ||
| 375 | /* Permanent address of a page. On parisc we don't have highmem. */ | 380 | /* Permanent address of a page. On parisc we don't have highmem. */ |
| 376 | 381 | ||
| 377 | #define pte_pfn(x) (pte_val(x) >> PAGE_SHIFT) | 382 | #define pte_pfn(x) (pte_val(x) >> PFN_PTE_SHIFT) |
| 378 | 383 | ||
| 379 | #define pte_page(pte) (pfn_to_page(pte_pfn(pte))) | 384 | #define pte_page(pte) (pfn_to_page(pte_pfn(pte))) |
| 380 | 385 | ||
| @@ -499,6 +504,26 @@ static inline void ptep_set_wrprotect(struct mm_struct *mm, unsigned long addr, | |||
| 499 | 504 | ||
| 500 | #endif /* !__ASSEMBLY__ */ | 505 | #endif /* !__ASSEMBLY__ */ |
| 501 | 506 | ||
| 507 | |||
| 508 | /* TLB page size encoding - see table 3-1 in parisc20.pdf */ | ||
| 509 | #define _PAGE_SIZE_ENCODING_4K 0 | ||
| 510 | #define _PAGE_SIZE_ENCODING_16K 1 | ||
| 511 | #define _PAGE_SIZE_ENCODING_64K 2 | ||
| 512 | #define _PAGE_SIZE_ENCODING_256K 3 | ||
| 513 | #define _PAGE_SIZE_ENCODING_1M 4 | ||
| 514 | #define _PAGE_SIZE_ENCODING_4M 5 | ||
| 515 | #define _PAGE_SIZE_ENCODING_16M 6 | ||
| 516 | #define _PAGE_SIZE_ENCODING_64M 7 | ||
| 517 | |||
| 518 | #if defined(CONFIG_PARISC_PAGE_SIZE_4KB) | ||
| 519 | # define _PAGE_SIZE_ENCODING_DEFAULT _PAGE_SIZE_ENCODING_4K | ||
| 520 | #elif defined(CONFIG_PARISC_PAGE_SIZE_16KB) | ||
| 521 | # define _PAGE_SIZE_ENCODING_DEFAULT _PAGE_SIZE_ENCODING_16K | ||
| 522 | #elif defined(CONFIG_PARISC_PAGE_SIZE_64KB) | ||
| 523 | # define _PAGE_SIZE_ENCODING_DEFAULT _PAGE_SIZE_ENCODING_64K | ||
| 524 | #endif | ||
| 525 | |||
| 526 | |||
| 502 | #define io_remap_pfn_range(vma, vaddr, pfn, size, prot) \ | 527 | #define io_remap_pfn_range(vma, vaddr, pfn, size, prot) \ |
| 503 | remap_pfn_range(vma, vaddr, pfn, size, prot) | 528 | remap_pfn_range(vma, vaddr, pfn, size, prot) |
| 504 | 529 | ||
diff --git a/include/asm-parisc/unistd.h b/include/asm-parisc/unistd.h index c56fccbf34ad..0e1a30be2e30 100644 --- a/include/asm-parisc/unistd.h +++ b/include/asm-parisc/unistd.h | |||
| @@ -780,8 +780,14 @@ | |||
| 780 | #define __NR_readlinkat (__NR_Linux + 285) | 780 | #define __NR_readlinkat (__NR_Linux + 285) |
| 781 | #define __NR_fchmodat (__NR_Linux + 286) | 781 | #define __NR_fchmodat (__NR_Linux + 286) |
| 782 | #define __NR_faccessat (__NR_Linux + 287) | 782 | #define __NR_faccessat (__NR_Linux + 287) |
| 783 | #define __NR_unshare (__NR_Linux + 288) | ||
| 784 | #define __NR_set_robust_list (__NR_Linux + 289) | ||
| 785 | #define __NR_get_robust_list (__NR_Linux + 290) | ||
| 786 | #define __NR_splice (__NR_Linux + 291) | ||
| 787 | #define __NR_sync_file_range (__NR_Linux + 292) | ||
| 788 | #define __NR_tee (__NR_Linux + 293) | ||
| 783 | 789 | ||
| 784 | #define __NR_Linux_syscalls 288 | 790 | #define __NR_Linux_syscalls 294 |
| 785 | 791 | ||
| 786 | #define HPUX_GATEWAY_ADDR 0xC0000004 | 792 | #define HPUX_GATEWAY_ADDR 0xC0000004 |
| 787 | #define LINUX_GATEWAY_ADDR 0x100 | 793 | #define LINUX_GATEWAY_ADDR 0x100 |
diff --git a/include/asm-powerpc/iommu.h b/include/asm-powerpc/iommu.h index d5677cbec200..18ca29e9105a 100644 --- a/include/asm-powerpc/iommu.h +++ b/include/asm-powerpc/iommu.h | |||
| @@ -70,17 +70,18 @@ extern void iommu_free_table(struct device_node *dn); | |||
| 70 | extern struct iommu_table *iommu_init_table(struct iommu_table * tbl); | 70 | extern struct iommu_table *iommu_init_table(struct iommu_table * tbl); |
| 71 | 71 | ||
| 72 | extern int iommu_map_sg(struct device *dev, struct iommu_table *tbl, | 72 | extern int iommu_map_sg(struct device *dev, struct iommu_table *tbl, |
| 73 | struct scatterlist *sglist, int nelems, | 73 | struct scatterlist *sglist, int nelems, unsigned long mask, |
| 74 | enum dma_data_direction direction); | 74 | enum dma_data_direction direction); |
| 75 | extern void iommu_unmap_sg(struct iommu_table *tbl, struct scatterlist *sglist, | 75 | extern void iommu_unmap_sg(struct iommu_table *tbl, struct scatterlist *sglist, |
| 76 | int nelems, enum dma_data_direction direction); | 76 | int nelems, enum dma_data_direction direction); |
| 77 | 77 | ||
| 78 | extern void *iommu_alloc_coherent(struct iommu_table *tbl, size_t size, | 78 | extern void *iommu_alloc_coherent(struct iommu_table *tbl, size_t size, |
| 79 | dma_addr_t *dma_handle, gfp_t flag); | 79 | dma_addr_t *dma_handle, unsigned long mask, gfp_t flag); |
| 80 | extern void iommu_free_coherent(struct iommu_table *tbl, size_t size, | 80 | extern void iommu_free_coherent(struct iommu_table *tbl, size_t size, |
| 81 | void *vaddr, dma_addr_t dma_handle); | 81 | void *vaddr, dma_addr_t dma_handle); |
| 82 | extern dma_addr_t iommu_map_single(struct iommu_table *tbl, void *vaddr, | 82 | extern dma_addr_t iommu_map_single(struct iommu_table *tbl, void *vaddr, |
| 83 | size_t size, enum dma_data_direction direction); | 83 | size_t size, unsigned long mask, |
| 84 | enum dma_data_direction direction); | ||
| 84 | extern void iommu_unmap_single(struct iommu_table *tbl, dma_addr_t dma_handle, | 85 | extern void iommu_unmap_single(struct iommu_table *tbl, dma_addr_t dma_handle, |
| 85 | size_t size, enum dma_data_direction direction); | 86 | size_t size, enum dma_data_direction direction); |
| 86 | 87 | ||
diff --git a/include/asm-powerpc/machdep.h b/include/asm-powerpc/machdep.h index 5ed847680754..0f9254c18914 100644 --- a/include/asm-powerpc/machdep.h +++ b/include/asm-powerpc/machdep.h | |||
| @@ -253,7 +253,11 @@ extern struct machdep_calls *machine_id; | |||
| 253 | 253 | ||
| 254 | #define __machine_desc __attribute__ ((__section__ (".machine.desc"))) | 254 | #define __machine_desc __attribute__ ((__section__ (".machine.desc"))) |
| 255 | 255 | ||
| 256 | #define define_machine(name) struct machdep_calls mach_##name __machine_desc = | 256 | #define define_machine(name) \ |
| 257 | extern struct machdep_calls mach_##name; \ | ||
| 258 | EXPORT_SYMBOL(mach_##name); \ | ||
| 259 | struct machdep_calls mach_##name __machine_desc = | ||
| 260 | |||
| 257 | #define machine_is(name) \ | 261 | #define machine_is(name) \ |
| 258 | ({ \ | 262 | ({ \ |
| 259 | extern struct machdep_calls mach_##name \ | 263 | extern struct machdep_calls mach_##name \ |
diff --git a/include/asm-powerpc/unistd.h b/include/asm-powerpc/unistd.h index c612f1a62772..34325e292596 100644 --- a/include/asm-powerpc/unistd.h +++ b/include/asm-powerpc/unistd.h | |||
| @@ -303,8 +303,9 @@ | |||
| 303 | #define __NR_unshare 282 | 303 | #define __NR_unshare 282 |
| 304 | #define __NR_splice 283 | 304 | #define __NR_splice 283 |
| 305 | #define __NR_tee 284 | 305 | #define __NR_tee 284 |
| 306 | #define __NR_vmsplice 285 | ||
| 306 | 307 | ||
| 307 | #define __NR_syscalls 285 | 308 | #define __NR_syscalls 286 |
| 308 | 309 | ||
| 309 | #ifdef __KERNEL__ | 310 | #ifdef __KERNEL__ |
| 310 | #define __NR__exit __NR_exit | 311 | #define __NR__exit __NR_exit |
diff --git a/include/asm-sparc/unistd.h b/include/asm-sparc/unistd.h index 45feff893b8e..32a48f623e2b 100644 --- a/include/asm-sparc/unistd.h +++ b/include/asm-sparc/unistd.h | |||
| @@ -271,7 +271,7 @@ | |||
| 271 | #define __NR_getsid 252 | 271 | #define __NR_getsid 252 |
| 272 | #define __NR_fdatasync 253 | 272 | #define __NR_fdatasync 253 |
| 273 | #define __NR_nfsservctl 254 | 273 | #define __NR_nfsservctl 254 |
| 274 | #define __NR_sys_sync_file_range 255 | 274 | #define __NR_sync_file_range 255 |
| 275 | #define __NR_clock_settime 256 | 275 | #define __NR_clock_settime 256 |
| 276 | #define __NR_clock_gettime 257 | 276 | #define __NR_clock_gettime 257 |
| 277 | #define __NR_clock_getres 258 | 277 | #define __NR_clock_getres 258 |
diff --git a/include/asm-sparc64/unistd.h b/include/asm-sparc64/unistd.h index 597f6923a46e..ca80e8aca128 100644 --- a/include/asm-sparc64/unistd.h +++ b/include/asm-sparc64/unistd.h | |||
| @@ -273,7 +273,7 @@ | |||
| 273 | #define __NR_getsid 252 | 273 | #define __NR_getsid 252 |
| 274 | #define __NR_fdatasync 253 | 274 | #define __NR_fdatasync 253 |
| 275 | #define __NR_nfsservctl 254 | 275 | #define __NR_nfsservctl 254 |
| 276 | #define __NR_sys_sync_file_range 255 | 276 | #define __NR_sync_file_range 255 |
| 277 | #define __NR_clock_settime 256 | 277 | #define __NR_clock_settime 256 |
| 278 | #define __NR_clock_gettime 257 | 278 | #define __NR_clock_gettime 257 |
| 279 | #define __NR_clock_getres 258 | 279 | #define __NR_clock_getres 258 |
diff --git a/include/asm-x86_64/unistd.h b/include/asm-x86_64/unistd.h index 98c36eae567c..feb77cb8c044 100644 --- a/include/asm-x86_64/unistd.h +++ b/include/asm-x86_64/unistd.h | |||
| @@ -615,8 +615,10 @@ __SYSCALL(__NR_splice, sys_splice) | |||
| 615 | __SYSCALL(__NR_tee, sys_tee) | 615 | __SYSCALL(__NR_tee, sys_tee) |
| 616 | #define __NR_sync_file_range 277 | 616 | #define __NR_sync_file_range 277 |
| 617 | __SYSCALL(__NR_sync_file_range, sys_sync_file_range) | 617 | __SYSCALL(__NR_sync_file_range, sys_sync_file_range) |
| 618 | #define __NR_vmsplice 278 | ||
| 619 | __SYSCALL(__NR_vmsplice, sys_vmsplice) | ||
| 618 | 620 | ||
| 619 | #define __NR_syscall_max __NR_sync_file_range | 621 | #define __NR_syscall_max __NR_vmsplice |
| 620 | 622 | ||
| 621 | #ifndef __NO_STUBS | 623 | #ifndef __NO_STUBS |
| 622 | 624 | ||
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 40ccf8cc4239..01db7b88a2b1 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
| @@ -829,19 +829,21 @@ static inline void netif_rx_schedule(struct net_device *dev) | |||
| 829 | __netif_rx_schedule(dev); | 829 | __netif_rx_schedule(dev); |
| 830 | } | 830 | } |
| 831 | 831 | ||
| 832 | /* Try to reschedule poll. Called by dev->poll() after netif_rx_complete(). | 832 | |
| 833 | * Do not inline this? | 833 | static inline void __netif_rx_reschedule(struct net_device *dev, int undo) |
| 834 | */ | 834 | { |
| 835 | dev->quota += undo; | ||
| 836 | list_add_tail(&dev->poll_list, &__get_cpu_var(softnet_data).poll_list); | ||
| 837 | __raise_softirq_irqoff(NET_RX_SOFTIRQ); | ||
| 838 | } | ||
| 839 | |||
| 840 | /* Try to reschedule poll. Called by dev->poll() after netif_rx_complete(). */ | ||
| 835 | static inline int netif_rx_reschedule(struct net_device *dev, int undo) | 841 | static inline int netif_rx_reschedule(struct net_device *dev, int undo) |
| 836 | { | 842 | { |
| 837 | if (netif_rx_schedule_prep(dev)) { | 843 | if (netif_rx_schedule_prep(dev)) { |
| 838 | unsigned long flags; | 844 | unsigned long flags; |
| 839 | |||
| 840 | dev->quota += undo; | ||
| 841 | |||
| 842 | local_irq_save(flags); | 845 | local_irq_save(flags); |
| 843 | list_add_tail(&dev->poll_list, &__get_cpu_var(softnet_data).poll_list); | 846 | __netif_rx_reschedule(dev, undo); |
| 844 | __raise_softirq_irqoff(NET_RX_SOFTIRQ); | ||
| 845 | local_irq_restore(flags); | 847 | local_irq_restore(flags); |
| 846 | return 1; | 848 | return 1; |
| 847 | } | 849 | } |
diff --git a/include/linux/netfilter/x_tables.h b/include/linux/netfilter/x_tables.h index f6bdef82a322..38701454e197 100644 --- a/include/linux/netfilter/x_tables.h +++ b/include/linux/netfilter/x_tables.h | |||
| @@ -361,7 +361,11 @@ struct compat_xt_entry_target | |||
| 361 | 361 | ||
| 362 | struct compat_xt_counters | 362 | struct compat_xt_counters |
| 363 | { | 363 | { |
| 364 | #if defined(CONFIG_X86_64) || defined(CONFIG_IA64) | ||
| 364 | u_int32_t cnt[4]; | 365 | u_int32_t cnt[4]; |
| 366 | #else | ||
| 367 | u_int64_t cnt[2]; | ||
| 368 | #endif | ||
| 365 | }; | 369 | }; |
| 366 | 370 | ||
| 367 | struct compat_xt_counters_info | 371 | struct compat_xt_counters_info |
diff --git a/include/linux/pipe_fs_i.h b/include/linux/pipe_fs_i.h index ef7f33c0be19..0008d4bd4059 100644 --- a/include/linux/pipe_fs_i.h +++ b/include/linux/pipe_fs_i.h | |||
| @@ -61,4 +61,21 @@ void __free_pipe_info(struct pipe_inode_info *); | |||
| 61 | /* from/to, of course */ | 61 | /* from/to, of course */ |
| 62 | #define SPLICE_F_MORE (0x04) /* expect more data */ | 62 | #define SPLICE_F_MORE (0x04) /* expect more data */ |
| 63 | 63 | ||
| 64 | /* | ||
| 65 | * Passed to the actors | ||
| 66 | */ | ||
| 67 | struct splice_desc { | ||
| 68 | unsigned int len, total_len; /* current and remaining length */ | ||
| 69 | unsigned int flags; /* splice flags */ | ||
| 70 | struct file *file; /* file to read/write */ | ||
| 71 | loff_t pos; /* file position */ | ||
| 72 | }; | ||
| 73 | |||
| 74 | typedef int (splice_actor)(struct pipe_inode_info *, struct pipe_buffer *, | ||
| 75 | struct splice_desc *); | ||
| 76 | |||
| 77 | extern ssize_t splice_from_pipe(struct pipe_inode_info *, struct file *, | ||
| 78 | loff_t *, size_t, unsigned int, | ||
| 79 | splice_actor *); | ||
| 80 | |||
| 64 | #endif | 81 | #endif |
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h index d3ebc0e68b2b..3996960fc565 100644 --- a/include/linux/syscalls.h +++ b/include/linux/syscalls.h | |||
| @@ -574,6 +574,9 @@ asmlinkage long sys_splice(int fd_in, loff_t __user *off_in, | |||
| 574 | int fd_out, loff_t __user *off_out, | 574 | int fd_out, loff_t __user *off_out, |
| 575 | size_t len, unsigned int flags); | 575 | size_t len, unsigned int flags); |
| 576 | 576 | ||
| 577 | asmlinkage long sys_vmsplice(int fd, const struct iovec __user *iov, | ||
| 578 | unsigned long nr_segs, unsigned int flags); | ||
| 579 | |||
| 577 | asmlinkage long sys_tee(int fdin, int fdout, size_t len, unsigned int flags); | 580 | asmlinkage long sys_tee(int fdin, int fdout, size_t len, unsigned int flags); |
| 578 | 581 | ||
| 579 | asmlinkage long sys_sync_file_range(int fd, loff_t offset, loff_t nbytes, | 582 | asmlinkage long sys_sync_file_range(int fd, loff_t offset, loff_t nbytes, |
diff --git a/include/net/ieee80211softmac.h b/include/net/ieee80211softmac.h index 6b3693f05ca0..b1ebfbae397f 100644 --- a/include/net/ieee80211softmac.h +++ b/include/net/ieee80211softmac.h | |||
| @@ -96,10 +96,13 @@ struct ieee80211softmac_assoc_info { | |||
| 96 | * | 96 | * |
| 97 | * bssvalid is true if we found a matching network | 97 | * bssvalid is true if we found a matching network |
| 98 | * and saved it's BSSID into the bssid above. | 98 | * and saved it's BSSID into the bssid above. |
| 99 | * | ||
| 100 | * bssfixed is used for SIOCSIWAP. | ||
| 99 | */ | 101 | */ |
| 100 | u8 static_essid:1, | 102 | u8 static_essid:1, |
| 101 | associating:1, | 103 | associating:1, |
| 102 | bssvalid:1; | 104 | bssvalid:1, |
| 105 | bssfixed:1; | ||
| 103 | 106 | ||
| 104 | /* Scan retries remaining */ | 107 | /* Scan retries remaining */ |
| 105 | int scan_retry; | 108 | int scan_retry; |
