diff options
Diffstat (limited to 'include')
70 files changed, 710 insertions, 262 deletions
diff --git a/include/acpi/acpi_numa.h b/include/acpi/acpi_numa.h index b62cd36ff324..e2fcee2b340d 100644 --- a/include/acpi/acpi_numa.h +++ b/include/acpi/acpi_numa.h | |||
@@ -13,7 +13,7 @@ | |||
13 | 13 | ||
14 | extern int pxm_to_node(int); | 14 | extern int pxm_to_node(int); |
15 | extern int node_to_pxm(int); | 15 | extern int node_to_pxm(int); |
16 | extern int __cpuinit acpi_map_pxm_to_node(int); | 16 | extern int acpi_map_pxm_to_node(int); |
17 | extern void __cpuinit acpi_unmap_pxm_to_node(int); | 17 | extern void __cpuinit acpi_unmap_pxm_to_node(int); |
18 | 18 | ||
19 | #endif /* CONFIG_ACPI_NUMA */ | 19 | #endif /* CONFIG_ACPI_NUMA */ |
diff --git a/include/acpi/acpiosxf.h b/include/acpi/acpiosxf.h index 5e07db0d46e9..ca882b8e7d10 100644 --- a/include/acpi/acpiosxf.h +++ b/include/acpi/acpiosxf.h | |||
@@ -78,7 +78,7 @@ struct acpi_signal_fatal_info { | |||
78 | /* | 78 | /* |
79 | * OSL Initialization and shutdown primitives | 79 | * OSL Initialization and shutdown primitives |
80 | */ | 80 | */ |
81 | acpi_status acpi_os_initialize(void); | 81 | acpi_status __initdata acpi_os_initialize(void); |
82 | 82 | ||
83 | acpi_status acpi_os_terminate(void); | 83 | acpi_status acpi_os_terminate(void); |
84 | 84 | ||
@@ -236,6 +236,7 @@ acpi_os_derive_pci_id(acpi_handle rhandle, | |||
236 | * Miscellaneous | 236 | * Miscellaneous |
237 | */ | 237 | */ |
238 | acpi_status acpi_os_validate_interface(char *interface); | 238 | acpi_status acpi_os_validate_interface(char *interface); |
239 | acpi_status acpi_osi_invalidate(char* interface); | ||
239 | 240 | ||
240 | acpi_status | 241 | acpi_status |
241 | acpi_os_validate_address(u8 space_id, | 242 | acpi_os_validate_address(u8 space_id, |
diff --git a/include/acpi/acpixf.h b/include/acpi/acpixf.h index e08f7df85a4f..b5cca5daa348 100644 --- a/include/acpi/acpixf.h +++ b/include/acpi/acpixf.h | |||
@@ -55,7 +55,7 @@ acpi_status | |||
55 | acpi_initialize_tables(struct acpi_table_desc *initial_storage, | 55 | acpi_initialize_tables(struct acpi_table_desc *initial_storage, |
56 | u32 initial_table_count, u8 allow_resize); | 56 | u32 initial_table_count, u8 allow_resize); |
57 | 57 | ||
58 | acpi_status acpi_initialize_subsystem(void); | 58 | acpi_status __init acpi_initialize_subsystem(void); |
59 | 59 | ||
60 | acpi_status acpi_enable_subsystem(u32 flags); | 60 | acpi_status acpi_enable_subsystem(u32 flags); |
61 | 61 | ||
diff --git a/include/acpi/acutils.h b/include/acpi/acutils.h index 15a838862cd4..a87ef1c8d46b 100644 --- a/include/acpi/acutils.h +++ b/include/acpi/acutils.h | |||
@@ -390,6 +390,8 @@ void acpi_ut_delete_object_desc(union acpi_operand_object *object); | |||
390 | 390 | ||
391 | u8 acpi_ut_valid_internal_object(void *object); | 391 | u8 acpi_ut_valid_internal_object(void *object); |
392 | 392 | ||
393 | union acpi_operand_object *acpi_ut_create_package_object(u32 count); | ||
394 | |||
393 | union acpi_operand_object *acpi_ut_create_buffer_object(acpi_size buffer_size); | 395 | union acpi_operand_object *acpi_ut_create_buffer_object(acpi_size buffer_size); |
394 | 396 | ||
395 | union acpi_operand_object *acpi_ut_create_string_object(acpi_size string_size); | 397 | union acpi_operand_object *acpi_ut_create_string_object(acpi_size string_size); |
diff --git a/include/asm-alpha/core_t2.h b/include/asm-alpha/core_t2.h index 457c34b6eb09..90e6b5d6c214 100644 --- a/include/asm-alpha/core_t2.h +++ b/include/asm-alpha/core_t2.h | |||
@@ -437,9 +437,15 @@ static inline void t2_outl(u32 b, unsigned long addr) | |||
437 | 437 | ||
438 | static DEFINE_SPINLOCK(t2_hae_lock); | 438 | static DEFINE_SPINLOCK(t2_hae_lock); |
439 | 439 | ||
440 | /* | ||
441 | * NOTE: take T2_DENSE_MEM off in each readX/writeX routine, since | ||
442 | * they may be called directly, rather than through the | ||
443 | * ioreadNN/iowriteNN routines. | ||
444 | */ | ||
445 | |||
440 | __EXTERN_INLINE u8 t2_readb(const volatile void __iomem *xaddr) | 446 | __EXTERN_INLINE u8 t2_readb(const volatile void __iomem *xaddr) |
441 | { | 447 | { |
442 | unsigned long addr = (unsigned long) xaddr; | 448 | unsigned long addr = (unsigned long) xaddr - T2_DENSE_MEM; |
443 | unsigned long result, msb; | 449 | unsigned long result, msb; |
444 | unsigned long flags; | 450 | unsigned long flags; |
445 | spin_lock_irqsave(&t2_hae_lock, flags); | 451 | spin_lock_irqsave(&t2_hae_lock, flags); |
@@ -453,7 +459,7 @@ __EXTERN_INLINE u8 t2_readb(const volatile void __iomem *xaddr) | |||
453 | 459 | ||
454 | __EXTERN_INLINE u16 t2_readw(const volatile void __iomem *xaddr) | 460 | __EXTERN_INLINE u16 t2_readw(const volatile void __iomem *xaddr) |
455 | { | 461 | { |
456 | unsigned long addr = (unsigned long) xaddr; | 462 | unsigned long addr = (unsigned long) xaddr - T2_DENSE_MEM; |
457 | unsigned long result, msb; | 463 | unsigned long result, msb; |
458 | unsigned long flags; | 464 | unsigned long flags; |
459 | spin_lock_irqsave(&t2_hae_lock, flags); | 465 | spin_lock_irqsave(&t2_hae_lock, flags); |
@@ -471,7 +477,7 @@ __EXTERN_INLINE u16 t2_readw(const volatile void __iomem *xaddr) | |||
471 | */ | 477 | */ |
472 | __EXTERN_INLINE u32 t2_readl(const volatile void __iomem *xaddr) | 478 | __EXTERN_INLINE u32 t2_readl(const volatile void __iomem *xaddr) |
473 | { | 479 | { |
474 | unsigned long addr = (unsigned long) xaddr; | 480 | unsigned long addr = (unsigned long) xaddr - T2_DENSE_MEM; |
475 | unsigned long result, msb; | 481 | unsigned long result, msb; |
476 | unsigned long flags; | 482 | unsigned long flags; |
477 | spin_lock_irqsave(&t2_hae_lock, flags); | 483 | spin_lock_irqsave(&t2_hae_lock, flags); |
@@ -485,7 +491,7 @@ __EXTERN_INLINE u32 t2_readl(const volatile void __iomem *xaddr) | |||
485 | 491 | ||
486 | __EXTERN_INLINE u64 t2_readq(const volatile void __iomem *xaddr) | 492 | __EXTERN_INLINE u64 t2_readq(const volatile void __iomem *xaddr) |
487 | { | 493 | { |
488 | unsigned long addr = (unsigned long) xaddr; | 494 | unsigned long addr = (unsigned long) xaddr - T2_DENSE_MEM; |
489 | unsigned long r0, r1, work, msb; | 495 | unsigned long r0, r1, work, msb; |
490 | unsigned long flags; | 496 | unsigned long flags; |
491 | spin_lock_irqsave(&t2_hae_lock, flags); | 497 | spin_lock_irqsave(&t2_hae_lock, flags); |
@@ -501,7 +507,7 @@ __EXTERN_INLINE u64 t2_readq(const volatile void __iomem *xaddr) | |||
501 | 507 | ||
502 | __EXTERN_INLINE void t2_writeb(u8 b, volatile void __iomem *xaddr) | 508 | __EXTERN_INLINE void t2_writeb(u8 b, volatile void __iomem *xaddr) |
503 | { | 509 | { |
504 | unsigned long addr = (unsigned long) xaddr; | 510 | unsigned long addr = (unsigned long) xaddr - T2_DENSE_MEM; |
505 | unsigned long msb, w; | 511 | unsigned long msb, w; |
506 | unsigned long flags; | 512 | unsigned long flags; |
507 | spin_lock_irqsave(&t2_hae_lock, flags); | 513 | spin_lock_irqsave(&t2_hae_lock, flags); |
@@ -515,7 +521,7 @@ __EXTERN_INLINE void t2_writeb(u8 b, volatile void __iomem *xaddr) | |||
515 | 521 | ||
516 | __EXTERN_INLINE void t2_writew(u16 b, volatile void __iomem *xaddr) | 522 | __EXTERN_INLINE void t2_writew(u16 b, volatile void __iomem *xaddr) |
517 | { | 523 | { |
518 | unsigned long addr = (unsigned long) xaddr; | 524 | unsigned long addr = (unsigned long) xaddr - T2_DENSE_MEM; |
519 | unsigned long msb, w; | 525 | unsigned long msb, w; |
520 | unsigned long flags; | 526 | unsigned long flags; |
521 | spin_lock_irqsave(&t2_hae_lock, flags); | 527 | spin_lock_irqsave(&t2_hae_lock, flags); |
@@ -533,7 +539,7 @@ __EXTERN_INLINE void t2_writew(u16 b, volatile void __iomem *xaddr) | |||
533 | */ | 539 | */ |
534 | __EXTERN_INLINE void t2_writel(u32 b, volatile void __iomem *xaddr) | 540 | __EXTERN_INLINE void t2_writel(u32 b, volatile void __iomem *xaddr) |
535 | { | 541 | { |
536 | unsigned long addr = (unsigned long) xaddr; | 542 | unsigned long addr = (unsigned long) xaddr - T2_DENSE_MEM; |
537 | unsigned long msb; | 543 | unsigned long msb; |
538 | unsigned long flags; | 544 | unsigned long flags; |
539 | spin_lock_irqsave(&t2_hae_lock, flags); | 545 | spin_lock_irqsave(&t2_hae_lock, flags); |
@@ -546,7 +552,7 @@ __EXTERN_INLINE void t2_writel(u32 b, volatile void __iomem *xaddr) | |||
546 | 552 | ||
547 | __EXTERN_INLINE void t2_writeq(u64 b, volatile void __iomem *xaddr) | 553 | __EXTERN_INLINE void t2_writeq(u64 b, volatile void __iomem *xaddr) |
548 | { | 554 | { |
549 | unsigned long addr = (unsigned long) xaddr; | 555 | unsigned long addr = (unsigned long) xaddr - T2_DENSE_MEM; |
550 | unsigned long msb, work; | 556 | unsigned long msb, work; |
551 | unsigned long flags; | 557 | unsigned long flags; |
552 | spin_lock_irqsave(&t2_hae_lock, flags); | 558 | spin_lock_irqsave(&t2_hae_lock, flags); |
@@ -587,14 +593,14 @@ __EXTERN_INLINE int t2_is_mmio(const volatile void __iomem *addr) | |||
587 | __EXTERN_INLINE unsigned int t2_ioread##NS(void __iomem *xaddr) \ | 593 | __EXTERN_INLINE unsigned int t2_ioread##NS(void __iomem *xaddr) \ |
588 | { \ | 594 | { \ |
589 | if (t2_is_mmio(xaddr)) \ | 595 | if (t2_is_mmio(xaddr)) \ |
590 | return t2_read##OS(xaddr - T2_DENSE_MEM); \ | 596 | return t2_read##OS(xaddr); \ |
591 | else \ | 597 | else \ |
592 | return t2_in##OS((unsigned long)xaddr - T2_IO); \ | 598 | return t2_in##OS((unsigned long)xaddr - T2_IO); \ |
593 | } \ | 599 | } \ |
594 | __EXTERN_INLINE void t2_iowrite##NS(u##NS b, void __iomem *xaddr) \ | 600 | __EXTERN_INLINE void t2_iowrite##NS(u##NS b, void __iomem *xaddr) \ |
595 | { \ | 601 | { \ |
596 | if (t2_is_mmio(xaddr)) \ | 602 | if (t2_is_mmio(xaddr)) \ |
597 | t2_write##OS(b, xaddr - T2_DENSE_MEM); \ | 603 | t2_write##OS(b, xaddr); \ |
598 | else \ | 604 | else \ |
599 | t2_out##OS(b, (unsigned long)xaddr - T2_IO); \ | 605 | t2_out##OS(b, (unsigned long)xaddr - T2_IO); \ |
600 | } | 606 | } |
diff --git a/include/asm-alpha/core_titan.h b/include/asm-alpha/core_titan.h index a64ccbff7d98..a17f6f33b68e 100644 --- a/include/asm-alpha/core_titan.h +++ b/include/asm-alpha/core_titan.h | |||
@@ -380,12 +380,7 @@ struct el_PRIVATEER_envdata_mcheck { | |||
380 | /* | 380 | /* |
381 | * Memory functions. all accesses are done through linear space. | 381 | * Memory functions. all accesses are done through linear space. |
382 | */ | 382 | */ |
383 | 383 | extern void __iomem *titan_ioportmap(unsigned long addr); | |
384 | __EXTERN_INLINE void __iomem *titan_ioportmap(unsigned long addr) | ||
385 | { | ||
386 | return (void __iomem *)(addr + TITAN_IO_BIAS); | ||
387 | } | ||
388 | |||
389 | extern void __iomem *titan_ioremap(unsigned long addr, unsigned long size); | 384 | extern void __iomem *titan_ioremap(unsigned long addr, unsigned long size); |
390 | extern void titan_iounmap(volatile void __iomem *addr); | 385 | extern void titan_iounmap(volatile void __iomem *addr); |
391 | 386 | ||
diff --git a/include/asm-alpha/core_tsunami.h b/include/asm-alpha/core_tsunami.h index 44e635d2c571..58d4fe48742c 100644 --- a/include/asm-alpha/core_tsunami.h +++ b/include/asm-alpha/core_tsunami.h | |||
@@ -2,6 +2,7 @@ | |||
2 | #define __ALPHA_TSUNAMI__H__ | 2 | #define __ALPHA_TSUNAMI__H__ |
3 | 3 | ||
4 | #include <linux/types.h> | 4 | #include <linux/types.h> |
5 | #include <linux/pci.h> | ||
5 | #include <asm/compiler.h> | 6 | #include <asm/compiler.h> |
6 | 7 | ||
7 | /* | 8 | /* |
@@ -302,18 +303,8 @@ struct el_TSUNAMI_sysdata_mcheck { | |||
302 | /* | 303 | /* |
303 | * Memory functions. all accesses are done through linear space. | 304 | * Memory functions. all accesses are done through linear space. |
304 | */ | 305 | */ |
305 | 306 | extern void __iomem *tsunami_ioportmap(unsigned long addr); | |
306 | __EXTERN_INLINE void __iomem *tsunami_ioportmap(unsigned long addr) | 307 | extern void __iomem *tsunami_ioremap(unsigned long addr, unsigned long size); |
307 | { | ||
308 | return (void __iomem *)(addr + TSUNAMI_IO_BIAS); | ||
309 | } | ||
310 | |||
311 | __EXTERN_INLINE void __iomem *tsunami_ioremap(unsigned long addr, | ||
312 | unsigned long size) | ||
313 | { | ||
314 | return (void __iomem *)(addr + TSUNAMI_MEM_BIAS); | ||
315 | } | ||
316 | |||
317 | __EXTERN_INLINE int tsunami_is_ioaddr(unsigned long addr) | 308 | __EXTERN_INLINE int tsunami_is_ioaddr(unsigned long addr) |
318 | { | 309 | { |
319 | return addr >= TSUNAMI_BASE; | 310 | return addr >= TSUNAMI_BASE; |
diff --git a/include/asm-alpha/core_wildfire.h b/include/asm-alpha/core_wildfire.h index 12af803d445a..cd562f544ba2 100644 --- a/include/asm-alpha/core_wildfire.h +++ b/include/asm-alpha/core_wildfire.h | |||
@@ -295,7 +295,7 @@ __EXTERN_INLINE int wildfire_is_ioaddr(unsigned long addr) | |||
295 | 295 | ||
296 | __EXTERN_INLINE int wildfire_is_mmio(const volatile void __iomem *xaddr) | 296 | __EXTERN_INLINE int wildfire_is_mmio(const volatile void __iomem *xaddr) |
297 | { | 297 | { |
298 | unsigned long addr = (unsigned long)addr; | 298 | unsigned long addr = (unsigned long)xaddr; |
299 | return (addr & 0x100000000UL) == 0; | 299 | return (addr & 0x100000000UL) == 0; |
300 | } | 300 | } |
301 | 301 | ||
diff --git a/include/asm-alpha/vga.h b/include/asm-alpha/vga.h index ed06f59b544d..e8df1e7aae6b 100644 --- a/include/asm-alpha/vga.h +++ b/include/asm-alpha/vga.h | |||
@@ -46,6 +46,37 @@ extern void scr_memcpyw(u16 *d, const u16 *s, unsigned int count); | |||
46 | #define vga_readb(a) readb((u8 __iomem *)(a)) | 46 | #define vga_readb(a) readb((u8 __iomem *)(a)) |
47 | #define vga_writeb(v,a) writeb(v, (u8 __iomem *)(a)) | 47 | #define vga_writeb(v,a) writeb(v, (u8 __iomem *)(a)) |
48 | 48 | ||
49 | #ifdef CONFIG_VGA_HOSE | ||
50 | #include <linux/ioport.h> | ||
51 | #include <linux/pci.h> | ||
52 | |||
53 | extern struct pci_controller *pci_vga_hose; | ||
54 | |||
55 | # define __is_port_vga(a) \ | ||
56 | (((a) >= 0x3b0) && ((a) < 0x3e0) && \ | ||
57 | ((a) != 0x3b3) && ((a) != 0x3d3)) | ||
58 | |||
59 | # define __is_mem_vga(a) \ | ||
60 | (((a) >= 0xa0000) && ((a) <= 0xc0000)) | ||
61 | |||
62 | # define FIXUP_IOADDR_VGA(a) do { \ | ||
63 | if (pci_vga_hose && __is_port_vga(a)) \ | ||
64 | (a) += pci_vga_hose->io_space->start; \ | ||
65 | } while(0) | ||
66 | |||
67 | # define FIXUP_MEMADDR_VGA(a) do { \ | ||
68 | if (pci_vga_hose && __is_mem_vga(a)) \ | ||
69 | (a) += pci_vga_hose->mem_space->start; \ | ||
70 | } while(0) | ||
71 | |||
72 | #else /* CONFIG_VGA_HOSE */ | ||
73 | # define pci_vga_hose 0 | ||
74 | # define __is_port_vga(a) 0 | ||
75 | # define __is_mem_vga(a) 0 | ||
76 | # define FIXUP_IOADDR_VGA(a) | ||
77 | # define FIXUP_MEMADDR_VGA(a) | ||
78 | #endif /* CONFIG_VGA_HOSE */ | ||
79 | |||
49 | #define VGA_MAP_MEM(x,s) ((unsigned long) ioremap(x, s)) | 80 | #define VGA_MAP_MEM(x,s) ((unsigned long) ioremap(x, s)) |
50 | 81 | ||
51 | #endif | 82 | #endif |
diff --git a/include/asm-arm/arch-at91/at91_shdwc.h b/include/asm-arm/arch-at91/at91_shdwc.h index 795fcc266228..01b433de2272 100644 --- a/include/asm-arm/arch-at91/at91_shdwc.h +++ b/include/asm-arm/arch-at91/at91_shdwc.h | |||
@@ -14,8 +14,8 @@ | |||
14 | #define AT91_SHDWC_H | 14 | #define AT91_SHDWC_H |
15 | 15 | ||
16 | #define AT91_SHDW_CR (AT91_SHDWC + 0x00) /* Shut Down Control Register */ | 16 | #define AT91_SHDW_CR (AT91_SHDWC + 0x00) /* Shut Down Control Register */ |
17 | #define AT91_SHDW_SHDW (1 << 0) /* Processor Reset */ | 17 | #define AT91_SHDW_SHDW (1 << 0) /* Shut Down command */ |
18 | #define AT91_SHDW_KEY (0xff << 24) /* KEY Password */ | 18 | #define AT91_SHDW_KEY (0xa5 << 24) /* KEY Password */ |
19 | 19 | ||
20 | #define AT91_SHDW_MR (AT91_SHDWC + 0x04) /* Shut Down Mode Register */ | 20 | #define AT91_SHDW_MR (AT91_SHDWC + 0x04) /* Shut Down Mode Register */ |
21 | #define AT91_SHDW_WKMODE0 (3 << 0) /* Wake-up 0 Mode Selection */ | 21 | #define AT91_SHDW_WKMODE0 (3 << 0) /* Wake-up 0 Mode Selection */ |
diff --git a/include/asm-arm/arch-at91/at91_wdt.h b/include/asm-arm/arch-at91/at91_wdt.h index 7251a344c740..1014e9bf181f 100644 --- a/include/asm-arm/arch-at91/at91_wdt.h +++ b/include/asm-arm/arch-at91/at91_wdt.h | |||
@@ -15,7 +15,7 @@ | |||
15 | 15 | ||
16 | #define AT91_WDT_CR (AT91_WDT + 0x00) /* Watchdog Control Register */ | 16 | #define AT91_WDT_CR (AT91_WDT + 0x00) /* Watchdog Control Register */ |
17 | #define AT91_WDT_WDRSTT (1 << 0) /* Restart */ | 17 | #define AT91_WDT_WDRSTT (1 << 0) /* Restart */ |
18 | #define AT91_WDT_KEY (0xff << 24) /* KEY Password */ | 18 | #define AT91_WDT_KEY (0xa5 << 24) /* KEY Password */ |
19 | 19 | ||
20 | #define AT91_WDT_MR (AT91_WDT + 0x04) /* Watchdog Mode Register */ | 20 | #define AT91_WDT_MR (AT91_WDT + 0x04) /* Watchdog Mode Register */ |
21 | #define AT91_WDT_WDV (0xfff << 0) /* Counter Value */ | 21 | #define AT91_WDT_WDV (0xfff << 0) /* Counter Value */ |
diff --git a/include/asm-arm/arch-pxa/gpio.h b/include/asm-arm/arch-pxa/gpio.h index aeba24347f8e..9e99241f3edf 100644 --- a/include/asm-arm/arch-pxa/gpio.h +++ b/include/asm-arm/arch-pxa/gpio.h | |||
@@ -45,7 +45,8 @@ static inline int gpio_direction_input(unsigned gpio) | |||
45 | 45 | ||
46 | static inline int gpio_direction_output(unsigned gpio, int value) | 46 | static inline int gpio_direction_output(unsigned gpio, int value) |
47 | { | 47 | { |
48 | return pxa_gpio_mode(gpio | GPIO_OUT | (value ? 0 : GPIO_DFLT_LOW)); | 48 | return pxa_gpio_mode(gpio | GPIO_OUT | |
49 | (value ? GPIO_DFLT_HIGH : GPIO_DFLT_LOW)); | ||
49 | } | 50 | } |
50 | 51 | ||
51 | static inline int __gpio_get_value(unsigned gpio) | 52 | static inline int __gpio_get_value(unsigned gpio) |
diff --git a/include/asm-frv/system.h b/include/asm-frv/system.h index be303b3eef40..6931af525da3 100644 --- a/include/asm-frv/system.h +++ b/include/asm-frv/system.h | |||
@@ -12,6 +12,7 @@ | |||
12 | #ifndef _ASM_SYSTEM_H | 12 | #ifndef _ASM_SYSTEM_H |
13 | #define _ASM_SYSTEM_H | 13 | #define _ASM_SYSTEM_H |
14 | 14 | ||
15 | #include <linux/types.h> | ||
15 | #include <linux/linkage.h> | 16 | #include <linux/linkage.h> |
16 | 17 | ||
17 | struct thread_struct; | 18 | struct thread_struct; |
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h index 8307b1bb337a..84155eb67f1d 100644 --- a/include/asm-generic/vmlinux.lds.h +++ b/include/asm-generic/vmlinux.lds.h | |||
@@ -14,8 +14,8 @@ | |||
14 | *(.data) \ | 14 | *(.data) \ |
15 | *(.data.init.refok) | 15 | *(.data.init.refok) |
16 | 16 | ||
17 | #define RODATA \ | 17 | #define RO_DATA(align) \ |
18 | . = ALIGN(4096); \ | 18 | . = ALIGN((align)); \ |
19 | .rodata : AT(ADDR(.rodata) - LOAD_OFFSET) { \ | 19 | .rodata : AT(ADDR(.rodata) - LOAD_OFFSET) { \ |
20 | VMLINUX_SYMBOL(__start_rodata) = .; \ | 20 | VMLINUX_SYMBOL(__start_rodata) = .; \ |
21 | *(.rodata) *(.rodata.*) \ | 21 | *(.rodata) *(.rodata.*) \ |
@@ -135,7 +135,11 @@ | |||
135 | VMLINUX_SYMBOL(__end_rodata) = .; \ | 135 | VMLINUX_SYMBOL(__end_rodata) = .; \ |
136 | } \ | 136 | } \ |
137 | \ | 137 | \ |
138 | . = ALIGN(4096); | 138 | . = ALIGN((align)); |
139 | |||
140 | /* RODATA provided for backward compatibility. | ||
141 | * All archs are supposed to use RO_DATA() */ | ||
142 | #define RODATA RO_DATA(4096) | ||
139 | 143 | ||
140 | #define SECURITY_INIT \ | 144 | #define SECURITY_INIT \ |
141 | .security_initcall.init : AT(ADDR(.security_initcall.init) - LOAD_OFFSET) { \ | 145 | .security_initcall.init : AT(ADDR(.security_initcall.init) - LOAD_OFFSET) { \ |
diff --git a/include/asm-h8300/processor.h b/include/asm-h8300/processor.h index 99b664aa2083..49fc886a6232 100644 --- a/include/asm-h8300/processor.h +++ b/include/asm-h8300/processor.h | |||
@@ -78,7 +78,7 @@ struct thread_struct { | |||
78 | do { \ | 78 | do { \ |
79 | set_fs(USER_DS); /* reads from user space */ \ | 79 | set_fs(USER_DS); /* reads from user space */ \ |
80 | (_regs)->pc = (_pc); \ | 80 | (_regs)->pc = (_pc); \ |
81 | (_regs)->ccr &= 0x00; /* clear kernel flag */ \ | 81 | (_regs)->ccr = 0x00; /* clear all flags */ \ |
82 | (_regs)->er5 = current->mm->start_data; /* GOT base */ \ | 82 | (_regs)->er5 = current->mm->start_data; /* GOT base */ \ |
83 | wrusp((unsigned long)(_usp) - sizeof(unsigned long)*3); \ | 83 | wrusp((unsigned long)(_usp) - sizeof(unsigned long)*3); \ |
84 | } while(0) | 84 | } while(0) |
diff --git a/include/asm-m68k/mmzone.h b/include/asm-m68k/mmzone.h new file mode 100644 index 000000000000..e1f1ec7b7006 --- /dev/null +++ b/include/asm-m68k/mmzone.h | |||
@@ -0,0 +1,9 @@ | |||
1 | #ifndef _ASM_M68K_MMZONE_H_ | ||
2 | #define _ASM_M68K_MMZONE_H_ | ||
3 | |||
4 | extern pg_data_t pg_data_map[]; | ||
5 | |||
6 | #define NODE_DATA(nid) (&pg_data_map[nid]) | ||
7 | #define NODE_MEM_MAP(nid) (NODE_DATA(nid)->node_mem_map) | ||
8 | |||
9 | #endif /* _ASM_M68K_MMZONE_H_ */ | ||
diff --git a/include/asm-m68k/module.h b/include/asm-m68k/module.h index c6d75af2d8d3..382d20a6fc18 100644 --- a/include/asm-m68k/module.h +++ b/include/asm-m68k/module.h | |||
@@ -1,7 +1,39 @@ | |||
1 | #ifndef _ASM_M68K_MODULE_H | 1 | #ifndef _ASM_M68K_MODULE_H |
2 | #define _ASM_M68K_MODULE_H | 2 | #define _ASM_M68K_MODULE_H |
3 | struct mod_arch_specific { }; | 3 | |
4 | struct mod_arch_specific { | ||
5 | struct m68k_fixup_info *fixup_start, *fixup_end; | ||
6 | }; | ||
7 | |||
8 | #define MODULE_ARCH_INIT { \ | ||
9 | .fixup_start = __start_fixup, \ | ||
10 | .fixup_end = __stop_fixup, \ | ||
11 | } | ||
12 | |||
4 | #define Elf_Shdr Elf32_Shdr | 13 | #define Elf_Shdr Elf32_Shdr |
5 | #define Elf_Sym Elf32_Sym | 14 | #define Elf_Sym Elf32_Sym |
6 | #define Elf_Ehdr Elf32_Ehdr | 15 | #define Elf_Ehdr Elf32_Ehdr |
16 | |||
17 | |||
18 | enum m68k_fixup_type { | ||
19 | m68k_fixup_memoffset, | ||
20 | m68k_fixup_vnode_shift, | ||
21 | }; | ||
22 | |||
23 | struct m68k_fixup_info { | ||
24 | enum m68k_fixup_type type; | ||
25 | void *addr; | ||
26 | }; | ||
27 | |||
28 | #define m68k_fixup(type, addr) \ | ||
29 | " .section \".m68k_fixup\",\"aw\"\n" \ | ||
30 | " .long " #type "," #addr "\n" \ | ||
31 | " .previous\n" | ||
32 | |||
33 | extern struct m68k_fixup_info __start_fixup[], __stop_fixup[]; | ||
34 | |||
35 | struct module; | ||
36 | extern void module_fixup(struct module *mod, struct m68k_fixup_info *start, | ||
37 | struct m68k_fixup_info *end); | ||
38 | |||
7 | #endif /* _ASM_M68K_MODULE_H */ | 39 | #endif /* _ASM_M68K_MODULE_H */ |
diff --git a/include/asm-m68k/motorola_pgtable.h b/include/asm-m68k/motorola_pgtable.h index 61e4406ed96a..b5b78c01eb6c 100644 --- a/include/asm-m68k/motorola_pgtable.h +++ b/include/asm-m68k/motorola_pgtable.h | |||
@@ -130,7 +130,7 @@ static inline void pgd_set(pgd_t *pgdp, pmd_t *pmdp) | |||
130 | #define pte_present(pte) (pte_val(pte) & (_PAGE_PRESENT | _PAGE_PROTNONE)) | 130 | #define pte_present(pte) (pte_val(pte) & (_PAGE_PRESENT | _PAGE_PROTNONE)) |
131 | #define pte_clear(mm,addr,ptep) ({ pte_val(*(ptep)) = 0; }) | 131 | #define pte_clear(mm,addr,ptep) ({ pte_val(*(ptep)) = 0; }) |
132 | 132 | ||
133 | #define pte_page(pte) (mem_map + ((unsigned long)(__va(pte_val(pte)) - PAGE_OFFSET) >> PAGE_SHIFT)) | 133 | #define pte_page(pte) virt_to_page(__va(pte_val(pte))) |
134 | #define pte_pfn(pte) (pte_val(pte) >> PAGE_SHIFT) | 134 | #define pte_pfn(pte) (pte_val(pte) >> PAGE_SHIFT) |
135 | #define pfn_pte(pfn, prot) __pte(((pfn) << PAGE_SHIFT) | pgprot_val(prot)) | 135 | #define pfn_pte(pfn, prot) __pte(((pfn) << PAGE_SHIFT) | pgprot_val(prot)) |
136 | 136 | ||
@@ -143,7 +143,7 @@ static inline void pgd_set(pgd_t *pgdp, pmd_t *pmdp) | |||
143 | while (--__i >= 0) \ | 143 | while (--__i >= 0) \ |
144 | *__ptr++ = 0; \ | 144 | *__ptr++ = 0; \ |
145 | }) | 145 | }) |
146 | #define pmd_page(pmd) (mem_map + ((unsigned long)(__va(pmd_val(pmd)) - PAGE_OFFSET) >> PAGE_SHIFT)) | 146 | #define pmd_page(pmd) virt_to_page(__va(pmd_val(pmd))) |
147 | 147 | ||
148 | 148 | ||
149 | #define pgd_none(pgd) (!pgd_val(pgd)) | 149 | #define pgd_none(pgd) (!pgd_val(pgd)) |
@@ -223,10 +223,10 @@ static inline pte_t *pte_offset_kernel(pmd_t *pmdp, unsigned long address) | |||
223 | return (pte_t *)__pmd_page(*pmdp) + ((address >> PAGE_SHIFT) & (PTRS_PER_PTE - 1)); | 223 | return (pte_t *)__pmd_page(*pmdp) + ((address >> PAGE_SHIFT) & (PTRS_PER_PTE - 1)); |
224 | } | 224 | } |
225 | 225 | ||
226 | #define pte_offset_map(pmdp,address) ((pte_t *)kmap(pmd_page(*pmdp)) + ((address >> PAGE_SHIFT) & (PTRS_PER_PTE - 1))) | 226 | #define pte_offset_map(pmdp,address) ((pte_t *)__pmd_page(*pmdp) + (((address) >> PAGE_SHIFT) & (PTRS_PER_PTE - 1))) |
227 | #define pte_offset_map_nested(pmdp, address) pte_offset_map(pmdp, address) | 227 | #define pte_offset_map_nested(pmdp, address) pte_offset_map(pmdp, address) |
228 | #define pte_unmap(pte) kunmap(pte) | 228 | #define pte_unmap(pte) ((void)0) |
229 | #define pte_unmap_nested(pte) kunmap(pte) | 229 | #define pte_unmap_nested(pte) ((void)0) |
230 | 230 | ||
231 | /* | 231 | /* |
232 | * Allocate and free page tables. The xxx_kernel() versions are | 232 | * Allocate and free page tables. The xxx_kernel() versions are |
diff --git a/include/asm-m68k/page.h b/include/asm-m68k/page.h index fcc165ddd09e..9e6d0d6debdb 100644 --- a/include/asm-m68k/page.h +++ b/include/asm-m68k/page.h | |||
@@ -27,6 +27,8 @@ | |||
27 | 27 | ||
28 | #ifndef __ASSEMBLY__ | 28 | #ifndef __ASSEMBLY__ |
29 | 29 | ||
30 | #include <asm/module.h> | ||
31 | |||
30 | #define get_user_page(vaddr) __get_free_page(GFP_KERNEL) | 32 | #define get_user_page(vaddr) __get_free_page(GFP_KERNEL) |
31 | #define free_user_page(page, addr) free_page(addr) | 33 | #define free_user_page(page, addr) free_page(addr) |
32 | 34 | ||
@@ -114,18 +116,33 @@ typedef struct { unsigned long pgprot; } pgprot_t; | |||
114 | 116 | ||
115 | #ifndef __ASSEMBLY__ | 117 | #ifndef __ASSEMBLY__ |
116 | 118 | ||
119 | extern unsigned long m68k_memoffset; | ||
120 | |||
117 | #ifndef CONFIG_SUN3 | 121 | #ifndef CONFIG_SUN3 |
118 | 122 | ||
119 | #define WANT_PAGE_VIRTUAL | 123 | #define WANT_PAGE_VIRTUAL |
120 | #ifdef CONFIG_SINGLE_MEMORY_CHUNK | ||
121 | extern unsigned long m68k_memoffset; | ||
122 | 124 | ||
123 | #define __pa(vaddr) ((unsigned long)(vaddr)+m68k_memoffset) | 125 | static inline unsigned long ___pa(void *vaddr) |
124 | #define __va(paddr) ((void *)((unsigned long)(paddr)-m68k_memoffset)) | 126 | { |
125 | #else | 127 | unsigned long paddr; |
126 | #define __pa(vaddr) virt_to_phys((void *)(vaddr)) | 128 | asm ( |
127 | #define __va(paddr) phys_to_virt((unsigned long)(paddr)) | 129 | "1: addl #0,%0\n" |
128 | #endif | 130 | m68k_fixup(%c2, 1b+2) |
131 | : "=r" (paddr) | ||
132 | : "0" (vaddr), "i" (m68k_fixup_memoffset)); | ||
133 | return paddr; | ||
134 | } | ||
135 | #define __pa(vaddr) ___pa((void *)(vaddr)) | ||
136 | static inline void *__va(unsigned long paddr) | ||
137 | { | ||
138 | void *vaddr; | ||
139 | asm ( | ||
140 | "1: subl #0,%0\n" | ||
141 | m68k_fixup(%c2, 1b+2) | ||
142 | : "=r" (vaddr) | ||
143 | : "0" (paddr), "i" (m68k_fixup_memoffset)); | ||
144 | return vaddr; | ||
145 | } | ||
129 | 146 | ||
130 | #else /* !CONFIG_SUN3 */ | 147 | #else /* !CONFIG_SUN3 */ |
131 | /* This #define is a horrible hack to suppress lots of warnings. --m */ | 148 | /* This #define is a horrible hack to suppress lots of warnings. --m */ |
@@ -161,11 +178,47 @@ static inline void *__va(unsigned long x) | |||
161 | #define virt_to_pfn(kaddr) (__pa(kaddr) >> PAGE_SHIFT) | 178 | #define virt_to_pfn(kaddr) (__pa(kaddr) >> PAGE_SHIFT) |
162 | #define pfn_to_virt(pfn) __va((pfn) << PAGE_SHIFT) | 179 | #define pfn_to_virt(pfn) __va((pfn) << PAGE_SHIFT) |
163 | 180 | ||
164 | #define virt_to_page(kaddr) (mem_map + (((unsigned long)(kaddr)-PAGE_OFFSET) >> PAGE_SHIFT)) | 181 | extern int m68k_virt_to_node_shift; |
165 | #define page_to_virt(page) ((((page) - mem_map) << PAGE_SHIFT) + PAGE_OFFSET) | 182 | |
183 | #ifdef CONFIG_SINGLE_MEMORY_CHUNK | ||
184 | #define __virt_to_node(addr) (&pg_data_map[0]) | ||
185 | #else | ||
186 | extern struct pglist_data *pg_data_table[]; | ||
187 | |||
188 | static inline __attribute_const__ int __virt_to_node_shift(void) | ||
189 | { | ||
190 | int shift; | ||
191 | |||
192 | asm ( | ||
193 | "1: moveq #0,%0\n" | ||
194 | m68k_fixup(%c1, 1b) | ||
195 | : "=d" (shift) | ||
196 | : "i" (m68k_fixup_vnode_shift)); | ||
197 | return shift; | ||
198 | } | ||
199 | |||
200 | #define __virt_to_node(addr) (pg_data_table[(unsigned long)(addr) >> __virt_to_node_shift()]) | ||
201 | #endif | ||
166 | 202 | ||
167 | #define pfn_to_page(pfn) virt_to_page(pfn_to_virt(pfn)) | 203 | #define virt_to_page(addr) ({ \ |
168 | #define page_to_pfn(page) virt_to_pfn(page_to_virt(page)) | 204 | pfn_to_page(virt_to_pfn(addr)); \ |
205 | }) | ||
206 | #define page_to_virt(page) ({ \ | ||
207 | pfn_to_virt(page_to_pfn(page)); \ | ||
208 | }) | ||
209 | |||
210 | #define pfn_to_page(pfn) ({ \ | ||
211 | unsigned long __pfn = (pfn); \ | ||
212 | struct pglist_data *pgdat; \ | ||
213 | pgdat = __virt_to_node((unsigned long)pfn_to_virt(__pfn)); \ | ||
214 | pgdat->node_mem_map + (__pfn - pgdat->node_start_pfn); \ | ||
215 | }) | ||
216 | #define page_to_pfn(_page) ({ \ | ||
217 | struct page *__p = (_page); \ | ||
218 | struct pglist_data *pgdat; \ | ||
219 | pgdat = &pg_data_map[page_to_nid(__p)]; \ | ||
220 | ((__p) - pgdat->node_mem_map) + pgdat->node_start_pfn; \ | ||
221 | }) | ||
169 | 222 | ||
170 | #define virt_addr_valid(kaddr) ((void *)(kaddr) >= (void *)PAGE_OFFSET && (void *)(kaddr) < high_memory) | 223 | #define virt_addr_valid(kaddr) ((void *)(kaddr) >= (void *)PAGE_OFFSET && (void *)(kaddr) < high_memory) |
171 | #define pfn_valid(pfn) virt_addr_valid(pfn_to_virt(pfn)) | 224 | #define pfn_valid(pfn) virt_addr_valid(pfn_to_virt(pfn)) |
diff --git a/include/asm-m68k/pgalloc.h b/include/asm-m68k/pgalloc.h index a9cfb4b99d88..4cb1a57ab763 100644 --- a/include/asm-m68k/pgalloc.h +++ b/include/asm-m68k/pgalloc.h | |||
@@ -8,11 +8,12 @@ | |||
8 | #include <asm/virtconvert.h> | 8 | #include <asm/virtconvert.h> |
9 | 9 | ||
10 | 10 | ||
11 | |||
12 | #ifdef CONFIG_SUN3 | 11 | #ifdef CONFIG_SUN3 |
13 | #include <asm/sun3_pgalloc.h> | 12 | #include <asm/sun3_pgalloc.h> |
14 | #else | 13 | #else |
15 | #include <asm/motorola_pgalloc.h> | 14 | #include <asm/motorola_pgalloc.h> |
16 | #endif | 15 | #endif |
17 | 16 | ||
17 | extern void m68k_setup_node(int node); | ||
18 | |||
18 | #endif /* M68K_PGALLOC_H */ | 19 | #endif /* M68K_PGALLOC_H */ |
diff --git a/include/asm-m68k/pgtable.h b/include/asm-m68k/pgtable.h index 555b87a1f7e3..778a4c538eb2 100644 --- a/include/asm-m68k/pgtable.h +++ b/include/asm-m68k/pgtable.h | |||
@@ -107,22 +107,7 @@ extern void *empty_zero_page; | |||
107 | /* 64-bit machines, beware! SRB. */ | 107 | /* 64-bit machines, beware! SRB. */ |
108 | #define SIZEOF_PTR_LOG2 2 | 108 | #define SIZEOF_PTR_LOG2 2 |
109 | 109 | ||
110 | /* | 110 | #define mm_end_of_chunk(addr, len) 0 |
111 | * Check if the addr/len goes up to the end of a physical | ||
112 | * memory chunk. Used for DMA functions. | ||
113 | */ | ||
114 | #ifdef CONFIG_SINGLE_MEMORY_CHUNK | ||
115 | /* | ||
116 | * It makes no sense to consider whether we cross a memory boundary if | ||
117 | * we support just one physical chunk of memory. | ||
118 | */ | ||
119 | static inline int mm_end_of_chunk(unsigned long addr, int len) | ||
120 | { | ||
121 | return 0; | ||
122 | } | ||
123 | #else | ||
124 | int mm_end_of_chunk (unsigned long addr, int len); | ||
125 | #endif | ||
126 | 111 | ||
127 | extern void kernel_set_cachemode(void *addr, unsigned long size, int cmode); | 112 | extern void kernel_set_cachemode(void *addr, unsigned long size, int cmode); |
128 | 113 | ||
diff --git a/include/asm-m68k/sun3_pgtable.h b/include/asm-m68k/sun3_pgtable.h index 5156a28a18d8..b9e62c1e7ae3 100644 --- a/include/asm-m68k/sun3_pgtable.h +++ b/include/asm-m68k/sun3_pgtable.h | |||
@@ -132,8 +132,8 @@ static inline void pte_clear (struct mm_struct *mm, unsigned long addr, pte_t *p | |||
132 | #define pfn_pte(pfn, pgprot) \ | 132 | #define pfn_pte(pfn, pgprot) \ |
133 | ({ pte_t __pte; pte_val(__pte) = pfn | pgprot_val(pgprot); __pte; }) | 133 | ({ pte_t __pte; pte_val(__pte) = pfn | pgprot_val(pgprot); __pte; }) |
134 | 134 | ||
135 | #define pte_page(pte) (mem_map+((__pte_page(pte) - PAGE_OFFSET) >> PAGE_SHIFT)) | 135 | #define pte_page(pte) virt_to_page(__pte_page(pte)) |
136 | #define pmd_page(pmd) (mem_map+((__pmd_page(pmd) - PAGE_OFFSET) >> PAGE_SHIFT)) | 136 | #define pmd_page(pmd) virt_to_page(__pmd_page(pmd)) |
137 | 137 | ||
138 | 138 | ||
139 | static inline int pmd_none2 (pmd_t *pmd) { return !pmd_val (*pmd); } | 139 | static inline int pmd_none2 (pmd_t *pmd) { return !pmd_val (*pmd); } |
diff --git a/include/asm-m68k/virtconvert.h b/include/asm-m68k/virtconvert.h index 83a87c9b1a16..dea32fbc7e51 100644 --- a/include/asm-m68k/virtconvert.h +++ b/include/asm-m68k/virtconvert.h | |||
@@ -8,56 +8,35 @@ | |||
8 | #ifdef __KERNEL__ | 8 | #ifdef __KERNEL__ |
9 | 9 | ||
10 | #include <linux/compiler.h> | 10 | #include <linux/compiler.h> |
11 | #include <linux/mmzone.h> | ||
11 | #include <asm/setup.h> | 12 | #include <asm/setup.h> |
12 | #include <asm/page.h> | 13 | #include <asm/page.h> |
13 | 14 | ||
14 | #ifdef CONFIG_AMIGA | ||
15 | #include <asm/amigahw.h> | ||
16 | #endif | ||
17 | |||
18 | /* | 15 | /* |
19 | * Change virtual addresses to physical addresses and vv. | 16 | * Change virtual addresses to physical addresses and vv. |
20 | */ | 17 | */ |
21 | #ifndef CONFIG_SUN3 | ||
22 | extern unsigned long mm_vtop(unsigned long addr) __attribute_const__; | ||
23 | extern unsigned long mm_ptov(unsigned long addr) __attribute_const__; | ||
24 | #else | ||
25 | static inline unsigned long mm_vtop(unsigned long vaddr) | ||
26 | { | ||
27 | return __pa(vaddr); | ||
28 | } | ||
29 | |||
30 | static inline unsigned long mm_ptov(unsigned long paddr) | ||
31 | { | ||
32 | return (unsigned long)__va(paddr); | ||
33 | } | ||
34 | #endif | ||
35 | |||
36 | #ifdef CONFIG_SINGLE_MEMORY_CHUNK | ||
37 | static inline unsigned long virt_to_phys(void *vaddr) | ||
38 | { | ||
39 | return (unsigned long)vaddr - PAGE_OFFSET + m68k_memory[0].addr; | ||
40 | } | ||
41 | |||
42 | static inline void * phys_to_virt(unsigned long paddr) | ||
43 | { | ||
44 | return (void *)(paddr - m68k_memory[0].addr + PAGE_OFFSET); | ||
45 | } | ||
46 | #else | ||
47 | static inline unsigned long virt_to_phys(void *address) | 18 | static inline unsigned long virt_to_phys(void *address) |
48 | { | 19 | { |
49 | return mm_vtop((unsigned long)address); | 20 | return __pa(address); |
50 | } | 21 | } |
51 | 22 | ||
52 | static inline void *phys_to_virt(unsigned long address) | 23 | static inline void *phys_to_virt(unsigned long address) |
53 | { | 24 | { |
54 | return (void *) mm_ptov(address); | 25 | return __va(address); |
55 | } | 26 | } |
56 | #endif | ||
57 | 27 | ||
58 | /* Permanent address of a page. */ | 28 | /* Permanent address of a page. */ |
59 | #define __page_address(page) (PAGE_OFFSET + (((page) - mem_map) << PAGE_SHIFT)) | 29 | #ifdef CONFIG_SINGLE_MEMORY_CHUNK |
60 | #define page_to_phys(page) virt_to_phys((void *)__page_address(page)) | 30 | #define page_to_phys(page) \ |
31 | __pa(PAGE_OFFSET + (((page) - pg_data_map[0].node_mem_map) << PAGE_SHIFT)) | ||
32 | #else | ||
33 | #define page_to_phys(_page) ({ \ | ||
34 | struct page *__page = _page; \ | ||
35 | struct pglist_data *pgdat; \ | ||
36 | pgdat = pg_data_table[page_to_nid(__page)]; \ | ||
37 | page_to_pfn(__page) << PAGE_SHIFT; \ | ||
38 | }) | ||
39 | #endif | ||
61 | 40 | ||
62 | /* | 41 | /* |
63 | * IO bus memory addresses are 1:1 with the physical address, | 42 | * IO bus memory addresses are 1:1 with the physical address, |
diff --git a/include/asm-mips/asmmacro.h b/include/asm-mips/asmmacro.h index 92e62ef711ed..c5f20df780e9 100644 --- a/include/asm-mips/asmmacro.h +++ b/include/asm-mips/asmmacro.h | |||
@@ -52,21 +52,6 @@ | |||
52 | .endm | 52 | .endm |
53 | #endif /* CONFIG_MIPS_MT_SMTC */ | 53 | #endif /* CONFIG_MIPS_MT_SMTC */ |
54 | 54 | ||
55 | #ifdef CONFIG_CPU_SB1 | ||
56 | .macro fpu_enable_hazard | ||
57 | .set push | ||
58 | .set noreorder | ||
59 | .set mips2 | ||
60 | SSNOP | ||
61 | bnezl $0, .+4 | ||
62 | SSNOP | ||
63 | .set pop | ||
64 | .endm | ||
65 | #else | ||
66 | .macro fpu_enable_hazard | ||
67 | .endm | ||
68 | #endif | ||
69 | |||
70 | /* | 55 | /* |
71 | * Temporary until all gas have MT ASE support | 56 | * Temporary until all gas have MT ASE support |
72 | */ | 57 | */ |
diff --git a/include/asm-mips/mips-boards/prom.h b/include/asm-mips/mips-boards/prom.h index daaf9f98fc63..a9db576a9768 100644 --- a/include/asm-mips/mips-boards/prom.h +++ b/include/asm-mips/mips-boards/prom.h | |||
@@ -33,6 +33,7 @@ extern void prom_meminit(void); | |||
33 | extern void prom_fixup_mem_map(unsigned long start_mem, unsigned long end_mem); | 33 | extern void prom_fixup_mem_map(unsigned long start_mem, unsigned long end_mem); |
34 | extern void mips_display_message(const char *str); | 34 | extern void mips_display_message(const char *str); |
35 | extern void mips_display_word(unsigned int num); | 35 | extern void mips_display_word(unsigned int num); |
36 | extern void mips_scroll_message(void); | ||
36 | extern int get_ethernet_addr(char *ethernet_addr); | 37 | extern int get_ethernet_addr(char *ethernet_addr); |
37 | 38 | ||
38 | /* Memory descriptor management. */ | 39 | /* Memory descriptor management. */ |
diff --git a/include/asm-mips/unistd.h b/include/asm-mips/unistd.h index 2f1087b3a202..91c306fcfb72 100644 --- a/include/asm-mips/unistd.h +++ b/include/asm-mips/unistd.h | |||
@@ -949,7 +949,6 @@ | |||
949 | #define __ARCH_WANT_SYS_UTIME | 949 | #define __ARCH_WANT_SYS_UTIME |
950 | #define __ARCH_WANT_SYS_WAITPID | 950 | #define __ARCH_WANT_SYS_WAITPID |
951 | #define __ARCH_WANT_SYS_SOCKETCALL | 951 | #define __ARCH_WANT_SYS_SOCKETCALL |
952 | #define __ARCH_WANT_SYS_FADVISE64 | ||
953 | #define __ARCH_WANT_SYS_GETPGRP | 952 | #define __ARCH_WANT_SYS_GETPGRP |
954 | #define __ARCH_WANT_SYS_LLSEEK | 953 | #define __ARCH_WANT_SYS_LLSEEK |
955 | #define __ARCH_WANT_SYS_NICE | 954 | #define __ARCH_WANT_SYS_NICE |
diff --git a/include/asm-powerpc/pgalloc-64.h b/include/asm-powerpc/pgalloc-64.h index d9a3a8ca58a1..94d0294341d6 100644 --- a/include/asm-powerpc/pgalloc-64.h +++ b/include/asm-powerpc/pgalloc-64.h | |||
@@ -90,7 +90,8 @@ static inline pte_t *pte_alloc_one_kernel(struct mm_struct *mm, | |||
90 | static inline struct page *pte_alloc_one(struct mm_struct *mm, | 90 | static inline struct page *pte_alloc_one(struct mm_struct *mm, |
91 | unsigned long address) | 91 | unsigned long address) |
92 | { | 92 | { |
93 | return virt_to_page(pte_alloc_one_kernel(mm, address)); | 93 | pte_t *pte = pte_alloc_one_kernel(mm, address); |
94 | return pte ? virt_to_page(pte) : NULL; | ||
94 | } | 95 | } |
95 | 96 | ||
96 | static inline void pte_free_kernel(pte_t *pte) | 97 | static inline void pte_free_kernel(pte_t *pte) |
diff --git a/include/asm-powerpc/tlb.h b/include/asm-powerpc/tlb.h index 0a17682663d8..66714042e438 100644 --- a/include/asm-powerpc/tlb.h +++ b/include/asm-powerpc/tlb.h | |||
@@ -38,6 +38,15 @@ extern void pte_free_finish(void); | |||
38 | 38 | ||
39 | static inline void tlb_flush(struct mmu_gather *tlb) | 39 | static inline void tlb_flush(struct mmu_gather *tlb) |
40 | { | 40 | { |
41 | struct ppc64_tlb_batch *tlbbatch = &__get_cpu_var(ppc64_tlb_batch); | ||
42 | |||
43 | /* If there's a TLB batch pending, then we must flush it because the | ||
44 | * pages are going to be freed and we really don't want to have a CPU | ||
45 | * access a freed page because it has a stale TLB | ||
46 | */ | ||
47 | if (tlbbatch->index) | ||
48 | __flush_tlb_pending(tlbbatch); | ||
49 | |||
41 | pte_free_finish(); | 50 | pte_free_finish(); |
42 | } | 51 | } |
43 | 52 | ||
diff --git a/include/asm-sh/cpu-sh4/freq.h b/include/asm-sh/cpu-sh4/freq.h index 86564e7a26ae..39f41fcd509d 100644 --- a/include/asm-sh/cpu-sh4/freq.h +++ b/include/asm-sh/cpu-sh4/freq.h | |||
@@ -24,6 +24,9 @@ | |||
24 | #define FRQMR1 0xffc80014 | 24 | #define FRQMR1 0xffc80014 |
25 | #else | 25 | #else |
26 | #define FRQCR 0xffc00000 | 26 | #define FRQCR 0xffc00000 |
27 | #define FRQCR_PSTBY 0x0200 | ||
28 | #define FRQCR_PLLEN 0x0400 | ||
29 | #define FRQCR_CKOEN 0x0800 | ||
27 | #endif | 30 | #endif |
28 | #define MIN_DIVISOR_NR 0 | 31 | #define MIN_DIVISOR_NR 0 |
29 | #define MAX_DIVISOR_NR 3 | 32 | #define MAX_DIVISOR_NR 3 |
diff --git a/include/asm-sh/dma.h b/include/asm-sh/dma.h index faf3051cd429..6034d4a29e73 100644 --- a/include/asm-sh/dma.h +++ b/include/asm-sh/dma.h | |||
@@ -13,6 +13,7 @@ | |||
13 | 13 | ||
14 | #include <linux/spinlock.h> | 14 | #include <linux/spinlock.h> |
15 | #include <linux/wait.h> | 15 | #include <linux/wait.h> |
16 | #include <linux/sched.h> | ||
16 | #include <linux/sysdev.h> | 17 | #include <linux/sysdev.h> |
17 | #include <asm/cpu/dma.h> | 18 | #include <asm/cpu/dma.h> |
18 | 19 | ||
diff --git a/include/asm-sh/io.h b/include/asm-sh/io.h index a0e55b09e4fd..aa80930ce8e4 100644 --- a/include/asm-sh/io.h +++ b/include/asm-sh/io.h | |||
@@ -116,13 +116,13 @@ void __raw_readsl(unsigned long addr, void *data, int longlen); | |||
116 | * redefined by userlevel programs. | 116 | * redefined by userlevel programs. |
117 | */ | 117 | */ |
118 | #ifdef __readb | 118 | #ifdef __readb |
119 | # define readb(a) ({ unsigned long r_ = __raw_readb(a); mb(); r_; }) | 119 | # define readb(a) ({ unsigned int r_ = __raw_readb(a); mb(); r_; }) |
120 | #endif | 120 | #endif |
121 | #ifdef __raw_readw | 121 | #ifdef __raw_readw |
122 | # define readw(a) ({ unsigned long r_ = __raw_readw(a); mb(); r_; }) | 122 | # define readw(a) ({ unsigned int r_ = __raw_readw(a); mb(); r_; }) |
123 | #endif | 123 | #endif |
124 | #ifdef __raw_readl | 124 | #ifdef __raw_readl |
125 | # define readl(a) ({ unsigned long r_ = __raw_readl(a); mb(); r_; }) | 125 | # define readl(a) ({ unsigned int r_ = __raw_readl(a); mb(); r_; }) |
126 | #endif | 126 | #endif |
127 | 127 | ||
128 | #ifdef __raw_writeb | 128 | #ifdef __raw_writeb |
diff --git a/include/asm-sh/se73180.h b/include/asm-sh/se73180.h index 3a4acb3e38a1..907c062b4c9a 100644 --- a/include/asm-sh/se73180.h +++ b/include/asm-sh/se73180.h | |||
@@ -1,9 +1,7 @@ | |||
1 | #ifndef __ASM_SH_HITACHI_SE73180_H | 1 | #ifndef __ASM_SH_SE73180_H |
2 | #define __ASM_SH_HITACHI_SE73180_H | 2 | #define __ASM_SH_SE73180_H |
3 | 3 | ||
4 | /* | 4 | /* |
5 | * include/asm-sh/se/se73180.h | ||
6 | * | ||
7 | * Copyright (C) 2003 Takashi Kusuda <kusuda-takashi@hitachi-ul.co.jp> | 5 | * Copyright (C) 2003 Takashi Kusuda <kusuda-takashi@hitachi-ul.co.jp> |
8 | * | 6 | * |
9 | * SH-Mobile SolutionEngine 73180 support | 7 | * SH-Mobile SolutionEngine 73180 support |
@@ -62,4 +60,7 @@ | |||
62 | #define __IO_PREFIX sh73180se | 60 | #define __IO_PREFIX sh73180se |
63 | #include <asm/io_generic.h> | 61 | #include <asm/io_generic.h> |
64 | 62 | ||
65 | #endif /* __ASM_SH_HITACHI_SE73180_H */ | 63 | /* arch/sh/boards/se/73180/irq.c */ |
64 | int shmse_irq_demux(int irq); | ||
65 | |||
66 | #endif /* __ASM_SH_SE73180_H */ | ||
diff --git a/include/asm-sh/smp.h b/include/asm-sh/smp.h index 71ecddf70db3..caa7b93f1bce 100644 --- a/include/asm-sh/smp.h +++ b/include/asm-sh/smp.h | |||
@@ -15,7 +15,7 @@ | |||
15 | 15 | ||
16 | #ifdef CONFIG_SMP | 16 | #ifdef CONFIG_SMP |
17 | 17 | ||
18 | #include <asm/spinlock.h> | 18 | #include <linux/spinlock.h> |
19 | #include <asm/atomic.h> | 19 | #include <asm/atomic.h> |
20 | #include <asm/current.h> | 20 | #include <asm/current.h> |
21 | 21 | ||
diff --git a/include/asm-sh/spinlock.h b/include/asm-sh/spinlock.h index 2586eef07d57..92f6e2008b2e 100644 --- a/include/asm-sh/spinlock.h +++ b/include/asm-sh/spinlock.h | |||
@@ -11,6 +11,7 @@ | |||
11 | #define __ASM_SH_SPINLOCK_H | 11 | #define __ASM_SH_SPINLOCK_H |
12 | 12 | ||
13 | #include <asm/atomic.h> | 13 | #include <asm/atomic.h> |
14 | #include <asm/spinlock_types.h> | ||
14 | 15 | ||
15 | /* | 16 | /* |
16 | * Your basic SMP spinlocks, allowing only a single CPU anywhere | 17 | * Your basic SMP spinlocks, allowing only a single CPU anywhere |
@@ -42,7 +43,7 @@ static inline void __raw_spin_lock(raw_spinlock_t *lock) | |||
42 | 43 | ||
43 | static inline void __raw_spin_unlock(raw_spinlock_t *lock) | 44 | static inline void __raw_spin_unlock(raw_spinlock_t *lock) |
44 | { | 45 | { |
45 | assert_spin_locked(lock); | 46 | //assert_spin_locked(lock); |
46 | 47 | ||
47 | lock->lock = 0; | 48 | lock->lock = 0; |
48 | } | 49 | } |
@@ -88,6 +89,11 @@ static inline void __raw_write_unlock(raw_rwlock_t *rw) | |||
88 | __raw_spin_unlock(&rw->lock); | 89 | __raw_spin_unlock(&rw->lock); |
89 | } | 90 | } |
90 | 91 | ||
92 | static inline int __raw_write_can_lock(raw_rwlock_t *rw) | ||
93 | { | ||
94 | return (atomic_read(&rw->counter) == RW_LOCK_BIAS); | ||
95 | } | ||
96 | |||
91 | static inline int __raw_read_trylock(raw_rwlock_t *lock) | 97 | static inline int __raw_read_trylock(raw_rwlock_t *lock) |
92 | { | 98 | { |
93 | atomic_t *count = (atomic_t*)lock; | 99 | atomic_t *count = (atomic_t*)lock; |
diff --git a/include/asm-sh/spinlock_types.h b/include/asm-sh/spinlock_types.h index 8c41b6c3aac8..5c58134f2c4e 100644 --- a/include/asm-sh/spinlock_types.h +++ b/include/asm-sh/spinlock_types.h | |||
@@ -9,7 +9,9 @@ typedef struct { | |||
9 | volatile unsigned long lock; | 9 | volatile unsigned long lock; |
10 | } raw_spinlock_t; | 10 | } raw_spinlock_t; |
11 | 11 | ||
12 | #define __SPIN_LOCK_UNLOCKED { 0 } | 12 | #define __RAW_SPIN_LOCK_UNLOCKED { 1 } |
13 | |||
14 | #include <asm/atomic.h> | ||
13 | 15 | ||
14 | typedef struct { | 16 | typedef struct { |
15 | raw_spinlock_t lock; | 17 | raw_spinlock_t lock; |
diff --git a/include/asm-sparc64/cpudata.h b/include/asm-sparc64/cpudata.h index 03c385de7619..445026fbec35 100644 --- a/include/asm-sparc64/cpudata.h +++ b/include/asm-sparc64/cpudata.h | |||
@@ -31,7 +31,7 @@ typedef struct { | |||
31 | unsigned int ecache_size; | 31 | unsigned int ecache_size; |
32 | unsigned int ecache_line_size; | 32 | unsigned int ecache_line_size; |
33 | int core_id; | 33 | int core_id; |
34 | unsigned int __pad3; | 34 | int proc_id; |
35 | } cpuinfo_sparc; | 35 | } cpuinfo_sparc; |
36 | 36 | ||
37 | DECLARE_PER_CPU(cpuinfo_sparc, __cpu_data); | 37 | DECLARE_PER_CPU(cpuinfo_sparc, __cpu_data); |
diff --git a/include/asm-sparc64/dma-mapping.h b/include/asm-sparc64/dma-mapping.h index 9329429fb7f6..4e21c2f3065c 100644 --- a/include/asm-sparc64/dma-mapping.h +++ b/include/asm-sparc64/dma-mapping.h | |||
@@ -162,6 +162,22 @@ dma_mapping_error(dma_addr_t dma_addr) | |||
162 | #else | 162 | #else |
163 | 163 | ||
164 | struct device; | 164 | struct device; |
165 | struct page; | ||
166 | struct scatterlist; | ||
167 | |||
168 | static inline int | ||
169 | dma_supported(struct device *dev, u64 mask) | ||
170 | { | ||
171 | BUG(); | ||
172 | return 0; | ||
173 | } | ||
174 | |||
175 | static inline int | ||
176 | dma_set_mask(struct device *dev, u64 dma_mask) | ||
177 | { | ||
178 | BUG(); | ||
179 | return 0; | ||
180 | } | ||
165 | 181 | ||
166 | static inline void *dma_alloc_coherent(struct device *dev, size_t size, | 182 | static inline void *dma_alloc_coherent(struct device *dev, size_t size, |
167 | dma_addr_t *dma_handle, gfp_t flag) | 183 | dma_addr_t *dma_handle, gfp_t flag) |
@@ -176,6 +192,52 @@ static inline void dma_free_coherent(struct device *dev, size_t size, | |||
176 | BUG(); | 192 | BUG(); |
177 | } | 193 | } |
178 | 194 | ||
195 | static inline dma_addr_t | ||
196 | dma_map_single(struct device *dev, void *cpu_addr, size_t size, | ||
197 | enum dma_data_direction direction) | ||
198 | { | ||
199 | BUG(); | ||
200 | return 0; | ||
201 | } | ||
202 | |||
203 | static inline void | ||
204 | dma_unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size, | ||
205 | enum dma_data_direction direction) | ||
206 | { | ||
207 | BUG(); | ||
208 | } | ||
209 | |||
210 | static inline dma_addr_t | ||
211 | dma_map_page(struct device *dev, struct page *page, | ||
212 | unsigned long offset, size_t size, | ||
213 | enum dma_data_direction direction) | ||
214 | { | ||
215 | BUG(); | ||
216 | return 0; | ||
217 | } | ||
218 | |||
219 | static inline void | ||
220 | dma_unmap_page(struct device *dev, dma_addr_t dma_address, size_t size, | ||
221 | enum dma_data_direction direction) | ||
222 | { | ||
223 | BUG(); | ||
224 | } | ||
225 | |||
226 | static inline int | ||
227 | dma_map_sg(struct device *dev, struct scatterlist *sg, int nents, | ||
228 | enum dma_data_direction direction) | ||
229 | { | ||
230 | BUG(); | ||
231 | return 0; | ||
232 | } | ||
233 | |||
234 | static inline void | ||
235 | dma_unmap_sg(struct device *dev, struct scatterlist *sg, int nhwentries, | ||
236 | enum dma_data_direction direction) | ||
237 | { | ||
238 | BUG(); | ||
239 | } | ||
240 | |||
179 | static inline void | 241 | static inline void |
180 | dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle, size_t size, | 242 | dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle, size_t size, |
181 | enum dma_data_direction direction) | 243 | enum dma_data_direction direction) |
@@ -190,6 +252,27 @@ dma_sync_single_for_device(struct device *dev, dma_addr_t dma_handle, size_t siz | |||
190 | BUG(); | 252 | BUG(); |
191 | } | 253 | } |
192 | 254 | ||
255 | static inline void | ||
256 | dma_sync_sg_for_cpu(struct device *dev, struct scatterlist *sg, int nelems, | ||
257 | enum dma_data_direction direction) | ||
258 | { | ||
259 | BUG(); | ||
260 | } | ||
261 | |||
262 | static inline void | ||
263 | dma_sync_sg_for_device(struct device *dev, struct scatterlist *sg, int nelems, | ||
264 | enum dma_data_direction direction) | ||
265 | { | ||
266 | BUG(); | ||
267 | } | ||
268 | |||
269 | static inline int | ||
270 | dma_mapping_error(dma_addr_t dma_addr) | ||
271 | { | ||
272 | BUG(); | ||
273 | return 0; | ||
274 | } | ||
275 | |||
193 | #endif /* PCI */ | 276 | #endif /* PCI */ |
194 | 277 | ||
195 | 278 | ||
diff --git a/include/asm-sparc64/hypervisor.h b/include/asm-sparc64/hypervisor.h index 5cdb1ff04838..5c2f9d4b9f06 100644 --- a/include/asm-sparc64/hypervisor.h +++ b/include/asm-sparc64/hypervisor.h | |||
@@ -1097,6 +1097,80 @@ extern unsigned long sun4v_mach_set_soft_state(unsigned long soft_state, | |||
1097 | */ | 1097 | */ |
1098 | #define HV_FAST_MACH_GET_SOFT_STATE 0x71 | 1098 | #define HV_FAST_MACH_GET_SOFT_STATE 0x71 |
1099 | 1099 | ||
1100 | /* svc_send() | ||
1101 | * TRAP: HV_FAST_TRAP | ||
1102 | * FUNCTION: HV_FAST_SVC_SEND | ||
1103 | * ARG0: service ID | ||
1104 | * ARG1: buffer real address | ||
1105 | * ARG2: buffer size | ||
1106 | * RET0: STATUS | ||
1107 | * RET1: sent_bytes | ||
1108 | * | ||
1109 | * Be careful, all output registers are clobbered by this operation, | ||
1110 | * so for example it is not possible to save away a value in %o4 | ||
1111 | * across the trap. | ||
1112 | */ | ||
1113 | #define HV_FAST_SVC_SEND 0x80 | ||
1114 | |||
1115 | /* svc_recv() | ||
1116 | * TRAP: HV_FAST_TRAP | ||
1117 | * FUNCTION: HV_FAST_SVC_RECV | ||
1118 | * ARG0: service ID | ||
1119 | * ARG1: buffer real address | ||
1120 | * ARG2: buffer size | ||
1121 | * RET0: STATUS | ||
1122 | * RET1: recv_bytes | ||
1123 | * | ||
1124 | * Be careful, all output registers are clobbered by this operation, | ||
1125 | * so for example it is not possible to save away a value in %o4 | ||
1126 | * across the trap. | ||
1127 | */ | ||
1128 | #define HV_FAST_SVC_RECV 0x81 | ||
1129 | |||
1130 | /* svc_getstatus() | ||
1131 | * TRAP: HV_FAST_TRAP | ||
1132 | * FUNCTION: HV_FAST_SVC_GETSTATUS | ||
1133 | * ARG0: service ID | ||
1134 | * RET0: STATUS | ||
1135 | * RET1: status bits | ||
1136 | */ | ||
1137 | #define HV_FAST_SVC_GETSTATUS 0x82 | ||
1138 | |||
1139 | /* svc_setstatus() | ||
1140 | * TRAP: HV_FAST_TRAP | ||
1141 | * FUNCTION: HV_FAST_SVC_SETSTATUS | ||
1142 | * ARG0: service ID | ||
1143 | * ARG1: bits to set | ||
1144 | * RET0: STATUS | ||
1145 | */ | ||
1146 | #define HV_FAST_SVC_SETSTATUS 0x83 | ||
1147 | |||
1148 | /* svc_clrstatus() | ||
1149 | * TRAP: HV_FAST_TRAP | ||
1150 | * FUNCTION: HV_FAST_SVC_CLRSTATUS | ||
1151 | * ARG0: service ID | ||
1152 | * ARG1: bits to clear | ||
1153 | * RET0: STATUS | ||
1154 | */ | ||
1155 | #define HV_FAST_SVC_CLRSTATUS 0x84 | ||
1156 | |||
1157 | #ifndef __ASSEMBLY__ | ||
1158 | extern unsigned long sun4v_svc_send(unsigned long svc_id, | ||
1159 | unsigned long buffer, | ||
1160 | unsigned long buffer_size, | ||
1161 | unsigned long *sent_bytes); | ||
1162 | extern unsigned long sun4v_svc_recv(unsigned long svc_id, | ||
1163 | unsigned long buffer, | ||
1164 | unsigned long buffer_size, | ||
1165 | unsigned long *recv_bytes); | ||
1166 | extern unsigned long sun4v_svc_getstatus(unsigned long svc_id, | ||
1167 | unsigned long *status_bits); | ||
1168 | extern unsigned long sun4v_svc_setstatus(unsigned long svc_id, | ||
1169 | unsigned long status_bits); | ||
1170 | extern unsigned long sun4v_svc_clrstatus(unsigned long svc_id, | ||
1171 | unsigned long status_bits); | ||
1172 | #endif | ||
1173 | |||
1100 | /* Trap trace services. | 1174 | /* Trap trace services. |
1101 | * | 1175 | * |
1102 | * The hypervisor provides a trap tracing capability for privileged | 1176 | * The hypervisor provides a trap tracing capability for privileged |
@@ -2724,6 +2798,105 @@ struct hv_mmu_statistics { | |||
2724 | */ | 2798 | */ |
2725 | #define HV_FAST_MMUSTAT_INFO 0x103 | 2799 | #define HV_FAST_MMUSTAT_INFO 0x103 |
2726 | 2800 | ||
2801 | #ifndef __ASSEMBLY__ | ||
2802 | extern unsigned long sun4v_mmustat_conf(unsigned long ra, unsigned long *orig_ra); | ||
2803 | extern unsigned long sun4v_mmustat_info(unsigned long *ra); | ||
2804 | #endif | ||
2805 | |||
2806 | /* NCS crypto services */ | ||
2807 | |||
2808 | /* ncs_request() sub-function numbers */ | ||
2809 | #define HV_NCS_QCONF 0x01 | ||
2810 | #define HV_NCS_QTAIL_UPDATE 0x02 | ||
2811 | |||
2812 | #ifndef __ASSEMBLY__ | ||
2813 | struct hv_ncs_queue_entry { | ||
2814 | /* MAU Control Register */ | ||
2815 | unsigned long mau_control; | ||
2816 | #define MAU_CONTROL_INV_PARITY 0x0000000000002000 | ||
2817 | #define MAU_CONTROL_STRAND 0x0000000000001800 | ||
2818 | #define MAU_CONTROL_BUSY 0x0000000000000400 | ||
2819 | #define MAU_CONTROL_INT 0x0000000000000200 | ||
2820 | #define MAU_CONTROL_OP 0x00000000000001c0 | ||
2821 | #define MAU_CONTROL_OP_SHIFT 6 | ||
2822 | #define MAU_OP_LOAD_MA_MEMORY 0x0 | ||
2823 | #define MAU_OP_STORE_MA_MEMORY 0x1 | ||
2824 | #define MAU_OP_MODULAR_MULT 0x2 | ||
2825 | #define MAU_OP_MODULAR_REDUCE 0x3 | ||
2826 | #define MAU_OP_MODULAR_EXP_LOOP 0x4 | ||
2827 | #define MAU_CONTROL_LEN 0x000000000000003f | ||
2828 | #define MAU_CONTROL_LEN_SHIFT 0 | ||
2829 | |||
2830 | /* Real address of bytes to load or store bytes | ||
2831 | * into/out-of the MAU. | ||
2832 | */ | ||
2833 | unsigned long mau_mpa; | ||
2834 | |||
2835 | /* Modular Arithmetic MA Offset Register. */ | ||
2836 | unsigned long mau_ma; | ||
2837 | |||
2838 | /* Modular Arithmetic N Prime Register. */ | ||
2839 | unsigned long mau_np; | ||
2840 | }; | ||
2841 | |||
2842 | struct hv_ncs_qconf_arg { | ||
2843 | unsigned long mid; /* MAU ID, 1 per core on Niagara */ | ||
2844 | unsigned long base; /* Real address base of queue */ | ||
2845 | unsigned long end; /* Real address end of queue */ | ||
2846 | unsigned long num_ents; /* Number of entries in queue */ | ||
2847 | }; | ||
2848 | |||
2849 | struct hv_ncs_qtail_update_arg { | ||
2850 | unsigned long mid; /* MAU ID, 1 per core on Niagara */ | ||
2851 | unsigned long tail; /* New tail index to use */ | ||
2852 | unsigned long syncflag; /* only SYNCFLAG_SYNC is implemented */ | ||
2853 | #define HV_NCS_SYNCFLAG_SYNC 0x00 | ||
2854 | #define HV_NCS_SYNCFLAG_ASYNC 0x01 | ||
2855 | }; | ||
2856 | #endif | ||
2857 | |||
2858 | /* ncs_request() | ||
2859 | * TRAP: HV_FAST_TRAP | ||
2860 | * FUNCTION: HV_FAST_NCS_REQUEST | ||
2861 | * ARG0: NCS sub-function | ||
2862 | * ARG1: sub-function argument real address | ||
2863 | * ARG2: size in bytes of sub-function argument | ||
2864 | * RET0: status | ||
2865 | * | ||
2866 | * The MAU chip of the Niagara processor is not directly accessible | ||
2867 | * to privileged code, instead it is programmed indirectly via this | ||
2868 | * hypervisor API. | ||
2869 | * | ||
2870 | * The interfaces defines a queue of MAU operations to perform. | ||
2871 | * Privileged code registers a queue with the hypervisor by invoking | ||
2872 | * this HVAPI with the HV_NCS_QCONF sub-function, which defines the | ||
2873 | * base, end, and number of entries of the queue. Each queue entry | ||
2874 | * contains a MAU register struct block. | ||
2875 | * | ||
2876 | * The privileged code then proceeds to add entries to the queue and | ||
2877 | * then invoke the HV_NCS_QTAIL_UPDATE sub-function. Since only | ||
2878 | * synchronous operations are supported by the current hypervisor, | ||
2879 | * HV_NCS_QTAIL_UPDATE will run all the pending queue entries to | ||
2880 | * completion and return HV_EOK, or return an error code. | ||
2881 | * | ||
2882 | * The real address of the sub-function argument must be aligned on at | ||
2883 | * least an 8-byte boundary. | ||
2884 | * | ||
2885 | * The tail argument of HV_NCS_QTAIL_UPDATE is an index, not a byte | ||
2886 | * offset, into the queue and must be less than or equal the 'num_ents' | ||
2887 | * argument given in the HV_NCS_QCONF call. | ||
2888 | */ | ||
2889 | #define HV_FAST_NCS_REQUEST 0x110 | ||
2890 | |||
2891 | #ifndef __ASSEMBLY__ | ||
2892 | extern unsigned long sun4v_ncs_request(unsigned long request, | ||
2893 | unsigned long arg_ra, | ||
2894 | unsigned long arg_size); | ||
2895 | #endif | ||
2896 | |||
2897 | #define HV_FAST_FIRE_GET_PERFREG 0x120 | ||
2898 | #define HV_FAST_FIRE_SET_PERFREG 0x121 | ||
2899 | |||
2727 | /* Function numbers for HV_CORE_TRAP. */ | 2900 | /* Function numbers for HV_CORE_TRAP. */ |
2728 | #define HV_CORE_SET_VER 0x00 | 2901 | #define HV_CORE_SET_VER 0x00 |
2729 | #define HV_CORE_PUTCHAR 0x01 | 2902 | #define HV_CORE_PUTCHAR 0x01 |
diff --git a/include/asm-sparc64/smp.h b/include/asm-sparc64/smp.h index f76e1492add5..4fb8c4bfb848 100644 --- a/include/asm-sparc64/smp.h +++ b/include/asm-sparc64/smp.h | |||
@@ -33,6 +33,8 @@ extern cpumask_t phys_cpu_present_map; | |||
33 | #define cpu_possible_map phys_cpu_present_map | 33 | #define cpu_possible_map phys_cpu_present_map |
34 | 34 | ||
35 | extern cpumask_t cpu_sibling_map[NR_CPUS]; | 35 | extern cpumask_t cpu_sibling_map[NR_CPUS]; |
36 | extern cpumask_t cpu_core_map[NR_CPUS]; | ||
37 | extern int sparc64_multi_core; | ||
36 | 38 | ||
37 | /* | 39 | /* |
38 | * General functions that each host system must provide. | 40 | * General functions that each host system must provide. |
diff --git a/include/asm-sparc64/topology.h b/include/asm-sparc64/topology.h index e0d450d600ec..290ac75f385b 100644 --- a/include/asm-sparc64/topology.h +++ b/include/asm-sparc64/topology.h | |||
@@ -1,12 +1,17 @@ | |||
1 | #ifndef _ASM_SPARC64_TOPOLOGY_H | 1 | #ifndef _ASM_SPARC64_TOPOLOGY_H |
2 | #define _ASM_SPARC64_TOPOLOGY_H | 2 | #define _ASM_SPARC64_TOPOLOGY_H |
3 | 3 | ||
4 | #include <asm/spitfire.h> | 4 | #ifdef CONFIG_SMP |
5 | #define smt_capable() (tlb_type == hypervisor) | 5 | #define topology_physical_package_id(cpu) (cpu_data(cpu).proc_id) |
6 | #define topology_core_id(cpu) (cpu_data(cpu).core_id) | ||
7 | #define topology_core_siblings(cpu) (cpu_core_map[cpu]) | ||
8 | #define topology_thread_siblings(cpu) (cpu_sibling_map[cpu]) | ||
9 | #define mc_capable() (sparc64_multi_core) | ||
10 | #define smt_capable() (sparc64_multi_core) | ||
11 | #endif /* CONFIG_SMP */ | ||
6 | 12 | ||
7 | #include <asm-generic/topology.h> | 13 | #include <asm-generic/topology.h> |
8 | 14 | ||
9 | #define topology_core_id(cpu) (cpu_data(cpu).core_id) | 15 | #define cpu_coregroup_map(cpu) (cpu_core_map[cpu]) |
10 | #define topology_thread_siblings(cpu) (cpu_sibling_map[cpu]) | ||
11 | 16 | ||
12 | #endif /* _ASM_SPARC64_TOPOLOGY_H */ | 17 | #endif /* _ASM_SPARC64_TOPOLOGY_H */ |
diff --git a/include/linux/Kbuild b/include/linux/Kbuild index e1013156c25e..f317c270d4bf 100644 --- a/include/linux/Kbuild +++ b/include/linux/Kbuild | |||
@@ -62,6 +62,8 @@ header-y += fadvise.h | |||
62 | header-y += fd.h | 62 | header-y += fd.h |
63 | header-y += fdreg.h | 63 | header-y += fdreg.h |
64 | header-y += fib_rules.h | 64 | header-y += fib_rules.h |
65 | header-y += firewire-cdev.h | ||
66 | header-y += firewire-constants.h | ||
65 | header-y += fuse.h | 67 | header-y += fuse.h |
66 | header-y += genetlink.h | 68 | header-y += genetlink.h |
67 | header-y += gen_stats.h | 69 | header-y += gen_stats.h |
diff --git a/include/linux/bootmem.h b/include/linux/bootmem.h index 0365ec9fc0c9..c83534ee1e79 100644 --- a/include/linux/bootmem.h +++ b/include/linux/bootmem.h | |||
@@ -59,6 +59,7 @@ extern void *__alloc_bootmem_core(struct bootmem_data *bdata, | |||
59 | unsigned long align, | 59 | unsigned long align, |
60 | unsigned long goal, | 60 | unsigned long goal, |
61 | unsigned long limit); | 61 | unsigned long limit); |
62 | extern void *alloc_bootmem_high_node(pg_data_t *pgdat, unsigned long size); | ||
62 | 63 | ||
63 | #ifndef CONFIG_HAVE_ARCH_BOOTMEM_NODE | 64 | #ifndef CONFIG_HAVE_ARCH_BOOTMEM_NODE |
64 | extern void reserve_bootmem(unsigned long addr, unsigned long size); | 65 | extern void reserve_bootmem(unsigned long addr, unsigned long size); |
diff --git a/include/linux/errno.h b/include/linux/errno.h index d90b80f9b28c..46685832ed99 100644 --- a/include/linux/errno.h +++ b/include/linux/errno.h | |||
@@ -5,7 +5,12 @@ | |||
5 | 5 | ||
6 | #ifdef __KERNEL__ | 6 | #ifdef __KERNEL__ |
7 | 7 | ||
8 | /* Should never be seen by user programs */ | 8 | /* |
9 | * These should never be seen by user programs. To return one of ERESTART* | ||
10 | * codes, signal_pending() MUST be set. Note that ptrace can observe these | ||
11 | * at syscall exit tracing, but they will never be left for the debugged user | ||
12 | * process to see. | ||
13 | */ | ||
9 | #define ERESTARTSYS 512 | 14 | #define ERESTARTSYS 512 |
10 | #define ERESTARTNOINTR 513 | 15 | #define ERESTARTNOINTR 513 |
11 | #define ERESTARTNOHAND 514 /* restart if no handler.. */ | 16 | #define ERESTARTNOHAND 514 /* restart if no handler.. */ |
diff --git a/include/linux/ext4_fs.h b/include/linux/ext4_fs.h index 54c576d414c3..de1f9f78625a 100644 --- a/include/linux/ext4_fs.h +++ b/include/linux/ext4_fs.h | |||
@@ -32,9 +32,9 @@ | |||
32 | /* | 32 | /* |
33 | * Define EXT4_RESERVATION to reserve data blocks for expanding files | 33 | * Define EXT4_RESERVATION to reserve data blocks for expanding files |
34 | */ | 34 | */ |
35 | #define EXT4_DEFAULT_RESERVE_BLOCKS 8 | 35 | #define EXT4_DEFAULT_RESERVE_BLOCKS 8 |
36 | /*max window size: 1024(direct blocks) + 3([t,d]indirect blocks) */ | 36 | /*max window size: 1024(direct blocks) + 3([t,d]indirect blocks) */ |
37 | #define EXT4_MAX_RESERVE_BLOCKS 1027 | 37 | #define EXT4_MAX_RESERVE_BLOCKS 1027 |
38 | #define EXT4_RESERVE_WINDOW_NOT_ALLOCATED 0 | 38 | #define EXT4_RESERVE_WINDOW_NOT_ALLOCATED 0 |
39 | /* | 39 | /* |
40 | * Always enable hashed directories | 40 | * Always enable hashed directories |
@@ -204,12 +204,12 @@ struct ext4_group_desc | |||
204 | 204 | ||
205 | /* Used to pass group descriptor data when online resize is done */ | 205 | /* Used to pass group descriptor data when online resize is done */ |
206 | struct ext4_new_group_input { | 206 | struct ext4_new_group_input { |
207 | __u32 group; /* Group number for this data */ | 207 | __u32 group; /* Group number for this data */ |
208 | __u64 block_bitmap; /* Absolute block number of block bitmap */ | 208 | __u64 block_bitmap; /* Absolute block number of block bitmap */ |
209 | __u64 inode_bitmap; /* Absolute block number of inode bitmap */ | 209 | __u64 inode_bitmap; /* Absolute block number of inode bitmap */ |
210 | __u64 inode_table; /* Absolute block number of inode table start */ | 210 | __u64 inode_table; /* Absolute block number of inode table start */ |
211 | __u32 blocks_count; /* Total number of blocks in this group */ | 211 | __u32 blocks_count; /* Total number of blocks in this group */ |
212 | __u16 reserved_blocks; /* Number of reserved blocks in this group */ | 212 | __u16 reserved_blocks; /* Number of reserved blocks in this group */ |
213 | __u16 unused; | 213 | __u16 unused; |
214 | }; | 214 | }; |
215 | 215 | ||
@@ -310,7 +310,7 @@ struct ext4_inode { | |||
310 | __u8 l_i_frag; /* Fragment number */ | 310 | __u8 l_i_frag; /* Fragment number */ |
311 | __u8 l_i_fsize; /* Fragment size */ | 311 | __u8 l_i_fsize; /* Fragment size */ |
312 | __le16 l_i_file_acl_high; | 312 | __le16 l_i_file_acl_high; |
313 | __le16 l_i_uid_high; /* these 2 fields */ | 313 | __le16 l_i_uid_high; /* these 2 fields */ |
314 | __le16 l_i_gid_high; /* were reserved2[0] */ | 314 | __le16 l_i_gid_high; /* were reserved2[0] */ |
315 | __u32 l_i_reserved2; | 315 | __u32 l_i_reserved2; |
316 | } linux2; | 316 | } linux2; |
@@ -513,7 +513,14 @@ struct ext4_super_block { | |||
513 | /*150*/ __le32 s_blocks_count_hi; /* Blocks count */ | 513 | /*150*/ __le32 s_blocks_count_hi; /* Blocks count */ |
514 | __le32 s_r_blocks_count_hi; /* Reserved blocks count */ | 514 | __le32 s_r_blocks_count_hi; /* Reserved blocks count */ |
515 | __le32 s_free_blocks_count_hi; /* Free blocks count */ | 515 | __le32 s_free_blocks_count_hi; /* Free blocks count */ |
516 | __u32 s_reserved[169]; /* Padding to the end of the block */ | 516 | __u16 s_min_extra_isize; /* All inodes have at least # bytes */ |
517 | __u16 s_want_extra_isize; /* New inodes should reserve # bytes */ | ||
518 | __u32 s_flags; /* Miscellaneous flags */ | ||
519 | __u16 s_raid_stride; /* RAID stride */ | ||
520 | __u16 s_mmp_interval; /* # seconds to wait in MMP checking */ | ||
521 | __u64 s_mmp_block; /* Block for multi-mount protection */ | ||
522 | __u32 s_raid_stripe_width; /* blocks on all data disks (N*stride)*/ | ||
523 | __u32 s_reserved[163]; /* Padding to the end of the block */ | ||
517 | }; | 524 | }; |
518 | 525 | ||
519 | #ifdef __KERNEL__ | 526 | #ifdef __KERNEL__ |
@@ -780,9 +787,9 @@ void ext4_get_group_no_and_offset(struct super_block *sb, ext4_fsblk_t blocknr, | |||
780 | * Ok, these declarations are also in <linux/kernel.h> but none of the | 787 | * Ok, these declarations are also in <linux/kernel.h> but none of the |
781 | * ext4 source programs needs to include it so they are duplicated here. | 788 | * ext4 source programs needs to include it so they are duplicated here. |
782 | */ | 789 | */ |
783 | # define NORET_TYPE /**/ | 790 | # define NORET_TYPE /**/ |
784 | # define ATTRIB_NORET __attribute__((noreturn)) | 791 | # define ATTRIB_NORET __attribute__((noreturn)) |
785 | # define NORET_AND noreturn, | 792 | # define NORET_AND noreturn, |
786 | 793 | ||
787 | /* balloc.c */ | 794 | /* balloc.c */ |
788 | extern unsigned int ext4_block_group(struct super_block *sb, | 795 | extern unsigned int ext4_block_group(struct super_block *sb, |
diff --git a/include/linux/ext4_fs_extents.h b/include/linux/ext4_fs_extents.h index 7eb1d73fc5d1..acfe59740b03 100644 --- a/include/linux/ext4_fs_extents.h +++ b/include/linux/ext4_fs_extents.h | |||
@@ -151,8 +151,8 @@ typedef int (*ext_prepare_callback)(struct inode *, struct ext4_ext_path *, | |||
151 | ((struct ext4_extent_idx *) (((char *) (__hdr__)) + \ | 151 | ((struct ext4_extent_idx *) (((char *) (__hdr__)) + \ |
152 | sizeof(struct ext4_extent_header))) | 152 | sizeof(struct ext4_extent_header))) |
153 | #define EXT_HAS_FREE_INDEX(__path__) \ | 153 | #define EXT_HAS_FREE_INDEX(__path__) \ |
154 | (le16_to_cpu((__path__)->p_hdr->eh_entries) \ | 154 | (le16_to_cpu((__path__)->p_hdr->eh_entries) \ |
155 | < le16_to_cpu((__path__)->p_hdr->eh_max)) | 155 | < le16_to_cpu((__path__)->p_hdr->eh_max)) |
156 | #define EXT_LAST_EXTENT(__hdr__) \ | 156 | #define EXT_LAST_EXTENT(__hdr__) \ |
157 | (EXT_FIRST_EXTENT((__hdr__)) + le16_to_cpu((__hdr__)->eh_entries) - 1) | 157 | (EXT_FIRST_EXTENT((__hdr__)) + le16_to_cpu((__hdr__)->eh_entries) - 1) |
158 | #define EXT_LAST_INDEX(__hdr__) \ | 158 | #define EXT_LAST_INDEX(__hdr__) \ |
@@ -190,6 +190,7 @@ ext4_ext_invalidate_cache(struct inode *inode) | |||
190 | 190 | ||
191 | extern int ext4_extent_tree_init(handle_t *, struct inode *); | 191 | extern int ext4_extent_tree_init(handle_t *, struct inode *); |
192 | extern int ext4_ext_calc_credits_for_insert(struct inode *, struct ext4_ext_path *); | 192 | extern int ext4_ext_calc_credits_for_insert(struct inode *, struct ext4_ext_path *); |
193 | extern unsigned int ext4_ext_check_overlap(struct inode *, struct ext4_extent *, struct ext4_ext_path *); | ||
193 | extern int ext4_ext_insert_extent(handle_t *, struct inode *, struct ext4_ext_path *, struct ext4_extent *); | 194 | extern int ext4_ext_insert_extent(handle_t *, struct inode *, struct ext4_ext_path *, struct ext4_extent *); |
194 | extern int ext4_ext_walk_space(struct inode *, unsigned long, unsigned long, ext_prepare_callback, void *); | 195 | extern int ext4_ext_walk_space(struct inode *, unsigned long, unsigned long, ext_prepare_callback, void *); |
195 | extern struct ext4_ext_path * ext4_ext_find_extent(struct inode *, int, struct ext4_ext_path *); | 196 | extern struct ext4_ext_path * ext4_ext_find_extent(struct inode *, int, struct ext4_ext_path *); |
diff --git a/include/linux/ext4_fs_i.h b/include/linux/ext4_fs_i.h index d5b177e5b395..9de494406995 100644 --- a/include/linux/ext4_fs_i.h +++ b/include/linux/ext4_fs_i.h | |||
@@ -41,14 +41,14 @@ struct ext4_reserve_window_node { | |||
41 | 41 | ||
42 | struct ext4_block_alloc_info { | 42 | struct ext4_block_alloc_info { |
43 | /* information about reservation window */ | 43 | /* information about reservation window */ |
44 | struct ext4_reserve_window_node rsv_window_node; | 44 | struct ext4_reserve_window_node rsv_window_node; |
45 | /* | 45 | /* |
46 | * was i_next_alloc_block in ext4_inode_info | 46 | * was i_next_alloc_block in ext4_inode_info |
47 | * is the logical (file-relative) number of the | 47 | * is the logical (file-relative) number of the |
48 | * most-recently-allocated block in this file. | 48 | * most-recently-allocated block in this file. |
49 | * We use this for detecting linearly ascending allocation requests. | 49 | * We use this for detecting linearly ascending allocation requests. |
50 | */ | 50 | */ |
51 | __u32 last_alloc_logical_block; | 51 | __u32 last_alloc_logical_block; |
52 | /* | 52 | /* |
53 | * Was i_next_alloc_goal in ext4_inode_info | 53 | * Was i_next_alloc_goal in ext4_inode_info |
54 | * is the *physical* companion to i_next_alloc_block. | 54 | * is the *physical* companion to i_next_alloc_block. |
@@ -56,7 +56,7 @@ struct ext4_block_alloc_info { | |||
56 | * allocated to this file. This give us the goal (target) for the next | 56 | * allocated to this file. This give us the goal (target) for the next |
57 | * allocation when we detect linearly ascending requests. | 57 | * allocation when we detect linearly ascending requests. |
58 | */ | 58 | */ |
59 | ext4_fsblk_t last_alloc_physical_block; | 59 | ext4_fsblk_t last_alloc_physical_block; |
60 | }; | 60 | }; |
61 | 61 | ||
62 | #define rsv_start rsv_window._rsv_start | 62 | #define rsv_start rsv_window._rsv_start |
diff --git a/include/linux/fb.h b/include/linux/fb.h index c654d0e9ce33..66226824ab68 100644 --- a/include/linux/fb.h +++ b/include/linux/fb.h | |||
@@ -942,6 +942,7 @@ extern int fb_new_modelist(struct fb_info *info); | |||
942 | 942 | ||
943 | extern struct fb_info *registered_fb[FB_MAX]; | 943 | extern struct fb_info *registered_fb[FB_MAX]; |
944 | extern int num_registered_fb; | 944 | extern int num_registered_fb; |
945 | extern struct class *fb_class; | ||
945 | 946 | ||
946 | static inline void __fb_pad_aligned_buffer(u8 *dst, u32 d_pitch, | 947 | static inline void __fb_pad_aligned_buffer(u8 *dst, u32 d_pitch, |
947 | u8 *src, u32 s_pitch, u32 height) | 948 | u8 *src, u32 s_pitch, u32 height) |
diff --git a/include/linux/firewire-cdev.h b/include/linux/firewire-cdev.h index d4455eb2ae35..efbe1fda1a22 100644 --- a/include/linux/firewire-cdev.h +++ b/include/linux/firewire-cdev.h | |||
@@ -198,13 +198,15 @@ struct fw_cdev_create_iso_context { | |||
198 | __u32 handle; | 198 | __u32 handle; |
199 | }; | 199 | }; |
200 | 200 | ||
201 | #define FW_CDEV_ISO_PAYLOAD_LENGTH(v) (v) | ||
202 | #define FW_CDEV_ISO_INTERRUPT (1 << 16) | ||
203 | #define FW_CDEV_ISO_SKIP (1 << 17) | ||
204 | #define FW_CDEV_ISO_TAG(v) ((v) << 18) | ||
205 | #define FW_CDEV_ISO_SY(v) ((v) << 20) | ||
206 | #define FW_CDEV_ISO_HEADER_LENGTH(v) ((v) << 24) | ||
207 | |||
201 | struct fw_cdev_iso_packet { | 208 | struct fw_cdev_iso_packet { |
202 | __u16 payload_length; /* Length of indirect payload. */ | 209 | __u32 control; |
203 | __u32 interrupt : 1; /* Generate interrupt on this packet */ | ||
204 | __u32 skip : 1; /* Set to not send packet at all. */ | ||
205 | __u32 tag : 2; | ||
206 | __u32 sy : 4; | ||
207 | __u32 header_length : 8; /* Length of immediate header. */ | ||
208 | __u32 header[0]; | 210 | __u32 header[0]; |
209 | }; | 211 | }; |
210 | 212 | ||
diff --git a/include/linux/fs.h b/include/linux/fs.h index 7cf0c54a46a7..b3ae77cccbb6 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
@@ -938,6 +938,7 @@ struct super_block { | |||
938 | struct list_head s_files; | 938 | struct list_head s_files; |
939 | 939 | ||
940 | struct block_device *s_bdev; | 940 | struct block_device *s_bdev; |
941 | struct mtd_info *s_mtd; | ||
941 | struct list_head s_instances; | 942 | struct list_head s_instances; |
942 | struct quota_info s_dquot; /* Diskquota specific options */ | 943 | struct quota_info s_dquot; /* Diskquota specific options */ |
943 | 944 | ||
diff --git a/include/linux/inetdevice.h b/include/linux/inetdevice.h index c0f7aec331c2..ae04901aa09a 100644 --- a/include/linux/inetdevice.h +++ b/include/linux/inetdevice.h | |||
@@ -3,6 +3,7 @@ | |||
3 | 3 | ||
4 | #ifdef __KERNEL__ | 4 | #ifdef __KERNEL__ |
5 | 5 | ||
6 | #include <linux/bitmap.h> | ||
6 | #include <linux/if.h> | 7 | #include <linux/if.h> |
7 | #include <linux/netdevice.h> | 8 | #include <linux/netdevice.h> |
8 | #include <linux/rcupdate.h> | 9 | #include <linux/rcupdate.h> |
@@ -10,28 +11,9 @@ | |||
10 | 11 | ||
11 | struct ipv4_devconf | 12 | struct ipv4_devconf |
12 | { | 13 | { |
13 | int accept_redirects; | ||
14 | int send_redirects; | ||
15 | int secure_redirects; | ||
16 | int shared_media; | ||
17 | int accept_source_route; | ||
18 | int rp_filter; | ||
19 | int proxy_arp; | ||
20 | int bootp_relay; | ||
21 | int log_martians; | ||
22 | int forwarding; | ||
23 | int mc_forwarding; | ||
24 | int tag; | ||
25 | int arp_filter; | ||
26 | int arp_announce; | ||
27 | int arp_ignore; | ||
28 | int arp_accept; | ||
29 | int medium_id; | ||
30 | int no_xfrm; | ||
31 | int no_policy; | ||
32 | int force_igmp_version; | ||
33 | int promote_secondaries; | ||
34 | void *sysctl; | 14 | void *sysctl; |
15 | int data[__NET_IPV4_CONF_MAX - 1]; | ||
16 | DECLARE_BITMAP(state, __NET_IPV4_CONF_MAX - 1); | ||
35 | }; | 17 | }; |
36 | 18 | ||
37 | extern struct ipv4_devconf ipv4_devconf; | 19 | extern struct ipv4_devconf ipv4_devconf; |
@@ -60,30 +42,70 @@ struct in_device | |||
60 | struct rcu_head rcu_head; | 42 | struct rcu_head rcu_head; |
61 | }; | 43 | }; |
62 | 44 | ||
63 | #define IN_DEV_FORWARD(in_dev) ((in_dev)->cnf.forwarding) | 45 | #define IPV4_DEVCONF(cnf, attr) ((cnf).data[NET_IPV4_CONF_ ## attr - 1]) |
64 | #define IN_DEV_MFORWARD(in_dev) (ipv4_devconf.mc_forwarding && (in_dev)->cnf.mc_forwarding) | 46 | #define IPV4_DEVCONF_ALL(attr) IPV4_DEVCONF(ipv4_devconf, attr) |
65 | #define IN_DEV_RPFILTER(in_dev) (ipv4_devconf.rp_filter && (in_dev)->cnf.rp_filter) | 47 | |
66 | #define IN_DEV_SOURCE_ROUTE(in_dev) (ipv4_devconf.accept_source_route && (in_dev)->cnf.accept_source_route) | 48 | static inline int ipv4_devconf_get(struct in_device *in_dev, int index) |
67 | #define IN_DEV_BOOTP_RELAY(in_dev) (ipv4_devconf.bootp_relay && (in_dev)->cnf.bootp_relay) | 49 | { |
68 | 50 | index--; | |
69 | #define IN_DEV_LOG_MARTIANS(in_dev) (ipv4_devconf.log_martians || (in_dev)->cnf.log_martians) | 51 | return in_dev->cnf.data[index]; |
70 | #define IN_DEV_PROXY_ARP(in_dev) (ipv4_devconf.proxy_arp || (in_dev)->cnf.proxy_arp) | 52 | } |
71 | #define IN_DEV_SHARED_MEDIA(in_dev) (ipv4_devconf.shared_media || (in_dev)->cnf.shared_media) | 53 | |
72 | #define IN_DEV_TX_REDIRECTS(in_dev) (ipv4_devconf.send_redirects || (in_dev)->cnf.send_redirects) | 54 | static inline void ipv4_devconf_set(struct in_device *in_dev, int index, |
73 | #define IN_DEV_SEC_REDIRECTS(in_dev) (ipv4_devconf.secure_redirects || (in_dev)->cnf.secure_redirects) | 55 | int val) |
74 | #define IN_DEV_IDTAG(in_dev) ((in_dev)->cnf.tag) | 56 | { |
75 | #define IN_DEV_MEDIUM_ID(in_dev) ((in_dev)->cnf.medium_id) | 57 | index--; |
76 | #define IN_DEV_PROMOTE_SECONDARIES(in_dev) (ipv4_devconf.promote_secondaries || (in_dev)->cnf.promote_secondaries) | 58 | set_bit(index, in_dev->cnf.state); |
59 | in_dev->cnf.data[index] = val; | ||
60 | } | ||
61 | |||
62 | static inline void ipv4_devconf_setall(struct in_device *in_dev) | ||
63 | { | ||
64 | bitmap_fill(in_dev->cnf.state, __NET_IPV4_CONF_MAX - 1); | ||
65 | } | ||
66 | |||
67 | #define IN_DEV_CONF_GET(in_dev, attr) \ | ||
68 | ipv4_devconf_get((in_dev), NET_IPV4_CONF_ ## attr) | ||
69 | #define IN_DEV_CONF_SET(in_dev, attr, val) \ | ||
70 | ipv4_devconf_set((in_dev), NET_IPV4_CONF_ ## attr, (val)) | ||
71 | |||
72 | #define IN_DEV_ANDCONF(in_dev, attr) \ | ||
73 | (IPV4_DEVCONF_ALL(attr) && IN_DEV_CONF_GET((in_dev), attr)) | ||
74 | #define IN_DEV_ORCONF(in_dev, attr) \ | ||
75 | (IPV4_DEVCONF_ALL(attr) || IN_DEV_CONF_GET((in_dev), attr)) | ||
76 | #define IN_DEV_MAXCONF(in_dev, attr) \ | ||
77 | (max(IPV4_DEVCONF_ALL(attr), IN_DEV_CONF_GET((in_dev), attr))) | ||
78 | |||
79 | #define IN_DEV_FORWARD(in_dev) IN_DEV_CONF_GET((in_dev), FORWARDING) | ||
80 | #define IN_DEV_MFORWARD(in_dev) (IPV4_DEVCONF_ALL(MC_FORWARDING) && \ | ||
81 | IPV4_DEVCONF((in_dev)->cnf, \ | ||
82 | MC_FORWARDING)) | ||
83 | #define IN_DEV_RPFILTER(in_dev) IN_DEV_ANDCONF((in_dev), RP_FILTER) | ||
84 | #define IN_DEV_SOURCE_ROUTE(in_dev) IN_DEV_ANDCONF((in_dev), \ | ||
85 | ACCEPT_SOURCE_ROUTE) | ||
86 | #define IN_DEV_BOOTP_RELAY(in_dev) IN_DEV_ANDCONF((in_dev), BOOTP_RELAY) | ||
87 | |||
88 | #define IN_DEV_LOG_MARTIANS(in_dev) IN_DEV_ORCONF((in_dev), LOG_MARTIANS) | ||
89 | #define IN_DEV_PROXY_ARP(in_dev) IN_DEV_ORCONF((in_dev), PROXY_ARP) | ||
90 | #define IN_DEV_SHARED_MEDIA(in_dev) IN_DEV_ORCONF((in_dev), SHARED_MEDIA) | ||
91 | #define IN_DEV_TX_REDIRECTS(in_dev) IN_DEV_ORCONF((in_dev), SEND_REDIRECTS) | ||
92 | #define IN_DEV_SEC_REDIRECTS(in_dev) IN_DEV_ORCONF((in_dev), \ | ||
93 | SECURE_REDIRECTS) | ||
94 | #define IN_DEV_IDTAG(in_dev) IN_DEV_CONF_GET(in_dev, TAG) | ||
95 | #define IN_DEV_MEDIUM_ID(in_dev) IN_DEV_CONF_GET(in_dev, MEDIUM_ID) | ||
96 | #define IN_DEV_PROMOTE_SECONDARIES(in_dev) \ | ||
97 | IN_DEV_ORCONF((in_dev), \ | ||
98 | PROMOTE_SECONDARIES) | ||
77 | 99 | ||
78 | #define IN_DEV_RX_REDIRECTS(in_dev) \ | 100 | #define IN_DEV_RX_REDIRECTS(in_dev) \ |
79 | ((IN_DEV_FORWARD(in_dev) && \ | 101 | ((IN_DEV_FORWARD(in_dev) && \ |
80 | (ipv4_devconf.accept_redirects && (in_dev)->cnf.accept_redirects)) \ | 102 | IN_DEV_ANDCONF((in_dev), ACCEPT_REDIRECTS)) \ |
81 | || (!IN_DEV_FORWARD(in_dev) && \ | 103 | || (!IN_DEV_FORWARD(in_dev) && \ |
82 | (ipv4_devconf.accept_redirects || (in_dev)->cnf.accept_redirects))) | 104 | IN_DEV_ORCONF((in_dev), ACCEPT_REDIRECTS))) |
83 | 105 | ||
84 | #define IN_DEV_ARPFILTER(in_dev) (ipv4_devconf.arp_filter || (in_dev)->cnf.arp_filter) | 106 | #define IN_DEV_ARPFILTER(in_dev) IN_DEV_ORCONF((in_dev), ARPFILTER) |
85 | #define IN_DEV_ARP_ANNOUNCE(in_dev) (max(ipv4_devconf.arp_announce, (in_dev)->cnf.arp_announce)) | 107 | #define IN_DEV_ARP_ANNOUNCE(in_dev) IN_DEV_MAXCONF((in_dev), ARP_ANNOUNCE) |
86 | #define IN_DEV_ARP_IGNORE(in_dev) (max(ipv4_devconf.arp_ignore, (in_dev)->cnf.arp_ignore)) | 108 | #define IN_DEV_ARP_IGNORE(in_dev) IN_DEV_MAXCONF((in_dev), ARP_IGNORE) |
87 | 109 | ||
88 | struct in_ifaddr | 110 | struct in_ifaddr |
89 | { | 111 | { |
@@ -108,7 +130,6 @@ extern struct net_device *ip_dev_find(__be32 addr); | |||
108 | extern int inet_addr_onlink(struct in_device *in_dev, __be32 a, __be32 b); | 130 | extern int inet_addr_onlink(struct in_device *in_dev, __be32 a, __be32 b); |
109 | extern int devinet_ioctl(unsigned int cmd, void __user *); | 131 | extern int devinet_ioctl(unsigned int cmd, void __user *); |
110 | extern void devinet_init(void); | 132 | extern void devinet_init(void); |
111 | extern struct in_device *inetdev_init(struct net_device *dev); | ||
112 | extern struct in_device *inetdev_by_index(int); | 133 | extern struct in_device *inetdev_by_index(int); |
113 | extern __be32 inet_select_addr(const struct net_device *dev, __be32 dst, int scope); | 134 | extern __be32 inet_select_addr(const struct net_device *dev, __be32 dst, int scope); |
114 | extern __be32 inet_confirm_addr(const struct net_device *dev, __be32 dst, __be32 local, int scope); | 135 | extern __be32 inet_confirm_addr(const struct net_device *dev, __be32 dst, __be32 local, int scope); |
diff --git a/include/linux/ipv6.h b/include/linux/ipv6.h index 09ea01a8a99c..648bd1f0912d 100644 --- a/include/linux/ipv6.h +++ b/include/linux/ipv6.h | |||
@@ -209,9 +209,8 @@ enum { | |||
209 | DEVCONF_RTR_PROBE_INTERVAL, | 209 | DEVCONF_RTR_PROBE_INTERVAL, |
210 | DEVCONF_ACCEPT_RA_RT_INFO_MAX_PLEN, | 210 | DEVCONF_ACCEPT_RA_RT_INFO_MAX_PLEN, |
211 | DEVCONF_PROXY_NDP, | 211 | DEVCONF_PROXY_NDP, |
212 | __DEVCONF_OPTIMISTIC_DAD, | ||
213 | DEVCONF_ACCEPT_SOURCE_ROUTE, | ||
214 | DEVCONF_OPTIMISTIC_DAD, | 212 | DEVCONF_OPTIMISTIC_DAD, |
213 | DEVCONF_ACCEPT_SOURCE_ROUTE, | ||
215 | DEVCONF_MAX | 214 | DEVCONF_MAX |
216 | }; | 215 | }; |
217 | 216 | ||
diff --git a/include/linux/libata.h b/include/linux/libata.h index 85f7b1bd1482..a6a3113120a4 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h | |||
@@ -171,7 +171,6 @@ enum { | |||
171 | ATA_FLAG_SKIP_D2H_BSY = (1 << 12), /* can't wait for the first D2H | 171 | ATA_FLAG_SKIP_D2H_BSY = (1 << 12), /* can't wait for the first D2H |
172 | * Register FIS clearing BSY */ | 172 | * Register FIS clearing BSY */ |
173 | ATA_FLAG_DEBUGMSG = (1 << 13), | 173 | ATA_FLAG_DEBUGMSG = (1 << 13), |
174 | ATA_FLAG_SETXFER_POLLING= (1 << 14), /* use polling for SETXFER */ | ||
175 | ATA_FLAG_IGN_SIMPLEX = (1 << 15), /* ignore SIMPLEX */ | 174 | ATA_FLAG_IGN_SIMPLEX = (1 << 15), /* ignore SIMPLEX */ |
176 | ATA_FLAG_NO_IORDY = (1 << 16), /* controller lacks iordy */ | 175 | ATA_FLAG_NO_IORDY = (1 << 16), /* controller lacks iordy */ |
177 | ATA_FLAG_ACPI_SATA = (1 << 17), /* need native SATA ACPI layout */ | 176 | ATA_FLAG_ACPI_SATA = (1 << 17), /* need native SATA ACPI layout */ |
diff --git a/include/linux/mtd/super.h b/include/linux/mtd/super.h new file mode 100644 index 000000000000..4016dd6fe336 --- /dev/null +++ b/include/linux/mtd/super.h | |||
@@ -0,0 +1,30 @@ | |||
1 | /* MTD-based superblock handling | ||
2 | * | ||
3 | * Copyright © 2006 Red Hat, Inc. All Rights Reserved. | ||
4 | * Written by David Howells (dhowells@redhat.com) | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or | ||
7 | * modify it under the terms of the GNU General Public License | ||
8 | * as published by the Free Software Foundation; either version | ||
9 | * 2 of the License, or (at your option) any later version. | ||
10 | */ | ||
11 | |||
12 | #ifndef __MTD_SUPER_H__ | ||
13 | #define __MTD_SUPER_H__ | ||
14 | |||
15 | #ifdef __KERNEL__ | ||
16 | |||
17 | #include <linux/mtd/mtd.h> | ||
18 | #include <linux/fs.h> | ||
19 | #include <linux/mount.h> | ||
20 | |||
21 | extern int get_sb_mtd(struct file_system_type *fs_type, int flags, | ||
22 | const char *dev_name, void *data, | ||
23 | int (*fill_super)(struct super_block *, void *, int), | ||
24 | struct vfsmount *mnt); | ||
25 | extern void kill_mtd_super(struct super_block *sb); | ||
26 | |||
27 | |||
28 | #endif /* __KERNEL__ */ | ||
29 | |||
30 | #endif /* __MTD_SUPER_H__ */ | ||
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index f671cd2f133f..3a70f553b28f 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
@@ -910,6 +910,17 @@ static inline int netif_rx_reschedule(struct net_device *dev, int undo) | |||
910 | return 0; | 910 | return 0; |
911 | } | 911 | } |
912 | 912 | ||
913 | /* same as netif_rx_complete, except that local_irq_save(flags) | ||
914 | * has already been issued | ||
915 | */ | ||
916 | static inline void __netif_rx_complete(struct net_device *dev) | ||
917 | { | ||
918 | BUG_ON(!test_bit(__LINK_STATE_RX_SCHED, &dev->state)); | ||
919 | list_del(&dev->poll_list); | ||
920 | smp_mb__before_clear_bit(); | ||
921 | clear_bit(__LINK_STATE_RX_SCHED, &dev->state); | ||
922 | } | ||
923 | |||
913 | /* Remove interface from poll list: it must be in the poll list | 924 | /* Remove interface from poll list: it must be in the poll list |
914 | * on current cpu. This primitive is called by dev->poll(), when | 925 | * on current cpu. This primitive is called by dev->poll(), when |
915 | * it completes the work. The device cannot be out of poll list at this | 926 | * it completes the work. The device cannot be out of poll list at this |
@@ -920,10 +931,7 @@ static inline void netif_rx_complete(struct net_device *dev) | |||
920 | unsigned long flags; | 931 | unsigned long flags; |
921 | 932 | ||
922 | local_irq_save(flags); | 933 | local_irq_save(flags); |
923 | BUG_ON(!test_bit(__LINK_STATE_RX_SCHED, &dev->state)); | 934 | __netif_rx_complete(dev); |
924 | list_del(&dev->poll_list); | ||
925 | smp_mb__before_clear_bit(); | ||
926 | clear_bit(__LINK_STATE_RX_SCHED, &dev->state); | ||
927 | local_irq_restore(flags); | 935 | local_irq_restore(flags); |
928 | } | 936 | } |
929 | 937 | ||
@@ -940,17 +948,6 @@ static inline void netif_poll_enable(struct net_device *dev) | |||
940 | clear_bit(__LINK_STATE_RX_SCHED, &dev->state); | 948 | clear_bit(__LINK_STATE_RX_SCHED, &dev->state); |
941 | } | 949 | } |
942 | 950 | ||
943 | /* same as netif_rx_complete, except that local_irq_save(flags) | ||
944 | * has already been issued | ||
945 | */ | ||
946 | static inline void __netif_rx_complete(struct net_device *dev) | ||
947 | { | ||
948 | BUG_ON(!test_bit(__LINK_STATE_RX_SCHED, &dev->state)); | ||
949 | list_del(&dev->poll_list); | ||
950 | smp_mb__before_clear_bit(); | ||
951 | clear_bit(__LINK_STATE_RX_SCHED, &dev->state); | ||
952 | } | ||
953 | |||
954 | static inline void netif_tx_lock(struct net_device *dev) | 951 | static inline void netif_tx_lock(struct net_device *dev) |
955 | { | 952 | { |
956 | spin_lock(&dev->_xmit_lock); | 953 | spin_lock(&dev->_xmit_lock); |
diff --git a/include/linux/netfilter_ipv4/ip_tables.h b/include/linux/netfilter_ipv4/ip_tables.h index 2f46dd728ee1..e992cd6b28f5 100644 --- a/include/linux/netfilter_ipv4/ip_tables.h +++ b/include/linux/netfilter_ipv4/ip_tables.h | |||
@@ -264,6 +264,26 @@ ipt_get_target(struct ipt_entry *e) | |||
264 | __ret; \ | 264 | __ret; \ |
265 | }) | 265 | }) |
266 | 266 | ||
267 | /* fn returns 0 to continue iteration */ | ||
268 | #define IPT_ENTRY_ITERATE_CONTINUE(entries, size, n, fn, args...) \ | ||
269 | ({ \ | ||
270 | unsigned int __i, __n; \ | ||
271 | int __ret = 0; \ | ||
272 | struct ipt_entry *__entry; \ | ||
273 | \ | ||
274 | for (__i = 0, __n = 0; __i < (size); \ | ||
275 | __i += __entry->next_offset, __n++) { \ | ||
276 | __entry = (void *)(entries) + __i; \ | ||
277 | if (__n < n) \ | ||
278 | continue; \ | ||
279 | \ | ||
280 | __ret = fn(__entry , ## args); \ | ||
281 | if (__ret != 0) \ | ||
282 | break; \ | ||
283 | } \ | ||
284 | __ret; \ | ||
285 | }) | ||
286 | |||
267 | /* | 287 | /* |
268 | * Main firewall chains definitions and global var's definitions. | 288 | * Main firewall chains definitions and global var's definitions. |
269 | */ | 289 | */ |
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index 4712e269d8d3..6a115cffea34 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h | |||
@@ -1292,6 +1292,7 @@ | |||
1292 | #define PCI_DEVICE_ID_VIA_P4M890 0x0327 | 1292 | #define PCI_DEVICE_ID_VIA_P4M890 0x0327 |
1293 | #define PCI_DEVICE_ID_VIA_VT3324 0x0324 | 1293 | #define PCI_DEVICE_ID_VIA_VT3324 0x0324 |
1294 | #define PCI_DEVICE_ID_VIA_VT3336 0x0336 | 1294 | #define PCI_DEVICE_ID_VIA_VT3336 0x0336 |
1295 | #define PCI_DEVICE_ID_VIA_VT3351 0x0351 | ||
1295 | #define PCI_DEVICE_ID_VIA_8371_0 0x0391 | 1296 | #define PCI_DEVICE_ID_VIA_8371_0 0x0391 |
1296 | #define PCI_DEVICE_ID_VIA_8501_0 0x0501 | 1297 | #define PCI_DEVICE_ID_VIA_8501_0 0x0501 |
1297 | #define PCI_DEVICE_ID_VIA_82C561 0x0561 | 1298 | #define PCI_DEVICE_ID_VIA_82C561 0x0561 |
@@ -1437,6 +1438,7 @@ | |||
1437 | #define PCI_DEVICE_ID_SERVERWORKS_LE 0x0009 | 1438 | #define PCI_DEVICE_ID_SERVERWORKS_LE 0x0009 |
1438 | #define PCI_DEVICE_ID_SERVERWORKS_GCNB_LE 0x0017 | 1439 | #define PCI_DEVICE_ID_SERVERWORKS_GCNB_LE 0x0017 |
1439 | #define PCI_DEVICE_ID_SERVERWORKS_EPB 0x0103 | 1440 | #define PCI_DEVICE_ID_SERVERWORKS_EPB 0x0103 |
1441 | #define PCI_DEVICE_ID_SERVERWORKS_HT1000_PCIX 0x0104 | ||
1440 | #define PCI_DEVICE_ID_SERVERWORKS_HT2000_PCIE 0x0132 | 1442 | #define PCI_DEVICE_ID_SERVERWORKS_HT2000_PCIE 0x0132 |
1441 | #define PCI_DEVICE_ID_SERVERWORKS_OSB4 0x0200 | 1443 | #define PCI_DEVICE_ID_SERVERWORKS_OSB4 0x0200 |
1442 | #define PCI_DEVICE_ID_SERVERWORKS_CSB5 0x0201 | 1444 | #define PCI_DEVICE_ID_SERVERWORKS_CSB5 0x0201 |
@@ -2267,11 +2269,11 @@ | |||
2267 | #define PCI_DEVICE_ID_INTEL_ICH8_5 0x283e | 2269 | #define PCI_DEVICE_ID_INTEL_ICH8_5 0x283e |
2268 | #define PCI_DEVICE_ID_INTEL_ICH8_6 0x2850 | 2270 | #define PCI_DEVICE_ID_INTEL_ICH8_6 0x2850 |
2269 | #define PCI_DEVICE_ID_INTEL_ICH9_0 0x2910 | 2271 | #define PCI_DEVICE_ID_INTEL_ICH9_0 0x2910 |
2270 | #define PCI_DEVICE_ID_INTEL_ICH9_1 0x2911 | 2272 | #define PCI_DEVICE_ID_INTEL_ICH9_1 0x2917 |
2271 | #define PCI_DEVICE_ID_INTEL_ICH9_2 0x2912 | 2273 | #define PCI_DEVICE_ID_INTEL_ICH9_2 0x2912 |
2272 | #define PCI_DEVICE_ID_INTEL_ICH9_3 0x2913 | 2274 | #define PCI_DEVICE_ID_INTEL_ICH9_3 0x2913 |
2273 | #define PCI_DEVICE_ID_INTEL_ICH9_4 0x2914 | 2275 | #define PCI_DEVICE_ID_INTEL_ICH9_4 0x2914 |
2274 | #define PCI_DEVICE_ID_INTEL_ICH9_5 0x2915 | 2276 | #define PCI_DEVICE_ID_INTEL_ICH9_5 0x2919 |
2275 | #define PCI_DEVICE_ID_INTEL_ICH9_6 0x2930 | 2277 | #define PCI_DEVICE_ID_INTEL_ICH9_6 0x2930 |
2276 | #define PCI_DEVICE_ID_INTEL_82855PM_HB 0x3340 | 2278 | #define PCI_DEVICE_ID_INTEL_82855PM_HB 0x3340 |
2277 | #define PCI_DEVICE_ID_INTEL_82830_HB 0x3575 | 2279 | #define PCI_DEVICE_ID_INTEL_82830_HB 0x3575 |
diff --git a/include/linux/rfkill.h b/include/linux/rfkill.h index 7c1ffbab7865..a8a6ea809da0 100644 --- a/include/linux/rfkill.h +++ b/include/linux/rfkill.h | |||
@@ -63,7 +63,7 @@ enum rfkill_state { | |||
63 | * This structure represents a RF switch located on a network device. | 63 | * This structure represents a RF switch located on a network device. |
64 | */ | 64 | */ |
65 | struct rfkill { | 65 | struct rfkill { |
66 | char *name; | 66 | const char *name; |
67 | enum rfkill_type type; | 67 | enum rfkill_type type; |
68 | 68 | ||
69 | enum rfkill_state state; | 69 | enum rfkill_state state; |
diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h index a3ac4c896831..7f2c99d66e9d 100644 --- a/include/linux/serial_core.h +++ b/include/linux/serial_core.h | |||
@@ -152,6 +152,7 @@ | |||
152 | #include <linux/sched.h> | 152 | #include <linux/sched.h> |
153 | #include <linux/tty.h> | 153 | #include <linux/tty.h> |
154 | #include <linux/mutex.h> | 154 | #include <linux/mutex.h> |
155 | #include <linux/sysrq.h> | ||
155 | 156 | ||
156 | struct uart_port; | 157 | struct uart_port; |
157 | struct uart_info; | 158 | struct uart_info; |
diff --git a/include/net/af_unix.h b/include/net/af_unix.h index c0398f5a8cb9..65f49fd7deff 100644 --- a/include/net/af_unix.h +++ b/include/net/af_unix.h | |||
@@ -62,13 +62,11 @@ struct unix_skb_parms { | |||
62 | #define UNIXCREDS(skb) (&UNIXCB((skb)).creds) | 62 | #define UNIXCREDS(skb) (&UNIXCB((skb)).creds) |
63 | #define UNIXSID(skb) (&UNIXCB((skb)).secid) | 63 | #define UNIXSID(skb) (&UNIXCB((skb)).secid) |
64 | 64 | ||
65 | #define unix_state_rlock(s) spin_lock(&unix_sk(s)->lock) | 65 | #define unix_state_lock(s) spin_lock(&unix_sk(s)->lock) |
66 | #define unix_state_runlock(s) spin_unlock(&unix_sk(s)->lock) | 66 | #define unix_state_unlock(s) spin_unlock(&unix_sk(s)->lock) |
67 | #define unix_state_wlock(s) spin_lock(&unix_sk(s)->lock) | 67 | #define unix_state_lock_nested(s) \ |
68 | #define unix_state_wlock_nested(s) \ | ||
69 | spin_lock_nested(&unix_sk(s)->lock, \ | 68 | spin_lock_nested(&unix_sk(s)->lock, \ |
70 | SINGLE_DEPTH_NESTING) | 69 | SINGLE_DEPTH_NESTING) |
71 | #define unix_state_wunlock(s) spin_unlock(&unix_sk(s)->lock) | ||
72 | 70 | ||
73 | #ifdef __KERNEL__ | 71 | #ifdef __KERNEL__ |
74 | /* The AF_UNIX socket */ | 72 | /* The AF_UNIX socket */ |
diff --git a/include/net/fib_rules.h b/include/net/fib_rules.h index ed3a8872c6ca..83e41dd15ccd 100644 --- a/include/net/fib_rules.h +++ b/include/net/fib_rules.h | |||
@@ -64,7 +64,7 @@ struct fib_rules_ops | |||
64 | void (*flush_cache)(void); | 64 | void (*flush_cache)(void); |
65 | 65 | ||
66 | int nlgroup; | 66 | int nlgroup; |
67 | struct nla_policy *policy; | 67 | const struct nla_policy *policy; |
68 | struct list_head *rules_list; | 68 | struct list_head *rules_list; |
69 | struct module *owner; | 69 | struct module *owner; |
70 | }; | 70 | }; |
diff --git a/include/net/genetlink.h b/include/net/genetlink.h index adff4c898d50..b6eaca122db8 100644 --- a/include/net/genetlink.h +++ b/include/net/genetlink.h | |||
@@ -60,7 +60,7 @@ struct genl_ops | |||
60 | { | 60 | { |
61 | u8 cmd; | 61 | u8 cmd; |
62 | unsigned int flags; | 62 | unsigned int flags; |
63 | struct nla_policy *policy; | 63 | const struct nla_policy *policy; |
64 | int (*doit)(struct sk_buff *skb, | 64 | int (*doit)(struct sk_buff *skb, |
65 | struct genl_info *info); | 65 | struct genl_info *info); |
66 | int (*dumpit)(struct sk_buff *skb, | 66 | int (*dumpit)(struct sk_buff *skb, |
diff --git a/include/net/ip.h b/include/net/ip.h index bb207db03675..abf2820a1125 100644 --- a/include/net/ip.h +++ b/include/net/ip.h | |||
@@ -143,6 +143,7 @@ struct ip_reply_arg { | |||
143 | __wsum csum; | 143 | __wsum csum; |
144 | int csumoffset; /* u16 offset of csum in iov[0].iov_base */ | 144 | int csumoffset; /* u16 offset of csum in iov[0].iov_base */ |
145 | /* -1 if not needed */ | 145 | /* -1 if not needed */ |
146 | int bound_dev_if; | ||
146 | }; | 147 | }; |
147 | 148 | ||
148 | void ip_send_reply(struct sock *sk, struct sk_buff *skb, struct ip_reply_arg *arg, | 149 | void ip_send_reply(struct sock *sk, struct sk_buff *skb, struct ip_reply_arg *arg, |
diff --git a/include/net/ip_fib.h b/include/net/ip_fib.h index 5a4a0366c24f..69252cbe05b0 100644 --- a/include/net/ip_fib.h +++ b/include/net/ip_fib.h | |||
@@ -213,7 +213,7 @@ extern void fib_select_default(const struct flowi *flp, struct fib_result *res); | |||
213 | #endif /* CONFIG_IP_MULTIPLE_TABLES */ | 213 | #endif /* CONFIG_IP_MULTIPLE_TABLES */ |
214 | 214 | ||
215 | /* Exported by fib_frontend.c */ | 215 | /* Exported by fib_frontend.c */ |
216 | extern struct nla_policy rtm_ipv4_policy[]; | 216 | extern const struct nla_policy rtm_ipv4_policy[]; |
217 | extern void ip_fib_init(void); | 217 | extern void ip_fib_init(void); |
218 | extern int fib_validate_source(__be32 src, __be32 dst, u8 tos, int oif, | 218 | extern int fib_validate_source(__be32 src, __be32 dst, u8 tos, int oif, |
219 | struct net_device *dev, __be32 *spec_dst, u32 *itag); | 219 | struct net_device *dev, __be32 *spec_dst, u32 *itag); |
diff --git a/include/net/netlink.h b/include/net/netlink.h index 0bf325c29aff..7b510a9edb91 100644 --- a/include/net/netlink.h +++ b/include/net/netlink.h | |||
@@ -222,10 +222,10 @@ extern int nlmsg_notify(struct sock *sk, struct sk_buff *skb, | |||
222 | gfp_t flags); | 222 | gfp_t flags); |
223 | 223 | ||
224 | extern int nla_validate(struct nlattr *head, int len, int maxtype, | 224 | extern int nla_validate(struct nlattr *head, int len, int maxtype, |
225 | struct nla_policy *policy); | 225 | const struct nla_policy *policy); |
226 | extern int nla_parse(struct nlattr *tb[], int maxtype, | 226 | extern int nla_parse(struct nlattr *tb[], int maxtype, |
227 | struct nlattr *head, int len, | 227 | struct nlattr *head, int len, |
228 | struct nla_policy *policy); | 228 | const struct nla_policy *policy); |
229 | extern struct nlattr * nla_find(struct nlattr *head, int len, int attrtype); | 229 | extern struct nlattr * nla_find(struct nlattr *head, int len, int attrtype); |
230 | extern size_t nla_strlcpy(char *dst, const struct nlattr *nla, | 230 | extern size_t nla_strlcpy(char *dst, const struct nlattr *nla, |
231 | size_t dstsize); | 231 | size_t dstsize); |
@@ -360,7 +360,7 @@ static inline struct nlmsghdr *nlmsg_next(struct nlmsghdr *nlh, int *remaining) | |||
360 | */ | 360 | */ |
361 | static inline int nlmsg_parse(struct nlmsghdr *nlh, int hdrlen, | 361 | static inline int nlmsg_parse(struct nlmsghdr *nlh, int hdrlen, |
362 | struct nlattr *tb[], int maxtype, | 362 | struct nlattr *tb[], int maxtype, |
363 | struct nla_policy *policy) | 363 | const struct nla_policy *policy) |
364 | { | 364 | { |
365 | if (nlh->nlmsg_len < nlmsg_msg_size(hdrlen)) | 365 | if (nlh->nlmsg_len < nlmsg_msg_size(hdrlen)) |
366 | return -EINVAL; | 366 | return -EINVAL; |
@@ -392,7 +392,7 @@ static inline struct nlattr *nlmsg_find_attr(struct nlmsghdr *nlh, | |||
392 | * @policy: validation policy | 392 | * @policy: validation policy |
393 | */ | 393 | */ |
394 | static inline int nlmsg_validate(struct nlmsghdr *nlh, int hdrlen, int maxtype, | 394 | static inline int nlmsg_validate(struct nlmsghdr *nlh, int hdrlen, int maxtype, |
395 | struct nla_policy *policy) | 395 | const struct nla_policy *policy) |
396 | { | 396 | { |
397 | if (nlh->nlmsg_len < nlmsg_msg_size(hdrlen)) | 397 | if (nlh->nlmsg_len < nlmsg_msg_size(hdrlen)) |
398 | return -EINVAL; | 398 | return -EINVAL; |
@@ -729,7 +729,7 @@ static inline struct nlattr *nla_find_nested(struct nlattr *nla, int attrtype) | |||
729 | */ | 729 | */ |
730 | static inline int nla_parse_nested(struct nlattr *tb[], int maxtype, | 730 | static inline int nla_parse_nested(struct nlattr *tb[], int maxtype, |
731 | struct nlattr *nla, | 731 | struct nlattr *nla, |
732 | struct nla_policy *policy) | 732 | const struct nla_policy *policy) |
733 | { | 733 | { |
734 | return nla_parse(tb, maxtype, nla_data(nla), nla_len(nla), policy); | 734 | return nla_parse(tb, maxtype, nla_data(nla), nla_len(nla), policy); |
735 | } | 735 | } |
@@ -990,7 +990,7 @@ static inline int nla_nest_cancel(struct sk_buff *skb, struct nlattr *start) | |||
990 | * Returns 0 on success or a negative error code. | 990 | * Returns 0 on success or a negative error code. |
991 | */ | 991 | */ |
992 | static inline int nla_validate_nested(struct nlattr *start, int maxtype, | 992 | static inline int nla_validate_nested(struct nlattr *start, int maxtype, |
993 | struct nla_policy *policy) | 993 | const struct nla_policy *policy) |
994 | { | 994 | { |
995 | return nla_validate(nla_data(start), nla_len(start), maxtype, policy); | 995 | return nla_validate(nla_data(start), nla_len(start), maxtype, policy); |
996 | } | 996 | } |
diff --git a/include/net/sock.h b/include/net/sock.h index 689b886038da..dfeb8b13024f 100644 --- a/include/net/sock.h +++ b/include/net/sock.h | |||
@@ -218,13 +218,13 @@ struct sock { | |||
218 | atomic_t sk_rmem_alloc; | 218 | atomic_t sk_rmem_alloc; |
219 | atomic_t sk_wmem_alloc; | 219 | atomic_t sk_wmem_alloc; |
220 | atomic_t sk_omem_alloc; | 220 | atomic_t sk_omem_alloc; |
221 | int sk_sndbuf; | ||
221 | struct sk_buff_head sk_receive_queue; | 222 | struct sk_buff_head sk_receive_queue; |
222 | struct sk_buff_head sk_write_queue; | 223 | struct sk_buff_head sk_write_queue; |
223 | struct sk_buff_head sk_async_wait_queue; | 224 | struct sk_buff_head sk_async_wait_queue; |
224 | int sk_wmem_queued; | 225 | int sk_wmem_queued; |
225 | int sk_forward_alloc; | 226 | int sk_forward_alloc; |
226 | gfp_t sk_allocation; | 227 | gfp_t sk_allocation; |
227 | int sk_sndbuf; | ||
228 | int sk_route_caps; | 228 | int sk_route_caps; |
229 | int sk_gso_type; | 229 | int sk_gso_type; |
230 | int sk_rcvlowat; | 230 | int sk_rcvlowat; |
diff --git a/include/net/tcp.h b/include/net/tcp.h index e22b4f0305a3..a8af9ae00177 100644 --- a/include/net/tcp.h +++ b/include/net/tcp.h | |||
@@ -254,6 +254,12 @@ static inline int between(__u32 seq1, __u32 seq2, __u32 seq3) | |||
254 | return seq3 - seq2 >= seq1 - seq2; | 254 | return seq3 - seq2 >= seq1 - seq2; |
255 | } | 255 | } |
256 | 256 | ||
257 | static inline int tcp_too_many_orphans(struct sock *sk, int num) | ||
258 | { | ||
259 | return (num > sysctl_tcp_max_orphans) || | ||
260 | (sk->sk_wmem_queued > SOCK_MIN_SNDBUF && | ||
261 | atomic_read(&tcp_memory_allocated) > sysctl_tcp_mem[2]); | ||
262 | } | ||
257 | 263 | ||
258 | extern struct proto tcp_prot; | 264 | extern struct proto tcp_prot; |
259 | 265 | ||
diff --git a/include/net/udp.h b/include/net/udp.h index 496f89d45c8b..98755ebaf163 100644 --- a/include/net/udp.h +++ b/include/net/udp.h | |||
@@ -119,16 +119,9 @@ static inline void udp_lib_close(struct sock *sk, long timeout) | |||
119 | } | 119 | } |
120 | 120 | ||
121 | 121 | ||
122 | struct udp_get_port_ops { | ||
123 | int (*saddr_cmp)(const struct sock *sk1, const struct sock *sk2); | ||
124 | int (*saddr_any)(const struct sock *sk); | ||
125 | unsigned int (*hash_port_and_rcv_saddr)(__u16 port, | ||
126 | const struct sock *sk); | ||
127 | }; | ||
128 | |||
129 | /* net/ipv4/udp.c */ | 122 | /* net/ipv4/udp.c */ |
130 | extern int udp_get_port(struct sock *sk, unsigned short snum, | 123 | extern int udp_get_port(struct sock *sk, unsigned short snum, |
131 | const struct udp_get_port_ops *ops); | 124 | int (*saddr_cmp)(const struct sock *, const struct sock *)); |
132 | extern void udp_err(struct sk_buff *, u32); | 125 | extern void udp_err(struct sk_buff *, u32); |
133 | 126 | ||
134 | extern int udp_sendmsg(struct kiocb *iocb, struct sock *sk, | 127 | extern int udp_sendmsg(struct kiocb *iocb, struct sock *sk, |
diff --git a/include/net/udplite.h b/include/net/udplite.h index 50b4b424d1ca..635b0eafca95 100644 --- a/include/net/udplite.h +++ b/include/net/udplite.h | |||
@@ -120,5 +120,5 @@ static inline __wsum udplite_csum_outgoing(struct sock *sk, struct sk_buff *skb) | |||
120 | 120 | ||
121 | extern void udplite4_register(void); | 121 | extern void udplite4_register(void); |
122 | extern int udplite_get_port(struct sock *sk, unsigned short snum, | 122 | extern int udplite_get_port(struct sock *sk, unsigned short snum, |
123 | const struct udp_get_port_ops *ops); | 123 | int (*scmp)(const struct sock *, const struct sock *)); |
124 | #endif /* _UDPLITE_H */ | 124 | #endif /* _UDPLITE_H */ |
diff --git a/include/net/xfrm.h b/include/net/xfrm.h index 39ef925d39dd..311f25af5e1a 100644 --- a/include/net/xfrm.h +++ b/include/net/xfrm.h | |||
@@ -237,7 +237,6 @@ extern int xfrm_policy_register_afinfo(struct xfrm_policy_afinfo *afinfo); | |||
237 | extern int xfrm_policy_unregister_afinfo(struct xfrm_policy_afinfo *afinfo); | 237 | extern int xfrm_policy_unregister_afinfo(struct xfrm_policy_afinfo *afinfo); |
238 | extern void km_policy_notify(struct xfrm_policy *xp, int dir, struct km_event *c); | 238 | extern void km_policy_notify(struct xfrm_policy *xp, int dir, struct km_event *c); |
239 | extern void km_state_notify(struct xfrm_state *x, struct km_event *c); | 239 | extern void km_state_notify(struct xfrm_state *x, struct km_event *c); |
240 | #define XFRM_ACQ_EXPIRES 30 | ||
241 | 240 | ||
242 | struct xfrm_tmpl; | 241 | struct xfrm_tmpl; |
243 | extern int km_query(struct xfrm_state *x, struct xfrm_tmpl *t, struct xfrm_policy *pol); | 242 | extern int km_query(struct xfrm_state *x, struct xfrm_tmpl *t, struct xfrm_policy *pol); |
@@ -965,7 +964,7 @@ struct xfrmk_spdinfo { | |||
965 | 964 | ||
966 | extern struct xfrm_state *xfrm_find_acq_byseq(u32 seq); | 965 | extern struct xfrm_state *xfrm_find_acq_byseq(u32 seq); |
967 | extern int xfrm_state_delete(struct xfrm_state *x); | 966 | extern int xfrm_state_delete(struct xfrm_state *x); |
968 | extern void xfrm_state_flush(u8 proto, struct xfrm_audit *audit_info); | 967 | extern int xfrm_state_flush(u8 proto, struct xfrm_audit *audit_info); |
969 | extern void xfrm_sad_getinfo(struct xfrmk_sadinfo *si); | 968 | extern void xfrm_sad_getinfo(struct xfrmk_sadinfo *si); |
970 | extern void xfrm_spd_getinfo(struct xfrmk_spdinfo *si); | 969 | extern void xfrm_spd_getinfo(struct xfrmk_spdinfo *si); |
971 | extern int xfrm_replay_check(struct xfrm_state *x, __be32 seq); | 970 | extern int xfrm_replay_check(struct xfrm_state *x, __be32 seq); |
@@ -1021,13 +1020,13 @@ struct xfrm_policy *xfrm_policy_bysel_ctx(u8 type, int dir, | |||
1021 | struct xfrm_sec_ctx *ctx, int delete, | 1020 | struct xfrm_sec_ctx *ctx, int delete, |
1022 | int *err); | 1021 | int *err); |
1023 | struct xfrm_policy *xfrm_policy_byid(u8, int dir, u32 id, int delete, int *err); | 1022 | struct xfrm_policy *xfrm_policy_byid(u8, int dir, u32 id, int delete, int *err); |
1024 | void xfrm_policy_flush(u8 type, struct xfrm_audit *audit_info); | 1023 | int xfrm_policy_flush(u8 type, struct xfrm_audit *audit_info); |
1025 | u32 xfrm_get_acqseq(void); | 1024 | u32 xfrm_get_acqseq(void); |
1026 | void xfrm_alloc_spi(struct xfrm_state *x, __be32 minspi, __be32 maxspi); | 1025 | void xfrm_alloc_spi(struct xfrm_state *x, __be32 minspi, __be32 maxspi); |
1027 | struct xfrm_state * xfrm_find_acq(u8 mode, u32 reqid, u8 proto, | 1026 | struct xfrm_state * xfrm_find_acq(u8 mode, u32 reqid, u8 proto, |
1028 | xfrm_address_t *daddr, xfrm_address_t *saddr, | 1027 | xfrm_address_t *daddr, xfrm_address_t *saddr, |
1029 | int create, unsigned short family); | 1028 | int create, unsigned short family); |
1030 | extern void xfrm_policy_flush(u8 type, struct xfrm_audit *audit_info); | 1029 | extern int xfrm_policy_flush(u8 type, struct xfrm_audit *audit_info); |
1031 | extern int xfrm_sk_policy_insert(struct sock *sk, int dir, struct xfrm_policy *pol); | 1030 | extern int xfrm_sk_policy_insert(struct sock *sk, int dir, struct xfrm_policy *pol); |
1032 | extern int xfrm_bundle_ok(struct xfrm_policy *pol, struct xfrm_dst *xdst, | 1031 | extern int xfrm_bundle_ok(struct xfrm_policy *pol, struct xfrm_dst *xdst, |
1033 | struct flowi *fl, int family, int strict); | 1032 | struct flowi *fl, int family, int strict); |
diff --git a/include/sound/version.h b/include/sound/version.h index 50ee4fd420fa..8e5b2f0f5946 100644 --- a/include/sound/version.h +++ b/include/sound/version.h | |||
@@ -1,3 +1,3 @@ | |||
1 | /* include/version.h. Generated by alsa/ksync script. */ | 1 | /* include/version.h. Generated by alsa/ksync script. */ |
2 | #define CONFIG_SND_VERSION "1.0.14rc4" | 2 | #define CONFIG_SND_VERSION "1.0.14" |
3 | #define CONFIG_SND_DATE " (Wed May 16 09:45:46 2007 UTC)" | 3 | #define CONFIG_SND_DATE " (Thu May 31 09:03:25 2007 UTC)" |