diff options
Diffstat (limited to 'include')
106 files changed, 460 insertions, 473 deletions
diff --git a/include/acpi/acpixf.h b/include/acpi/acpixf.h index b729e64d0d4c..d970f7f99549 100644 --- a/include/acpi/acpixf.h +++ b/include/acpi/acpixf.h | |||
@@ -85,7 +85,7 @@ acpi_install_initialization_handler(acpi_init_handler handler, u32 function); | |||
85 | #endif | 85 | #endif |
86 | 86 | ||
87 | /* | 87 | /* |
88 | * ACPI Memory managment | 88 | * ACPI Memory management |
89 | */ | 89 | */ |
90 | void *acpi_allocate(u32 size); | 90 | void *acpi_allocate(u32 size); |
91 | 91 | ||
diff --git a/include/acpi/processor.h b/include/acpi/processor.h index 76411b1fc4fd..6e253b5b0f3b 100644 --- a/include/acpi/processor.h +++ b/include/acpi/processor.h | |||
@@ -182,7 +182,7 @@ struct acpi_processor_throttling { | |||
182 | /* Limit Interface */ | 182 | /* Limit Interface */ |
183 | 183 | ||
184 | struct acpi_processor_lx { | 184 | struct acpi_processor_lx { |
185 | int px; /* performace state */ | 185 | int px; /* performance state */ |
186 | int tx; /* throttle level */ | 186 | int tx; /* throttle level */ |
187 | }; | 187 | }; |
188 | 188 | ||
diff --git a/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h b/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h index c704fe8cf42f..68aca8554f5a 100644 --- a/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h +++ b/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h | |||
@@ -583,23 +583,23 @@ | |||
583 | #define UICR1_IM14 (1 << 6) /* Interrupt mask ep 14 */ | 583 | #define UICR1_IM14 (1 << 6) /* Interrupt mask ep 14 */ |
584 | #define UICR1_IM15 (1 << 7) /* Interrupt mask ep 15 */ | 584 | #define UICR1_IM15 (1 << 7) /* Interrupt mask ep 15 */ |
585 | 585 | ||
586 | #define USIR0_IR0 (1 << 0) /* Interrup request ep 0 */ | 586 | #define USIR0_IR0 (1 << 0) /* Interrupt request ep 0 */ |
587 | #define USIR0_IR1 (1 << 1) /* Interrup request ep 1 */ | 587 | #define USIR0_IR1 (1 << 1) /* Interrupt request ep 1 */ |
588 | #define USIR0_IR2 (1 << 2) /* Interrup request ep 2 */ | 588 | #define USIR0_IR2 (1 << 2) /* Interrupt request ep 2 */ |
589 | #define USIR0_IR3 (1 << 3) /* Interrup request ep 3 */ | 589 | #define USIR0_IR3 (1 << 3) /* Interrupt request ep 3 */ |
590 | #define USIR0_IR4 (1 << 4) /* Interrup request ep 4 */ | 590 | #define USIR0_IR4 (1 << 4) /* Interrupt request ep 4 */ |
591 | #define USIR0_IR5 (1 << 5) /* Interrup request ep 5 */ | 591 | #define USIR0_IR5 (1 << 5) /* Interrupt request ep 5 */ |
592 | #define USIR0_IR6 (1 << 6) /* Interrup request ep 6 */ | 592 | #define USIR0_IR6 (1 << 6) /* Interrupt request ep 6 */ |
593 | #define USIR0_IR7 (1 << 7) /* Interrup request ep 7 */ | 593 | #define USIR0_IR7 (1 << 7) /* Interrupt request ep 7 */ |
594 | 594 | ||
595 | #define USIR1_IR8 (1 << 0) /* Interrup request ep 8 */ | 595 | #define USIR1_IR8 (1 << 0) /* Interrupt request ep 8 */ |
596 | #define USIR1_IR9 (1 << 1) /* Interrup request ep 9 */ | 596 | #define USIR1_IR9 (1 << 1) /* Interrupt request ep 9 */ |
597 | #define USIR1_IR10 (1 << 2) /* Interrup request ep 10 */ | 597 | #define USIR1_IR10 (1 << 2) /* Interrupt request ep 10 */ |
598 | #define USIR1_IR11 (1 << 3) /* Interrup request ep 11 */ | 598 | #define USIR1_IR11 (1 << 3) /* Interrupt request ep 11 */ |
599 | #define USIR1_IR12 (1 << 4) /* Interrup request ep 12 */ | 599 | #define USIR1_IR12 (1 << 4) /* Interrupt request ep 12 */ |
600 | #define USIR1_IR13 (1 << 5) /* Interrup request ep 13 */ | 600 | #define USIR1_IR13 (1 << 5) /* Interrupt request ep 13 */ |
601 | #define USIR1_IR14 (1 << 6) /* Interrup request ep 14 */ | 601 | #define USIR1_IR14 (1 << 6) /* Interrupt request ep 14 */ |
602 | #define USIR1_IR15 (1 << 7) /* Interrup request ep 15 */ | 602 | #define USIR1_IR15 (1 << 7) /* Interrupt request ep 15 */ |
603 | 603 | ||
604 | #define DCMD_LENGTH 0x01fff /* length mask (max = 8K - 1) */ | 604 | #define DCMD_LENGTH 0x01fff /* length mask (max = 8K - 1) */ |
605 | 605 | ||
diff --git a/include/asm-arm/arch-pxa/pxa-regs.h b/include/asm-arm/arch-pxa/pxa-regs.h index 442494d71f12..16ed24dbda4e 100644 --- a/include/asm-arm/arch-pxa/pxa-regs.h +++ b/include/asm-arm/arch-pxa/pxa-regs.h | |||
@@ -737,25 +737,25 @@ | |||
737 | 737 | ||
738 | #define USIR0 __REG(0x40600058) /* UDC Status Interrupt Register 0 */ | 738 | #define USIR0 __REG(0x40600058) /* UDC Status Interrupt Register 0 */ |
739 | 739 | ||
740 | #define USIR0_IR0 (1 << 0) /* Interrup request ep 0 */ | 740 | #define USIR0_IR0 (1 << 0) /* Interrupt request ep 0 */ |
741 | #define USIR0_IR1 (1 << 1) /* Interrup request ep 1 */ | 741 | #define USIR0_IR1 (1 << 1) /* Interrupt request ep 1 */ |
742 | #define USIR0_IR2 (1 << 2) /* Interrup request ep 2 */ | 742 | #define USIR0_IR2 (1 << 2) /* Interrupt request ep 2 */ |
743 | #define USIR0_IR3 (1 << 3) /* Interrup request ep 3 */ | 743 | #define USIR0_IR3 (1 << 3) /* Interrupt request ep 3 */ |
744 | #define USIR0_IR4 (1 << 4) /* Interrup request ep 4 */ | 744 | #define USIR0_IR4 (1 << 4) /* Interrupt request ep 4 */ |
745 | #define USIR0_IR5 (1 << 5) /* Interrup request ep 5 */ | 745 | #define USIR0_IR5 (1 << 5) /* Interrupt request ep 5 */ |
746 | #define USIR0_IR6 (1 << 6) /* Interrup request ep 6 */ | 746 | #define USIR0_IR6 (1 << 6) /* Interrupt request ep 6 */ |
747 | #define USIR0_IR7 (1 << 7) /* Interrup request ep 7 */ | 747 | #define USIR0_IR7 (1 << 7) /* Interrupt request ep 7 */ |
748 | 748 | ||
749 | #define USIR1 __REG(0x4060005C) /* UDC Status Interrupt Register 1 */ | 749 | #define USIR1 __REG(0x4060005C) /* UDC Status Interrupt Register 1 */ |
750 | 750 | ||
751 | #define USIR1_IR8 (1 << 0) /* Interrup request ep 8 */ | 751 | #define USIR1_IR8 (1 << 0) /* Interrupt request ep 8 */ |
752 | #define USIR1_IR9 (1 << 1) /* Interrup request ep 9 */ | 752 | #define USIR1_IR9 (1 << 1) /* Interrupt request ep 9 */ |
753 | #define USIR1_IR10 (1 << 2) /* Interrup request ep 10 */ | 753 | #define USIR1_IR10 (1 << 2) /* Interrupt request ep 10 */ |
754 | #define USIR1_IR11 (1 << 3) /* Interrup request ep 11 */ | 754 | #define USIR1_IR11 (1 << 3) /* Interrupt request ep 11 */ |
755 | #define USIR1_IR12 (1 << 4) /* Interrup request ep 12 */ | 755 | #define USIR1_IR12 (1 << 4) /* Interrupt request ep 12 */ |
756 | #define USIR1_IR13 (1 << 5) /* Interrup request ep 13 */ | 756 | #define USIR1_IR13 (1 << 5) /* Interrupt request ep 13 */ |
757 | #define USIR1_IR14 (1 << 6) /* Interrup request ep 14 */ | 757 | #define USIR1_IR14 (1 << 6) /* Interrupt request ep 14 */ |
758 | #define USIR1_IR15 (1 << 7) /* Interrup request ep 15 */ | 758 | #define USIR1_IR15 (1 << 7) /* Interrupt request ep 15 */ |
759 | 759 | ||
760 | #elif defined(CONFIG_PXA27x) | 760 | #elif defined(CONFIG_PXA27x) |
761 | 761 | ||
@@ -1020,7 +1020,7 @@ | |||
1020 | #define ICSR0 __REG(0x40800014) /* ICP Status Register 0 */ | 1020 | #define ICSR0 __REG(0x40800014) /* ICP Status Register 0 */ |
1021 | #define ICSR1 __REG(0x40800018) /* ICP Status Register 1 */ | 1021 | #define ICSR1 __REG(0x40800018) /* ICP Status Register 1 */ |
1022 | 1022 | ||
1023 | #define ICCR0_AME (1 << 7) /* Adress match enable */ | 1023 | #define ICCR0_AME (1 << 7) /* Address match enable */ |
1024 | #define ICCR0_TIE (1 << 6) /* Transmit FIFO interrupt enable */ | 1024 | #define ICCR0_TIE (1 << 6) /* Transmit FIFO interrupt enable */ |
1025 | #define ICCR0_RIE (1 << 5) /* Recieve FIFO interrupt enable */ | 1025 | #define ICCR0_RIE (1 << 5) /* Recieve FIFO interrupt enable */ |
1026 | #define ICCR0_RXE (1 << 4) /* Receive enable */ | 1026 | #define ICCR0_RXE (1 << 4) /* Receive enable */ |
diff --git a/include/asm-arm/arch-versatile/irqs.h b/include/asm-arm/arch-versatile/irqs.h index 745aa841b31a..f7263b99403b 100644 --- a/include/asm-arm/arch-versatile/irqs.h +++ b/include/asm-arm/arch-versatile/irqs.h | |||
@@ -22,7 +22,7 @@ | |||
22 | #include <asm/arch/platform.h> | 22 | #include <asm/arch/platform.h> |
23 | 23 | ||
24 | /* | 24 | /* |
25 | * IRQ interrupts definitions are the same the INT definitions | 25 | * IRQ interrupts definitions are the same as the INT definitions |
26 | * held within platform.h | 26 | * held within platform.h |
27 | */ | 27 | */ |
28 | #define IRQ_VIC_START 0 | 28 | #define IRQ_VIC_START 0 |
@@ -94,7 +94,7 @@ | |||
94 | #define IRQMASK_VICSOURCE31 INTMASK_VICSOURCE31 | 94 | #define IRQMASK_VICSOURCE31 INTMASK_VICSOURCE31 |
95 | 95 | ||
96 | /* | 96 | /* |
97 | * FIQ interrupts definitions are the same the INT definitions. | 97 | * FIQ interrupts definitions are the same as the INT definitions. |
98 | */ | 98 | */ |
99 | #define FIQ_WDOGINT INT_WDOGINT | 99 | #define FIQ_WDOGINT INT_WDOGINT |
100 | #define FIQ_SOFTINT INT_SOFTINT | 100 | #define FIQ_SOFTINT INT_SOFTINT |
diff --git a/include/asm-arm/hardware/it8152.h b/include/asm-arm/hardware/it8152.h index aaebb61aca48..74b5fff7f575 100644 --- a/include/asm-arm/hardware/it8152.h +++ b/include/asm-arm/hardware/it8152.h | |||
@@ -42,7 +42,7 @@ extern unsigned long it8152_base_address; | |||
42 | #define IT8152_GPIO_GPDR __REG_IT8152(0x3f00500) | 42 | #define IT8152_GPIO_GPDR __REG_IT8152(0x3f00500) |
43 | 43 | ||
44 | /* | 44 | /* |
45 | Interrup contoler per register summary: | 45 | Interrupt controller per register summary: |
46 | --------------------------------------- | 46 | --------------------------------------- |
47 | LCDNIRR: | 47 | LCDNIRR: |
48 | IT8152_LD_IRQ(8) PCICLK stop | 48 | IT8152_LD_IRQ(8) PCICLK stop |
diff --git a/include/asm-arm/mach/udc_pxa2xx.h b/include/asm-arm/mach/udc_pxa2xx.h index f191e147ea90..f9f3606986c2 100644 --- a/include/asm-arm/mach/udc_pxa2xx.h +++ b/include/asm-arm/mach/udc_pxa2xx.h | |||
@@ -16,7 +16,7 @@ struct pxa2xx_udc_mach_info { | |||
16 | #define PXA2XX_UDC_CMD_DISCONNECT 1 /* so host won't see us */ | 16 | #define PXA2XX_UDC_CMD_DISCONNECT 1 /* so host won't see us */ |
17 | 17 | ||
18 | /* Boards following the design guidelines in the developer's manual, | 18 | /* Boards following the design guidelines in the developer's manual, |
19 | * with on-chip GPIOs not Lubbock's wierd hardware, can have a sane | 19 | * with on-chip GPIOs not Lubbock's weird hardware, can have a sane |
20 | * VBUS IRQ and omit the methods above. Store the GPIO number | 20 | * VBUS IRQ and omit the methods above. Store the GPIO number |
21 | * here; for GPIO 0, also mask in one of the pxa_gpio_mode() bits. | 21 | * here; for GPIO 0, also mask in one of the pxa_gpio_mode() bits. |
22 | * Note that sometimes the signals go through inverters... | 22 | * Note that sometimes the signals go through inverters... |
diff --git a/include/asm-frv/atomic.h b/include/asm-frv/atomic.h index d425d8d0ad77..6ec494a5bc5a 100644 --- a/include/asm-frv/atomic.h +++ b/include/asm-frv/atomic.h | |||
@@ -1,7 +1,7 @@ | |||
1 | /* atomic.h: atomic operation emulation for FR-V | 1 | /* atomic.h: atomic operation emulation for FR-V |
2 | * | 2 | * |
3 | * For an explanation of how atomic ops work in this arch, see: | 3 | * For an explanation of how atomic ops work in this arch, see: |
4 | * Documentation/fujitsu/frv/atomic-ops.txt | 4 | * Documentation/frv/atomic-ops.txt |
5 | * | 5 | * |
6 | * Copyright (C) 2004 Red Hat, Inc. All Rights Reserved. | 6 | * Copyright (C) 2004 Red Hat, Inc. All Rights Reserved. |
7 | * Written by David Howells (dhowells@redhat.com) | 7 | * Written by David Howells (dhowells@redhat.com) |
diff --git a/include/asm-frv/bitops.h b/include/asm-frv/bitops.h index e29de7131b79..5f86b876b298 100644 --- a/include/asm-frv/bitops.h +++ b/include/asm-frv/bitops.h | |||
@@ -1,7 +1,7 @@ | |||
1 | /* bitops.h: bit operations for the Fujitsu FR-V CPUs | 1 | /* bitops.h: bit operations for the Fujitsu FR-V CPUs |
2 | * | 2 | * |
3 | * For an explanation of how atomic ops work in this arch, see: | 3 | * For an explanation of how atomic ops work in this arch, see: |
4 | * Documentation/fujitsu/frv/atomic-ops.txt | 4 | * Documentation/frv/atomic-ops.txt |
5 | * | 5 | * |
6 | * Copyright (C) 2004 Red Hat, Inc. All Rights Reserved. | 6 | * Copyright (C) 2004 Red Hat, Inc. All Rights Reserved. |
7 | * Written by David Howells (dhowells@redhat.com) | 7 | * Written by David Howells (dhowells@redhat.com) |
diff --git a/include/asm-frv/cacheflush.h b/include/asm-frv/cacheflush.h index 02500405a6fb..432a69e7f3d4 100644 --- a/include/asm-frv/cacheflush.h +++ b/include/asm-frv/cacheflush.h | |||
@@ -29,7 +29,7 @@ | |||
29 | #define flush_dcache_mmap_unlock(mapping) do {} while(0) | 29 | #define flush_dcache_mmap_unlock(mapping) do {} while(0) |
30 | 30 | ||
31 | /* | 31 | /* |
32 | * physically-indexed cache managment | 32 | * physically-indexed cache management |
33 | * - see arch/frv/lib/cache.S | 33 | * - see arch/frv/lib/cache.S |
34 | */ | 34 | */ |
35 | extern void frv_dcache_writeback(unsigned long start, unsigned long size); | 35 | extern void frv_dcache_writeback(unsigned long start, unsigned long size); |
diff --git a/include/asm-frv/highmem.h b/include/asm-frv/highmem.h index ff4d6cdeb152..26cefcde5cee 100644 --- a/include/asm-frv/highmem.h +++ b/include/asm-frv/highmem.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * Written by David Howells (dhowells@redhat.com) | 4 | * Written by David Howells (dhowells@redhat.com) |
5 | * - Derived from include/asm-i386/highmem.h | 5 | * - Derived from include/asm-i386/highmem.h |
6 | * | 6 | * |
7 | * See Documentation/fujitsu/frv/mmu-layout.txt for more information. | 7 | * See Documentation/frv/mmu-layout.txt for more information. |
8 | * | 8 | * |
9 | * This program is free software; you can redistribute it and/or | 9 | * This program is free software; you can redistribute it and/or |
10 | * modify it under the terms of the GNU General Public License | 10 | * modify it under the terms of the GNU General Public License |
diff --git a/include/asm-frv/mem-layout.h b/include/asm-frv/mem-layout.h index aaf2a773d9d3..83532252b8be 100644 --- a/include/asm-frv/mem-layout.h +++ b/include/asm-frv/mem-layout.h | |||
@@ -39,7 +39,7 @@ | |||
39 | 39 | ||
40 | #ifdef CONFIG_MMU | 40 | #ifdef CONFIG_MMU |
41 | 41 | ||
42 | /* see Documentation/fujitsu/frv/mmu-layout.txt */ | 42 | /* see Documentation/frv/mmu-layout.txt */ |
43 | #define KERNEL_LOWMEM_START __UL(0xc0000000) | 43 | #define KERNEL_LOWMEM_START __UL(0xc0000000) |
44 | #define KERNEL_LOWMEM_END __UL(0xd0000000) | 44 | #define KERNEL_LOWMEM_END __UL(0xd0000000) |
45 | #define VMALLOC_START __UL(0xd0000000) | 45 | #define VMALLOC_START __UL(0xd0000000) |
diff --git a/include/asm-frv/pgtable.h b/include/asm-frv/pgtable.h index 147e995bec24..3c402afb9e74 100644 --- a/include/asm-frv/pgtable.h +++ b/include/asm-frv/pgtable.h | |||
@@ -93,7 +93,7 @@ extern unsigned long empty_zero_page; | |||
93 | 93 | ||
94 | /* | 94 | /* |
95 | * we use 2-level page tables, folding the PMD (mid-level table) into the PGE (top-level entry) | 95 | * we use 2-level page tables, folding the PMD (mid-level table) into the PGE (top-level entry) |
96 | * [see Documentation/fujitsu/frv/mmu-layout.txt] | 96 | * [see Documentation/frv/mmu-layout.txt] |
97 | * | 97 | * |
98 | * Page Directory: | 98 | * Page Directory: |
99 | * - Size: 16KB | 99 | * - Size: 16KB |
diff --git a/include/asm-generic/rtc.h b/include/asm-generic/rtc.h index d3238f1f70a6..dd1bed860e64 100644 --- a/include/asm-generic/rtc.h +++ b/include/asm-generic/rtc.h | |||
@@ -35,10 +35,11 @@ | |||
35 | static inline unsigned char rtc_is_updating(void) | 35 | static inline unsigned char rtc_is_updating(void) |
36 | { | 36 | { |
37 | unsigned char uip; | 37 | unsigned char uip; |
38 | unsigned long flags; | ||
38 | 39 | ||
39 | spin_lock_irq(&rtc_lock); | 40 | spin_lock_irqsave(&rtc_lock, flags); |
40 | uip = (CMOS_READ(RTC_FREQ_SELECT) & RTC_UIP); | 41 | uip = (CMOS_READ(RTC_FREQ_SELECT) & RTC_UIP); |
41 | spin_unlock_irq(&rtc_lock); | 42 | spin_unlock_irqrestore(&rtc_lock, flags); |
42 | return uip; | 43 | return uip; |
43 | } | 44 | } |
44 | 45 | ||
@@ -46,6 +47,8 @@ static inline unsigned int get_rtc_time(struct rtc_time *time) | |||
46 | { | 47 | { |
47 | unsigned long uip_watchdog = jiffies; | 48 | unsigned long uip_watchdog = jiffies; |
48 | unsigned char ctrl; | 49 | unsigned char ctrl; |
50 | unsigned long flags; | ||
51 | |||
49 | #ifdef CONFIG_MACH_DECSTATION | 52 | #ifdef CONFIG_MACH_DECSTATION |
50 | unsigned int real_year; | 53 | unsigned int real_year; |
51 | #endif | 54 | #endif |
@@ -72,7 +75,7 @@ static inline unsigned int get_rtc_time(struct rtc_time *time) | |||
72 | * RTC has RTC_DAY_OF_WEEK, we ignore it, as it is only updated | 75 | * RTC has RTC_DAY_OF_WEEK, we ignore it, as it is only updated |
73 | * by the RTC when initially set to a non-zero value. | 76 | * by the RTC when initially set to a non-zero value. |
74 | */ | 77 | */ |
75 | spin_lock_irq(&rtc_lock); | 78 | spin_lock_irqsave(&rtc_lock, flags); |
76 | time->tm_sec = CMOS_READ(RTC_SECONDS); | 79 | time->tm_sec = CMOS_READ(RTC_SECONDS); |
77 | time->tm_min = CMOS_READ(RTC_MINUTES); | 80 | time->tm_min = CMOS_READ(RTC_MINUTES); |
78 | time->tm_hour = CMOS_READ(RTC_HOURS); | 81 | time->tm_hour = CMOS_READ(RTC_HOURS); |
@@ -83,7 +86,7 @@ static inline unsigned int get_rtc_time(struct rtc_time *time) | |||
83 | real_year = CMOS_READ(RTC_DEC_YEAR); | 86 | real_year = CMOS_READ(RTC_DEC_YEAR); |
84 | #endif | 87 | #endif |
85 | ctrl = CMOS_READ(RTC_CONTROL); | 88 | ctrl = CMOS_READ(RTC_CONTROL); |
86 | spin_unlock_irq(&rtc_lock); | 89 | spin_unlock_irqrestore(&rtc_lock, flags); |
87 | 90 | ||
88 | if (!(ctrl & RTC_DM_BINARY) || RTC_ALWAYS_BCD) | 91 | if (!(ctrl & RTC_DM_BINARY) || RTC_ALWAYS_BCD) |
89 | { | 92 | { |
diff --git a/include/asm-generic/tlb.h b/include/asm-generic/tlb.h index 75f2bfab614f..f490e43a90b9 100644 --- a/include/asm-generic/tlb.h +++ b/include/asm-generic/tlb.h | |||
@@ -14,7 +14,6 @@ | |||
14 | #define _ASM_GENERIC__TLB_H | 14 | #define _ASM_GENERIC__TLB_H |
15 | 15 | ||
16 | #include <linux/swap.h> | 16 | #include <linux/swap.h> |
17 | #include <linux/quicklist.h> | ||
18 | #include <asm/pgalloc.h> | 17 | #include <asm/pgalloc.h> |
19 | #include <asm/tlbflush.h> | 18 | #include <asm/tlbflush.h> |
20 | 19 | ||
diff --git a/include/asm-ia64/compat.h b/include/asm-ia64/compat.h index 0f6e5264ab8f..dfcf75b8426d 100644 --- a/include/asm-ia64/compat.h +++ b/include/asm-ia64/compat.h | |||
@@ -181,7 +181,7 @@ struct compat_shmid64_ds { | |||
181 | /* | 181 | /* |
182 | * A pointer passed in from user mode. This should not be used for syscall parameters, | 182 | * A pointer passed in from user mode. This should not be used for syscall parameters, |
183 | * just declare them as pointers because the syscall entry code will have appropriately | 183 | * just declare them as pointers because the syscall entry code will have appropriately |
184 | * comverted them already. | 184 | * converted them already. |
185 | */ | 185 | */ |
186 | typedef u32 compat_uptr_t; | 186 | typedef u32 compat_uptr_t; |
187 | 187 | ||
diff --git a/include/asm-m68knommu/bitops.h b/include/asm-m68knommu/bitops.h index f43afe1fc3b3..c142fbf2f376 100644 --- a/include/asm-m68knommu/bitops.h +++ b/include/asm-m68knommu/bitops.h | |||
@@ -262,7 +262,7 @@ static __inline__ unsigned long ext2_find_next_zero_bit(void *addr, unsigned lon | |||
262 | * tmp = __swab32(*(p++)); | 262 | * tmp = __swab32(*(p++)); |
263 | * tmp |= ~0UL >> (32-offset); | 263 | * tmp |= ~0UL >> (32-offset); |
264 | * | 264 | * |
265 | * but this would decrease preformance, so we change the | 265 | * but this would decrease performance, so we change the |
266 | * shift: | 266 | * shift: |
267 | */ | 267 | */ |
268 | tmp = *(p++); | 268 | tmp = *(p++); |
diff --git a/include/asm-m68knommu/commproc.h b/include/asm-m68knommu/commproc.h index 0161ebb5d883..36e870b468ef 100644 --- a/include/asm-m68knommu/commproc.h +++ b/include/asm-m68knommu/commproc.h | |||
@@ -715,7 +715,7 @@ extern void cpm_install_handler(int vec, void (*handler)(void *), void *dev_id); | |||
715 | #define CICR_SCC_SCC3 ((uint)0x00200000) /* SCC3 @ SCCc */ | 715 | #define CICR_SCC_SCC3 ((uint)0x00200000) /* SCC3 @ SCCc */ |
716 | #define CICR_SCB_SCC2 ((uint)0x00040000) /* SCC2 @ SCCb */ | 716 | #define CICR_SCB_SCC2 ((uint)0x00040000) /* SCC2 @ SCCb */ |
717 | #define CICR_SCA_SCC1 ((uint)0x00000000) /* SCC1 @ SCCa */ | 717 | #define CICR_SCA_SCC1 ((uint)0x00000000) /* SCC1 @ SCCa */ |
718 | #define CICR_IRL_MASK ((uint)0x0000e000) /* Core interrrupt */ | 718 | #define CICR_IRL_MASK ((uint)0x0000e000) /* Core interrupt */ |
719 | #define CICR_HP_MASK ((uint)0x00001f00) /* Hi-pri int. */ | 719 | #define CICR_HP_MASK ((uint)0x00001f00) /* Hi-pri int. */ |
720 | #define CICR_IEN ((uint)0x00000080) /* Int. enable */ | 720 | #define CICR_IEN ((uint)0x00000080) /* Int. enable */ |
721 | #define CICR_SPS ((uint)0x00000001) /* SCC Spread */ | 721 | #define CICR_SPS ((uint)0x00000001) /* SCC Spread */ |
diff --git a/include/asm-m68knommu/delay.h b/include/asm-m68knommu/delay.h index 04a20fd051cf..55cbd6294ab6 100644 --- a/include/asm-m68knommu/delay.h +++ b/include/asm-m68knommu/delay.h | |||
@@ -68,7 +68,7 @@ static inline void _udelay(unsigned long usecs) | |||
68 | /* | 68 | /* |
69 | * Moved the udelay() function into library code, no longer inlined. | 69 | * Moved the udelay() function into library code, no longer inlined. |
70 | * I had to change the algorithm because we are overflowing now on | 70 | * I had to change the algorithm because we are overflowing now on |
71 | * the faster ColdFire parts. The code is a little biger, so it makes | 71 | * the faster ColdFire parts. The code is a little bigger, so it makes |
72 | * sense to library it. | 72 | * sense to library it. |
73 | */ | 73 | */ |
74 | extern void udelay(unsigned long usecs); | 74 | extern void udelay(unsigned long usecs); |
diff --git a/include/asm-m68knommu/m5249sim.h b/include/asm-m68knommu/m5249sim.h index 399814f0b219..366eb8602d2f 100644 --- a/include/asm-m68knommu/m5249sim.h +++ b/include/asm-m68knommu/m5249sim.h | |||
@@ -43,10 +43,10 @@ | |||
43 | #define MCFSIM_CSAR1 0x8c /* CS 1 Address reg (r/w) */ | 43 | #define MCFSIM_CSAR1 0x8c /* CS 1 Address reg (r/w) */ |
44 | #define MCFSIM_CSMR1 0x90 /* CS 1 Mask reg (r/w) */ | 44 | #define MCFSIM_CSMR1 0x90 /* CS 1 Mask reg (r/w) */ |
45 | #define MCFSIM_CSCR1 0x96 /* CS 1 Control reg (r/w) */ | 45 | #define MCFSIM_CSCR1 0x96 /* CS 1 Control reg (r/w) */ |
46 | #define MCFSIM_CSAR2 0x98 /* CS 2 Adress reg (r/w) */ | 46 | #define MCFSIM_CSAR2 0x98 /* CS 2 Address reg (r/w) */ |
47 | #define MCFSIM_CSMR2 0x9c /* CS 2 Mask reg (r/w) */ | 47 | #define MCFSIM_CSMR2 0x9c /* CS 2 Mask reg (r/w) */ |
48 | #define MCFSIM_CSCR2 0xa2 /* CS 2 Control reg (r/w) */ | 48 | #define MCFSIM_CSCR2 0xa2 /* CS 2 Control reg (r/w) */ |
49 | #define MCFSIM_CSAR3 0xa4 /* CS 3 Adress reg (r/w) */ | 49 | #define MCFSIM_CSAR3 0xa4 /* CS 3 Address reg (r/w) */ |
50 | #define MCFSIM_CSMR3 0xa8 /* CS 3 Mask reg (r/w) */ | 50 | #define MCFSIM_CSMR3 0xa8 /* CS 3 Mask reg (r/w) */ |
51 | #define MCFSIM_CSCR3 0xae /* CS 3 Control reg (r/w) */ | 51 | #define MCFSIM_CSCR3 0xae /* CS 3 Control reg (r/w) */ |
52 | 52 | ||
diff --git a/include/asm-m68knommu/m5307sim.h b/include/asm-m68knommu/m5307sim.h index d3ce550f6ef4..5886728409c0 100644 --- a/include/asm-m68knommu/m5307sim.h +++ b/include/asm-m68knommu/m5307sim.h | |||
@@ -64,22 +64,22 @@ | |||
64 | #define MCFSIM_CSMR7 0xda /* CS 7 Mask reg (r/w) */ | 64 | #define MCFSIM_CSMR7 0xda /* CS 7 Mask reg (r/w) */ |
65 | #define MCFSIM_CSCR7 0xde /* CS 7 Control reg (r/w) */ | 65 | #define MCFSIM_CSCR7 0xde /* CS 7 Control reg (r/w) */ |
66 | #else | 66 | #else |
67 | #define MCFSIM_CSAR2 0x98 /* CS 2 Adress reg (r/w) */ | 67 | #define MCFSIM_CSAR2 0x98 /* CS 2 Address reg (r/w) */ |
68 | #define MCFSIM_CSMR2 0x9c /* CS 2 Mask reg (r/w) */ | 68 | #define MCFSIM_CSMR2 0x9c /* CS 2 Mask reg (r/w) */ |
69 | #define MCFSIM_CSCR2 0xa2 /* CS 2 Control reg (r/w) */ | 69 | #define MCFSIM_CSCR2 0xa2 /* CS 2 Control reg (r/w) */ |
70 | #define MCFSIM_CSAR3 0xa4 /* CS 3 Adress reg (r/w) */ | 70 | #define MCFSIM_CSAR3 0xa4 /* CS 3 Address reg (r/w) */ |
71 | #define MCFSIM_CSMR3 0xa8 /* CS 3 Mask reg (r/w) */ | 71 | #define MCFSIM_CSMR3 0xa8 /* CS 3 Mask reg (r/w) */ |
72 | #define MCFSIM_CSCR3 0xae /* CS 3 Control reg (r/w) */ | 72 | #define MCFSIM_CSCR3 0xae /* CS 3 Control reg (r/w) */ |
73 | #define MCFSIM_CSAR4 0xb0 /* CS 4 Adress reg (r/w) */ | 73 | #define MCFSIM_CSAR4 0xb0 /* CS 4 Address reg (r/w) */ |
74 | #define MCFSIM_CSMR4 0xb4 /* CS 4 Mask reg (r/w) */ | 74 | #define MCFSIM_CSMR4 0xb4 /* CS 4 Mask reg (r/w) */ |
75 | #define MCFSIM_CSCR4 0xba /* CS 4 Control reg (r/w) */ | 75 | #define MCFSIM_CSCR4 0xba /* CS 4 Control reg (r/w) */ |
76 | #define MCFSIM_CSAR5 0xbc /* CS 5 Adress reg (r/w) */ | 76 | #define MCFSIM_CSAR5 0xbc /* CS 5 Address reg (r/w) */ |
77 | #define MCFSIM_CSMR5 0xc0 /* CS 5 Mask reg (r/w) */ | 77 | #define MCFSIM_CSMR5 0xc0 /* CS 5 Mask reg (r/w) */ |
78 | #define MCFSIM_CSCR5 0xc6 /* CS 5 Control reg (r/w) */ | 78 | #define MCFSIM_CSCR5 0xc6 /* CS 5 Control reg (r/w) */ |
79 | #define MCFSIM_CSAR6 0xc8 /* CS 6 Adress reg (r/w) */ | 79 | #define MCFSIM_CSAR6 0xc8 /* CS 6 Address reg (r/w) */ |
80 | #define MCFSIM_CSMR6 0xcc /* CS 6 Mask reg (r/w) */ | 80 | #define MCFSIM_CSMR6 0xcc /* CS 6 Mask reg (r/w) */ |
81 | #define MCFSIM_CSCR6 0xd2 /* CS 6 Control reg (r/w) */ | 81 | #define MCFSIM_CSCR6 0xd2 /* CS 6 Control reg (r/w) */ |
82 | #define MCFSIM_CSAR7 0xd4 /* CS 7 Adress reg (r/w) */ | 82 | #define MCFSIM_CSAR7 0xd4 /* CS 7 Address reg (r/w) */ |
83 | #define MCFSIM_CSMR7 0xd8 /* CS 7 Mask reg (r/w) */ | 83 | #define MCFSIM_CSMR7 0xd8 /* CS 7 Mask reg (r/w) */ |
84 | #define MCFSIM_CSCR7 0xde /* CS 7 Control reg (r/w) */ | 84 | #define MCFSIM_CSCR7 0xde /* CS 7 Control reg (r/w) */ |
85 | #endif /* CONFIG_OLDMASK */ | 85 | #endif /* CONFIG_OLDMASK */ |
diff --git a/include/asm-m68knommu/m5407sim.h b/include/asm-m68knommu/m5407sim.h index 75dcdacdb298..cc22c4a53005 100644 --- a/include/asm-m68knommu/m5407sim.h +++ b/include/asm-m68knommu/m5407sim.h | |||
@@ -48,22 +48,22 @@ | |||
48 | #define MCFSIM_CSMR1 0x90 /* CS 1 Mask reg (r/w) */ | 48 | #define MCFSIM_CSMR1 0x90 /* CS 1 Mask reg (r/w) */ |
49 | #define MCFSIM_CSCR1 0x96 /* CS 1 Control reg (r/w) */ | 49 | #define MCFSIM_CSCR1 0x96 /* CS 1 Control reg (r/w) */ |
50 | 50 | ||
51 | #define MCFSIM_CSAR2 0x98 /* CS 2 Adress reg (r/w) */ | 51 | #define MCFSIM_CSAR2 0x98 /* CS 2 Address reg (r/w) */ |
52 | #define MCFSIM_CSMR2 0x9c /* CS 2 Mask reg (r/w) */ | 52 | #define MCFSIM_CSMR2 0x9c /* CS 2 Mask reg (r/w) */ |
53 | #define MCFSIM_CSCR2 0xa2 /* CS 2 Control reg (r/w) */ | 53 | #define MCFSIM_CSCR2 0xa2 /* CS 2 Control reg (r/w) */ |
54 | #define MCFSIM_CSAR3 0xa4 /* CS 3 Adress reg (r/w) */ | 54 | #define MCFSIM_CSAR3 0xa4 /* CS 3 Address reg (r/w) */ |
55 | #define MCFSIM_CSMR3 0xa8 /* CS 3 Mask reg (r/w) */ | 55 | #define MCFSIM_CSMR3 0xa8 /* CS 3 Mask reg (r/w) */ |
56 | #define MCFSIM_CSCR3 0xae /* CS 3 Control reg (r/w) */ | 56 | #define MCFSIM_CSCR3 0xae /* CS 3 Control reg (r/w) */ |
57 | #define MCFSIM_CSAR4 0xb0 /* CS 4 Adress reg (r/w) */ | 57 | #define MCFSIM_CSAR4 0xb0 /* CS 4 Address reg (r/w) */ |
58 | #define MCFSIM_CSMR4 0xb4 /* CS 4 Mask reg (r/w) */ | 58 | #define MCFSIM_CSMR4 0xb4 /* CS 4 Mask reg (r/w) */ |
59 | #define MCFSIM_CSCR4 0xba /* CS 4 Control reg (r/w) */ | 59 | #define MCFSIM_CSCR4 0xba /* CS 4 Control reg (r/w) */ |
60 | #define MCFSIM_CSAR5 0xbc /* CS 5 Adress reg (r/w) */ | 60 | #define MCFSIM_CSAR5 0xbc /* CS 5 Address reg (r/w) */ |
61 | #define MCFSIM_CSMR5 0xc0 /* CS 5 Mask reg (r/w) */ | 61 | #define MCFSIM_CSMR5 0xc0 /* CS 5 Mask reg (r/w) */ |
62 | #define MCFSIM_CSCR5 0xc6 /* CS 5 Control reg (r/w) */ | 62 | #define MCFSIM_CSCR5 0xc6 /* CS 5 Control reg (r/w) */ |
63 | #define MCFSIM_CSAR6 0xc8 /* CS 6 Adress reg (r/w) */ | 63 | #define MCFSIM_CSAR6 0xc8 /* CS 6 Address reg (r/w) */ |
64 | #define MCFSIM_CSMR6 0xcc /* CS 6 Mask reg (r/w) */ | 64 | #define MCFSIM_CSMR6 0xcc /* CS 6 Mask reg (r/w) */ |
65 | #define MCFSIM_CSCR6 0xd2 /* CS 6 Control reg (r/w) */ | 65 | #define MCFSIM_CSCR6 0xd2 /* CS 6 Control reg (r/w) */ |
66 | #define MCFSIM_CSAR7 0xd4 /* CS 7 Adress reg (r/w) */ | 66 | #define MCFSIM_CSAR7 0xd4 /* CS 7 Address reg (r/w) */ |
67 | #define MCFSIM_CSMR7 0xd8 /* CS 7 Mask reg (r/w) */ | 67 | #define MCFSIM_CSMR7 0xd8 /* CS 7 Mask reg (r/w) */ |
68 | #define MCFSIM_CSCR7 0xde /* CS 7 Control reg (r/w) */ | 68 | #define MCFSIM_CSCR7 0xde /* CS 7 Control reg (r/w) */ |
69 | 69 | ||
diff --git a/include/asm-m68knommu/m68360_regs.h b/include/asm-m68knommu/m68360_regs.h index a3f8cc8a4a84..d57217ca4f27 100644 --- a/include/asm-m68knommu/m68360_regs.h +++ b/include/asm-m68knommu/m68360_regs.h | |||
@@ -138,7 +138,7 @@ | |||
138 | #define CICR_SCC_SCC3 ((uint)0x00200000) /* SCC3 @ SCCc */ | 138 | #define CICR_SCC_SCC3 ((uint)0x00200000) /* SCC3 @ SCCc */ |
139 | #define CICR_SCD_SCC4 ((uint)0x00c00000) /* SCC4 @ SCCd */ | 139 | #define CICR_SCD_SCC4 ((uint)0x00c00000) /* SCC4 @ SCCd */ |
140 | 140 | ||
141 | #define CICR_IRL_MASK ((uint)0x0000e000) /* Core interrrupt */ | 141 | #define CICR_IRL_MASK ((uint)0x0000e000) /* Core interrupt */ |
142 | #define CICR_HP_MASK ((uint)0x00001f00) /* Hi-pri int. */ | 142 | #define CICR_HP_MASK ((uint)0x00001f00) /* Hi-pri int. */ |
143 | #define CICR_VBA_MASK ((uint)0x000000e0) /* Vector Base Address */ | 143 | #define CICR_VBA_MASK ((uint)0x000000e0) /* Vector Base Address */ |
144 | #define CICR_SPS ((uint)0x00000001) /* SCC Spread */ | 144 | #define CICR_SPS ((uint)0x00000001) /* SCC Spread */ |
diff --git a/include/asm-m68knommu/mcfuart.h b/include/asm-m68knommu/mcfuart.h index 1319a81814b1..8a7a67703ac3 100644 --- a/include/asm-m68knommu/mcfuart.h +++ b/include/asm-m68knommu/mcfuart.h | |||
@@ -71,7 +71,7 @@ struct mcf_platform_uart { | |||
71 | #define MCFUART_UTB 0x0c /* Transmit Buffer (w) */ | 71 | #define MCFUART_UTB 0x0c /* Transmit Buffer (w) */ |
72 | #define MCFUART_UIPCR 0x10 /* Input Port Change (r) */ | 72 | #define MCFUART_UIPCR 0x10 /* Input Port Change (r) */ |
73 | #define MCFUART_UACR 0x10 /* Auxiliary Control (w) */ | 73 | #define MCFUART_UACR 0x10 /* Auxiliary Control (w) */ |
74 | #define MCFUART_UISR 0x14 /* Interrup Status (r) */ | 74 | #define MCFUART_UISR 0x14 /* Interrupt Status (r) */ |
75 | #define MCFUART_UIMR 0x14 /* Interrupt Mask (w) */ | 75 | #define MCFUART_UIMR 0x14 /* Interrupt Mask (w) */ |
76 | #define MCFUART_UBG1 0x18 /* Baud Rate MSB (r/w) */ | 76 | #define MCFUART_UBG1 0x18 /* Baud Rate MSB (r/w) */ |
77 | #define MCFUART_UBG2 0x1c /* Baud Rate LSB (r/w) */ | 77 | #define MCFUART_UBG2 0x1c /* Baud Rate LSB (r/w) */ |
diff --git a/include/asm-mips/compat.h b/include/asm-mips/compat.h index 568c76cdd900..ac5d541368e9 100644 --- a/include/asm-mips/compat.h +++ b/include/asm-mips/compat.h | |||
@@ -128,7 +128,7 @@ typedef u32 compat_sigset_word; | |||
128 | * A pointer passed in from user mode. This should not | 128 | * A pointer passed in from user mode. This should not |
129 | * be used for syscall parameters, just declare them | 129 | * be used for syscall parameters, just declare them |
130 | * as pointers because the syscall entry code will have | 130 | * as pointers because the syscall entry code will have |
131 | * appropriately comverted them already. | 131 | * appropriately converted them already. |
132 | */ | 132 | */ |
133 | typedef u32 compat_uptr_t; | 133 | typedef u32 compat_uptr_t; |
134 | 134 | ||
diff --git a/include/asm-mips/mach-excite/excite_fpga.h b/include/asm-mips/mach-excite/excite_fpga.h index 38fcda703a0b..0a1ef69bece7 100644 --- a/include/asm-mips/mach-excite/excite_fpga.h +++ b/include/asm-mips/mach-excite/excite_fpga.h | |||
@@ -3,7 +3,7 @@ | |||
3 | 3 | ||
4 | 4 | ||
5 | /** | 5 | /** |
6 | * Adress alignment of the individual FPGA bytes. | 6 | * Address alignment of the individual FPGA bytes. |
7 | * The address arrangement of the individual bytes of the FPGA is two | 7 | * The address arrangement of the individual bytes of the FPGA is two |
8 | * byte aligned at the embedded MK2 platform. | 8 | * byte aligned at the embedded MK2 platform. |
9 | */ | 9 | */ |
diff --git a/include/asm-mips/mach-wrppmc/mach-gt64120.h b/include/asm-mips/mach-wrppmc/mach-gt64120.h index 00d8bf6164a9..83746b84a5ec 100644 --- a/include/asm-mips/mach-wrppmc/mach-gt64120.h +++ b/include/asm-mips/mach-wrppmc/mach-gt64120.h | |||
@@ -45,7 +45,7 @@ | |||
45 | #define GT_PCI_IO_SIZE 0x02000000UL | 45 | #define GT_PCI_IO_SIZE 0x02000000UL |
46 | 46 | ||
47 | /* | 47 | /* |
48 | * PCI interrupts will come in on either the INTA or INTD interrups lines, | 48 | * PCI interrupts will come in on either the INTA or INTD interrupt lines, |
49 | * which are mapped to the #2 and #5 interrupt pins of the MIPS. On our | 49 | * which are mapped to the #2 and #5 interrupt pins of the MIPS. On our |
50 | * boards, they all either come in on IntD or they all come in on IntA, they | 50 | * boards, they all either come in on IntD or they all come in on IntA, they |
51 | * aren't mixed. There can be numerous PCI interrupts, so we keep a list of the | 51 | * aren't mixed. There can be numerous PCI interrupts, so we keep a list of the |
diff --git a/include/asm-mips/sgi/ip22.h b/include/asm-mips/sgi/ip22.h index f4981c4f16bb..c0501f91719b 100644 --- a/include/asm-mips/sgi/ip22.h +++ b/include/asm-mips/sgi/ip22.h | |||
@@ -15,7 +15,7 @@ | |||
15 | /* | 15 | /* |
16 | * These are the virtual IRQ numbers, we divide all IRQ's into | 16 | * These are the virtual IRQ numbers, we divide all IRQ's into |
17 | * 'spaces', the 'space' determines where and how to enable/disable | 17 | * 'spaces', the 'space' determines where and how to enable/disable |
18 | * that particular IRQ on an SGI machine. HPC DMA and MC DMA interrups | 18 | * that particular IRQ on an SGI machine. HPC DMA and MC DMA interrupts |
19 | * are not supported this way. Driver is supposed to allocate HPC/MC | 19 | * are not supported this way. Driver is supposed to allocate HPC/MC |
20 | * interrupt as shareable and then look to proper status bit (see | 20 | * interrupt as shareable and then look to proper status bit (see |
21 | * HAL2 driver). This will prevent many complications, trust me ;-) | 21 | * HAL2 driver). This will prevent many complications, trust me ;-) |
diff --git a/include/asm-mips/sn/sn0/hubio.h b/include/asm-mips/sn/sn0/hubio.h index ef91b3363554..0187895e556c 100644 --- a/include/asm-mips/sn/sn0/hubio.h +++ b/include/asm-mips/sn/sn0/hubio.h | |||
@@ -338,7 +338,7 @@ typedef union io_perf_cnt { | |||
338 | #define IIO_IFDR 0x400398 /* IOQ FIFO Depth */ | 338 | #define IIO_IFDR 0x400398 /* IOQ FIFO Depth */ |
339 | #define IIO_IIAP 0x4003a0 /* IIQ Arbitration Parameters */ | 339 | #define IIO_IIAP 0x4003a0 /* IIQ Arbitration Parameters */ |
340 | #define IIO_IMMR IIO_IIAP | 340 | #define IIO_IMMR IIO_IIAP |
341 | #define IIO_ICMR 0x4003a8 /* CRB Managment Register */ | 341 | #define IIO_ICMR 0x4003a8 /* CRB Management Register */ |
342 | #define IIO_ICCR 0x4003b0 /* CRB Control Register */ | 342 | #define IIO_ICCR 0x4003b0 /* CRB Control Register */ |
343 | #define IIO_ICTO 0x4003b8 /* CRB Time Out Register */ | 343 | #define IIO_ICTO 0x4003b8 /* CRB Time Out Register */ |
344 | #define IIO_ICTP 0x4003c0 /* CRB Time Out Prescalar */ | 344 | #define IIO_ICTP 0x4003c0 /* CRB Time Out Prescalar */ |
diff --git a/include/asm-parisc/compat.h b/include/asm-parisc/compat.h index 5a85d1b025c8..7f32611a7a5e 100644 --- a/include/asm-parisc/compat.h +++ b/include/asm-parisc/compat.h | |||
@@ -132,7 +132,7 @@ typedef u32 compat_sigset_word; | |||
132 | * A pointer passed in from user mode. This should not | 132 | * A pointer passed in from user mode. This should not |
133 | * be used for syscall parameters, just declare them | 133 | * be used for syscall parameters, just declare them |
134 | * as pointers because the syscall entry code will have | 134 | * as pointers because the syscall entry code will have |
135 | * appropriately comverted them already. | 135 | * appropriately converted them already. |
136 | */ | 136 | */ |
137 | typedef u32 compat_uptr_t; | 137 | typedef u32 compat_uptr_t; |
138 | 138 | ||
diff --git a/include/asm-parisc/elf.h b/include/asm-parisc/elf.h index f628ac7de83d..8e7946a141de 100644 --- a/include/asm-parisc/elf.h +++ b/include/asm-parisc/elf.h | |||
@@ -28,7 +28,7 @@ | |||
28 | #define EFA_PARISC_1_1 0x0210 /* PA-RISC 1.1 big-endian. */ | 28 | #define EFA_PARISC_1_1 0x0210 /* PA-RISC 1.1 big-endian. */ |
29 | #define EFA_PARISC_2_0 0x0214 /* PA-RISC 2.0 big-endian. */ | 29 | #define EFA_PARISC_2_0 0x0214 /* PA-RISC 2.0 big-endian. */ |
30 | 30 | ||
31 | /* Additional section indeces. */ | 31 | /* Additional section indices. */ |
32 | 32 | ||
33 | #define SHN_PARISC_ANSI_COMMON 0xff00 /* Section for tenatively declared | 33 | #define SHN_PARISC_ANSI_COMMON 0xff00 /* Section for tenatively declared |
34 | symbols in ANSI C. */ | 34 | symbols in ANSI C. */ |
diff --git a/include/asm-parisc/linkage.h b/include/asm-parisc/linkage.h index ad8cd0d069ea..0b19a7242d0c 100644 --- a/include/asm-parisc/linkage.h +++ b/include/asm-parisc/linkage.h | |||
@@ -8,7 +8,7 @@ | |||
8 | 8 | ||
9 | /* | 9 | /* |
10 | * In parisc assembly a semicolon marks a comment while a | 10 | * In parisc assembly a semicolon marks a comment while a |
11 | * exclamation mark is used to seperate independent lines. | 11 | * exclamation mark is used to separate independent lines. |
12 | */ | 12 | */ |
13 | #ifdef __ASSEMBLY__ | 13 | #ifdef __ASSEMBLY__ |
14 | 14 | ||
diff --git a/include/asm-parisc/vga.h b/include/asm-parisc/vga.h index 154a84c843a7..171399a88ca6 100644 --- a/include/asm-parisc/vga.h +++ b/include/asm-parisc/vga.h | |||
@@ -3,4 +3,4 @@ | |||
3 | 3 | ||
4 | /* nothing */ | 4 | /* nothing */ |
5 | 5 | ||
6 | #endif __ASM_PARISC_VGA_H__ | 6 | #endif /* __ASM_PARISC_VGA_H__ */ |
diff --git a/include/asm-powerpc/compat.h b/include/asm-powerpc/compat.h index 64ab1ddbdf85..d811a8cd7b58 100644 --- a/include/asm-powerpc/compat.h +++ b/include/asm-powerpc/compat.h | |||
@@ -119,7 +119,7 @@ typedef u32 compat_sigset_word; | |||
119 | * A pointer passed in from user mode. This should not | 119 | * A pointer passed in from user mode. This should not |
120 | * be used for syscall parameters, just declare them | 120 | * be used for syscall parameters, just declare them |
121 | * as pointers because the syscall entry code will have | 121 | * as pointers because the syscall entry code will have |
122 | * appropriately comverted them already. | 122 | * appropriately converted them already. |
123 | */ | 123 | */ |
124 | typedef u32 compat_uptr_t; | 124 | typedef u32 compat_uptr_t; |
125 | 125 | ||
diff --git a/include/asm-s390/compat.h b/include/asm-s390/compat.h index 7f4ad623f7d5..de065b32381a 100644 --- a/include/asm-s390/compat.h +++ b/include/asm-s390/compat.h | |||
@@ -149,7 +149,7 @@ typedef u32 compat_sigset_word; | |||
149 | * A pointer passed in from user mode. This should not | 149 | * A pointer passed in from user mode. This should not |
150 | * be used for syscall parameters, just declare them | 150 | * be used for syscall parameters, just declare them |
151 | * as pointers because the syscall entry code will have | 151 | * as pointers because the syscall entry code will have |
152 | * appropriately comverted them already. | 152 | * appropriately converted them already. |
153 | */ | 153 | */ |
154 | typedef u32 compat_uptr_t; | 154 | typedef u32 compat_uptr_t; |
155 | 155 | ||
diff --git a/include/asm-sparc64/compat.h b/include/asm-sparc64/compat.h index 01fe6682b405..f260b58f5ce9 100644 --- a/include/asm-sparc64/compat.h +++ b/include/asm-sparc64/compat.h | |||
@@ -152,7 +152,7 @@ typedef u32 compat_sigset_word; | |||
152 | * A pointer passed in from user mode. This should not | 152 | * A pointer passed in from user mode. This should not |
153 | * be used for syscall parameters, just declare them | 153 | * be used for syscall parameters, just declare them |
154 | * as pointers because the syscall entry code will have | 154 | * as pointers because the syscall entry code will have |
155 | * appropriately comverted them already. | 155 | * appropriately converted them already. |
156 | */ | 156 | */ |
157 | typedef u32 compat_uptr_t; | 157 | typedef u32 compat_uptr_t; |
158 | 158 | ||
diff --git a/include/asm-x86/asm.h b/include/asm-x86/asm.h index 1a6980a60fc6..90dec0c23646 100644 --- a/include/asm-x86/asm.h +++ b/include/asm-x86/asm.h | |||
@@ -29,4 +29,11 @@ | |||
29 | 29 | ||
30 | #endif /* CONFIG_X86_32 */ | 30 | #endif /* CONFIG_X86_32 */ |
31 | 31 | ||
32 | /* Exception table entry */ | ||
33 | # define _ASM_EXTABLE(from,to) \ | ||
34 | " .section __ex_table,\"a\"\n" \ | ||
35 | _ASM_ALIGN "\n" \ | ||
36 | _ASM_PTR #from "," #to "\n" \ | ||
37 | " .previous\n" | ||
38 | |||
32 | #endif /* _ASM_X86_ASM_H */ | 39 | #endif /* _ASM_X86_ASM_H */ |
diff --git a/include/asm-x86/bugs.h b/include/asm-x86/bugs.h index 3fcc30dc0731..021cbdd5f258 100644 --- a/include/asm-x86/bugs.h +++ b/include/asm-x86/bugs.h | |||
@@ -2,6 +2,6 @@ | |||
2 | #define _ASM_X86_BUGS_H | 2 | #define _ASM_X86_BUGS_H |
3 | 3 | ||
4 | extern void check_bugs(void); | 4 | extern void check_bugs(void); |
5 | extern int ppro_with_ram_bug(void); | 5 | int ppro_with_ram_bug(void); |
6 | 6 | ||
7 | #endif /* _ASM_X86_BUGS_H */ | 7 | #endif /* _ASM_X86_BUGS_H */ |
diff --git a/include/asm-x86/compat.h b/include/asm-x86/compat.h index b270ee04959e..d3e8f3e87ee8 100644 --- a/include/asm-x86/compat.h +++ b/include/asm-x86/compat.h | |||
@@ -190,7 +190,7 @@ typedef struct user_regs_struct32 compat_elf_gregset_t; | |||
190 | * A pointer passed in from user mode. This should not | 190 | * A pointer passed in from user mode. This should not |
191 | * be used for syscall parameters, just declare them | 191 | * be used for syscall parameters, just declare them |
192 | * as pointers because the syscall entry code will have | 192 | * as pointers because the syscall entry code will have |
193 | * appropriately comverted them already. | 193 | * appropriately converted them already. |
194 | */ | 194 | */ |
195 | typedef u32 compat_uptr_t; | 195 | typedef u32 compat_uptr_t; |
196 | 196 | ||
diff --git a/include/asm-x86/cpufeature.h b/include/asm-x86/cpufeature.h index 3fb7dfa7fc91..065e92966c7c 100644 --- a/include/asm-x86/cpufeature.h +++ b/include/asm-x86/cpufeature.h | |||
@@ -4,9 +4,6 @@ | |||
4 | #ifndef _ASM_X86_CPUFEATURE_H | 4 | #ifndef _ASM_X86_CPUFEATURE_H |
5 | #define _ASM_X86_CPUFEATURE_H | 5 | #define _ASM_X86_CPUFEATURE_H |
6 | 6 | ||
7 | #ifndef __ASSEMBLY__ | ||
8 | #include <linux/bitops.h> | ||
9 | #endif | ||
10 | #include <asm/required-features.h> | 7 | #include <asm/required-features.h> |
11 | 8 | ||
12 | #define NCAPINTS 8 /* N 32-bit words worth of info */ | 9 | #define NCAPINTS 8 /* N 32-bit words worth of info */ |
@@ -49,6 +46,7 @@ | |||
49 | #define X86_FEATURE_MP (1*32+19) /* MP Capable. */ | 46 | #define X86_FEATURE_MP (1*32+19) /* MP Capable. */ |
50 | #define X86_FEATURE_NX (1*32+20) /* Execute Disable */ | 47 | #define X86_FEATURE_NX (1*32+20) /* Execute Disable */ |
51 | #define X86_FEATURE_MMXEXT (1*32+22) /* AMD MMX extensions */ | 48 | #define X86_FEATURE_MMXEXT (1*32+22) /* AMD MMX extensions */ |
49 | #define X86_FEATURE_GBPAGES (1*32+26) /* GB pages */ | ||
52 | #define X86_FEATURE_RDTSCP (1*32+27) /* RDTSCP */ | 50 | #define X86_FEATURE_RDTSCP (1*32+27) /* RDTSCP */ |
53 | #define X86_FEATURE_LM (1*32+29) /* Long Mode (x86-64) */ | 51 | #define X86_FEATURE_LM (1*32+29) /* Long Mode (x86-64) */ |
54 | #define X86_FEATURE_3DNOWEXT (1*32+30) /* AMD 3DNow! extensions */ | 52 | #define X86_FEATURE_3DNOWEXT (1*32+30) /* AMD 3DNow! extensions */ |
@@ -115,6 +113,13 @@ | |||
115 | */ | 113 | */ |
116 | #define X86_FEATURE_IDA (7*32+ 0) /* Intel Dynamic Acceleration */ | 114 | #define X86_FEATURE_IDA (7*32+ 0) /* Intel Dynamic Acceleration */ |
117 | 115 | ||
116 | #if defined(__KERNEL__) && !defined(__ASSEMBLY__) | ||
117 | |||
118 | #include <linux/bitops.h> | ||
119 | |||
120 | extern const char * const x86_cap_flags[NCAPINTS*32]; | ||
121 | extern const char * const x86_power_flags[32]; | ||
122 | |||
118 | #define cpu_has(c, bit) \ | 123 | #define cpu_has(c, bit) \ |
119 | (__builtin_constant_p(bit) && \ | 124 | (__builtin_constant_p(bit) && \ |
120 | ( (((bit)>>5)==0 && (1UL<<((bit)&31) & REQUIRED_MASK0)) || \ | 125 | ( (((bit)>>5)==0 && (1UL<<((bit)&31) & REQUIRED_MASK0)) || \ |
@@ -175,6 +180,7 @@ | |||
175 | #define cpu_has_pebs boot_cpu_has(X86_FEATURE_PEBS) | 180 | #define cpu_has_pebs boot_cpu_has(X86_FEATURE_PEBS) |
176 | #define cpu_has_clflush boot_cpu_has(X86_FEATURE_CLFLSH) | 181 | #define cpu_has_clflush boot_cpu_has(X86_FEATURE_CLFLSH) |
177 | #define cpu_has_bts boot_cpu_has(X86_FEATURE_BTS) | 182 | #define cpu_has_bts boot_cpu_has(X86_FEATURE_BTS) |
183 | #define cpu_has_gbpages boot_cpu_has(X86_FEATURE_GBPAGES) | ||
178 | 184 | ||
179 | #if defined(CONFIG_X86_INVLPG) || defined(CONFIG_X86_64) | 185 | #if defined(CONFIG_X86_INVLPG) || defined(CONFIG_X86_64) |
180 | # define cpu_has_invlpg 1 | 186 | # define cpu_has_invlpg 1 |
@@ -204,4 +210,6 @@ | |||
204 | 210 | ||
205 | #endif /* CONFIG_X86_64 */ | 211 | #endif /* CONFIG_X86_64 */ |
206 | 212 | ||
213 | #endif /* defined(__KERNEL__) && !defined(__ASSEMBLY__) */ | ||
214 | |||
207 | #endif /* _ASM_X86_CPUFEATURE_H */ | 215 | #endif /* _ASM_X86_CPUFEATURE_H */ |
diff --git a/include/asm-x86/efi.h b/include/asm-x86/efi.h index 9c68a1f098d8..ea9734b74aca 100644 --- a/include/asm-x86/efi.h +++ b/include/asm-x86/efi.h | |||
@@ -33,7 +33,7 @@ extern unsigned long asmlinkage efi_call_phys(void *, ...); | |||
33 | #define efi_call_virt6(f, a1, a2, a3, a4, a5, a6) \ | 33 | #define efi_call_virt6(f, a1, a2, a3, a4, a5, a6) \ |
34 | efi_call_virt(f, a1, a2, a3, a4, a5, a6) | 34 | efi_call_virt(f, a1, a2, a3, a4, a5, a6) |
35 | 35 | ||
36 | #define efi_ioremap(addr, size) ioremap(addr, size) | 36 | #define efi_ioremap(addr, size) ioremap_cache(addr, size) |
37 | 37 | ||
38 | #else /* !CONFIG_X86_32 */ | 38 | #else /* !CONFIG_X86_32 */ |
39 | 39 | ||
@@ -86,7 +86,7 @@ extern u64 efi_call6(void *fp, u64 arg1, u64 arg2, u64 arg3, | |||
86 | efi_call6((void *)(efi.systab->runtime->f), (u64)(a1), (u64)(a2), \ | 86 | efi_call6((void *)(efi.systab->runtime->f), (u64)(a1), (u64)(a2), \ |
87 | (u64)(a3), (u64)(a4), (u64)(a5), (u64)(a6)) | 87 | (u64)(a3), (u64)(a4), (u64)(a5), (u64)(a6)) |
88 | 88 | ||
89 | extern void *efi_ioremap(unsigned long offset, unsigned long size); | 89 | extern void *efi_ioremap(unsigned long addr, unsigned long size); |
90 | 90 | ||
91 | #endif /* CONFIG_X86_32 */ | 91 | #endif /* CONFIG_X86_32 */ |
92 | 92 | ||
diff --git a/include/asm-x86/futex.h b/include/asm-x86/futex.h index 9d919264923a..cd9f894dd2d7 100644 --- a/include/asm-x86/futex.h +++ b/include/asm-x86/futex.h | |||
@@ -17,11 +17,8 @@ | |||
17 | "2: .section .fixup,\"ax\"\n \ | 17 | "2: .section .fixup,\"ax\"\n \ |
18 | 3: mov %3, %1\n \ | 18 | 3: mov %3, %1\n \ |
19 | jmp 2b\n \ | 19 | jmp 2b\n \ |
20 | .previous\n \ | 20 | .previous\n" \ |
21 | .section __ex_table,\"a\"\n \ | 21 | _ASM_EXTABLE(1b,3b) \ |
22 | .align 8\n" \ | ||
23 | _ASM_PTR "1b,3b\n \ | ||
24 | .previous" \ | ||
25 | : "=r" (oldval), "=r" (ret), "+m" (*uaddr) \ | 22 | : "=r" (oldval), "=r" (ret), "+m" (*uaddr) \ |
26 | : "i" (-EFAULT), "0" (oparg), "1" (0)) | 23 | : "i" (-EFAULT), "0" (oparg), "1" (0)) |
27 | 24 | ||
@@ -35,11 +32,9 @@ | |||
35 | 3: .section .fixup,\"ax\"\n \ | 32 | 3: .section .fixup,\"ax\"\n \ |
36 | 4: mov %5, %1\n \ | 33 | 4: mov %5, %1\n \ |
37 | jmp 3b\n \ | 34 | jmp 3b\n \ |
38 | .previous\n \ | 35 | .previous\n" \ |
39 | .section __ex_table,\"a\"\n \ | 36 | _ASM_EXTABLE(1b,4b) \ |
40 | .align 8\n" \ | 37 | _ASM_EXTABLE(2b,4b) \ |
41 | _ASM_PTR "1b,4b,2b,4b\n \ | ||
42 | .previous" \ | ||
43 | : "=&a" (oldval), "=&r" (ret), "+m" (*uaddr), \ | 38 | : "=&a" (oldval), "=&r" (ret), "+m" (*uaddr), \ |
44 | "=&r" (tem) \ | 39 | "=&r" (tem) \ |
45 | : "r" (oparg), "i" (-EFAULT), "1" (0)) | 40 | : "r" (oparg), "i" (-EFAULT), "1" (0)) |
@@ -111,18 +106,12 @@ futex_atomic_cmpxchg_inatomic(int __user *uaddr, int oldval, int newval) | |||
111 | return -EFAULT; | 106 | return -EFAULT; |
112 | 107 | ||
113 | __asm__ __volatile__( | 108 | __asm__ __volatile__( |
114 | |||
115 | "1: lock; cmpxchgl %3, %1 \n" | 109 | "1: lock; cmpxchgl %3, %1 \n" |
116 | "2: .section .fixup, \"ax\" \n" | 110 | "2: .section .fixup, \"ax\" \n" |
117 | "3: mov %2, %0 \n" | 111 | "3: mov %2, %0 \n" |
118 | " jmp 2b \n" | 112 | " jmp 2b \n" |
119 | " .previous \n" | 113 | " .previous \n" |
120 | 114 | _ASM_EXTABLE(1b,3b) | |
121 | " .section __ex_table, \"a\" \n" | ||
122 | " .align 8 \n" | ||
123 | _ASM_PTR " 1b,3b \n" | ||
124 | " .previous \n" | ||
125 | |||
126 | : "=a" (oldval), "+m" (*uaddr) | 115 | : "=a" (oldval), "+m" (*uaddr) |
127 | : "i" (-EFAULT), "r" (newval), "0" (oldval) | 116 | : "i" (-EFAULT), "r" (newval), "0" (oldval) |
128 | : "memory" | 117 | : "memory" |
diff --git a/include/asm-x86/highmem.h b/include/asm-x86/highmem.h index 13cdcd66fff2..c25cfcaab589 100644 --- a/include/asm-x86/highmem.h +++ b/include/asm-x86/highmem.h | |||
@@ -63,8 +63,8 @@ extern pte_t *pkmap_page_table; | |||
63 | #define PKMAP_NR(virt) ((virt-PKMAP_BASE) >> PAGE_SHIFT) | 63 | #define PKMAP_NR(virt) ((virt-PKMAP_BASE) >> PAGE_SHIFT) |
64 | #define PKMAP_ADDR(nr) (PKMAP_BASE + ((nr) << PAGE_SHIFT)) | 64 | #define PKMAP_ADDR(nr) (PKMAP_BASE + ((nr) << PAGE_SHIFT)) |
65 | 65 | ||
66 | extern void * FASTCALL(kmap_high(struct page *page)); | 66 | extern void *kmap_high(struct page *page); |
67 | extern void FASTCALL(kunmap_high(struct page *page)); | 67 | extern void kunmap_high(struct page *page); |
68 | 68 | ||
69 | void *kmap(struct page *page); | 69 | void *kmap(struct page *page); |
70 | void kunmap(struct page *page); | 70 | void kunmap(struct page *page); |
diff --git a/include/asm-x86/hw_irq_32.h b/include/asm-x86/hw_irq_32.h index 6d65fbb6358b..ea88054e03f3 100644 --- a/include/asm-x86/hw_irq_32.h +++ b/include/asm-x86/hw_irq_32.h | |||
@@ -47,7 +47,7 @@ void enable_8259A_irq(unsigned int irq); | |||
47 | int i8259A_irq_pending(unsigned int irq); | 47 | int i8259A_irq_pending(unsigned int irq); |
48 | void make_8259A_irq(unsigned int irq); | 48 | void make_8259A_irq(unsigned int irq); |
49 | void init_8259A(int aeoi); | 49 | void init_8259A(int aeoi); |
50 | void FASTCALL(send_IPI_self(int vector)); | 50 | void send_IPI_self(int vector); |
51 | void init_VISWS_APIC_irqs(void); | 51 | void init_VISWS_APIC_irqs(void); |
52 | void setup_IO_APIC(void); | 52 | void setup_IO_APIC(void); |
53 | void disable_IO_APIC(void); | 53 | void disable_IO_APIC(void); |
diff --git a/include/asm-x86/i387.h b/include/asm-x86/i387.h index ba8105ca822b..6b1895ccd6b7 100644 --- a/include/asm-x86/i387.h +++ b/include/asm-x86/i387.h | |||
@@ -13,6 +13,7 @@ | |||
13 | #include <linux/sched.h> | 13 | #include <linux/sched.h> |
14 | #include <linux/kernel_stat.h> | 14 | #include <linux/kernel_stat.h> |
15 | #include <linux/regset.h> | 15 | #include <linux/regset.h> |
16 | #include <asm/asm.h> | ||
16 | #include <asm/processor.h> | 17 | #include <asm/processor.h> |
17 | #include <asm/sigcontext.h> | 18 | #include <asm/sigcontext.h> |
18 | #include <asm/user.h> | 19 | #include <asm/user.h> |
@@ -41,10 +42,7 @@ static inline void tolerant_fwait(void) | |||
41 | { | 42 | { |
42 | asm volatile("1: fwait\n" | 43 | asm volatile("1: fwait\n" |
43 | "2:\n" | 44 | "2:\n" |
44 | " .section __ex_table,\"a\"\n" | 45 | _ASM_EXTABLE(1b,2b)); |
45 | " .align 8\n" | ||
46 | " .quad 1b,2b\n" | ||
47 | " .previous\n"); | ||
48 | } | 46 | } |
49 | 47 | ||
50 | static inline int restore_fpu_checking(struct i387_fxsave_struct *fx) | 48 | static inline int restore_fpu_checking(struct i387_fxsave_struct *fx) |
@@ -57,10 +55,7 @@ static inline int restore_fpu_checking(struct i387_fxsave_struct *fx) | |||
57 | "3: movl $-1,%[err]\n" | 55 | "3: movl $-1,%[err]\n" |
58 | " jmp 2b\n" | 56 | " jmp 2b\n" |
59 | ".previous\n" | 57 | ".previous\n" |
60 | ".section __ex_table,\"a\"\n" | 58 | _ASM_EXTABLE(1b,3b) |
61 | " .align 8\n" | ||
62 | " .quad 1b,3b\n" | ||
63 | ".previous" | ||
64 | : [err] "=r" (err) | 59 | : [err] "=r" (err) |
65 | #if 0 /* See comment in __save_init_fpu() below. */ | 60 | #if 0 /* See comment in __save_init_fpu() below. */ |
66 | : [fx] "r" (fx), "m" (*fx), "0" (0)); | 61 | : [fx] "r" (fx), "m" (*fx), "0" (0)); |
@@ -99,10 +94,7 @@ static inline int save_i387_checking(struct i387_fxsave_struct __user *fx) | |||
99 | "3: movl $-1,%[err]\n" | 94 | "3: movl $-1,%[err]\n" |
100 | " jmp 2b\n" | 95 | " jmp 2b\n" |
101 | ".previous\n" | 96 | ".previous\n" |
102 | ".section __ex_table,\"a\"\n" | 97 | _ASM_EXTABLE(1b,3b) |
103 | " .align 8\n" | ||
104 | " .quad 1b,3b\n" | ||
105 | ".previous" | ||
106 | : [err] "=r" (err), "=m" (*fx) | 98 | : [err] "=r" (err), "=m" (*fx) |
107 | #if 0 /* See comment in __fxsave_clear() below. */ | 99 | #if 0 /* See comment in __fxsave_clear() below. */ |
108 | : [fx] "r" (fx), "0" (0)); | 100 | : [fx] "r" (fx), "0" (0)); |
diff --git a/include/asm-x86/io_32.h b/include/asm-x86/io_32.h index 586d7aa54ceb..58d2c45cd0b1 100644 --- a/include/asm-x86/io_32.h +++ b/include/asm-x86/io_32.h | |||
@@ -275,29 +275,6 @@ static inline void slow_down_io(void) { | |||
275 | 275 | ||
276 | #endif | 276 | #endif |
277 | 277 | ||
278 | #ifdef CONFIG_X86_NUMAQ | ||
279 | extern void *xquad_portio; /* Where the IO area was mapped */ | ||
280 | #define XQUAD_PORT_ADDR(port, quad) (xquad_portio + (XQUAD_PORTIO_QUAD*quad) + port) | ||
281 | #define __BUILDIO(bwl,bw,type) \ | ||
282 | static inline void out##bwl##_quad(unsigned type value, int port, int quad) { \ | ||
283 | if (xquad_portio) \ | ||
284 | write##bwl(value, XQUAD_PORT_ADDR(port, quad)); \ | ||
285 | else \ | ||
286 | out##bwl##_local(value, port); \ | ||
287 | } \ | ||
288 | static inline void out##bwl(unsigned type value, int port) { \ | ||
289 | out##bwl##_quad(value, port, 0); \ | ||
290 | } \ | ||
291 | static inline unsigned type in##bwl##_quad(int port, int quad) { \ | ||
292 | if (xquad_portio) \ | ||
293 | return read##bwl(XQUAD_PORT_ADDR(port, quad)); \ | ||
294 | else \ | ||
295 | return in##bwl##_local(port); \ | ||
296 | } \ | ||
297 | static inline unsigned type in##bwl(int port) { \ | ||
298 | return in##bwl##_quad(port, 0); \ | ||
299 | } | ||
300 | #else | ||
301 | #define __BUILDIO(bwl,bw,type) \ | 278 | #define __BUILDIO(bwl,bw,type) \ |
302 | static inline void out##bwl(unsigned type value, int port) { \ | 279 | static inline void out##bwl(unsigned type value, int port) { \ |
303 | out##bwl##_local(value, port); \ | 280 | out##bwl##_local(value, port); \ |
@@ -305,8 +282,6 @@ static inline void out##bwl(unsigned type value, int port) { \ | |||
305 | static inline unsigned type in##bwl(int port) { \ | 282 | static inline unsigned type in##bwl(int port) { \ |
306 | return in##bwl##_local(port); \ | 283 | return in##bwl##_local(port); \ |
307 | } | 284 | } |
308 | #endif | ||
309 | |||
310 | 285 | ||
311 | #define BUILDIO(bwl,bw,type) \ | 286 | #define BUILDIO(bwl,bw,type) \ |
312 | static inline void out##bwl##_local(unsigned type value, int port) { \ | 287 | static inline void out##bwl##_local(unsigned type value, int port) { \ |
diff --git a/include/asm-x86/mach-numaq/mach_apic.h b/include/asm-x86/mach-numaq/mach_apic.h index 17e183bd39c1..3b637fac890b 100644 --- a/include/asm-x86/mach-numaq/mach_apic.h +++ b/include/asm-x86/mach-numaq/mach_apic.h | |||
@@ -109,6 +109,8 @@ static inline int mpc_apic_id(struct mpc_config_processor *m, | |||
109 | return logical_apicid; | 109 | return logical_apicid; |
110 | } | 110 | } |
111 | 111 | ||
112 | extern void *xquad_portio; | ||
113 | |||
112 | static inline void setup_portio_remap(void) | 114 | static inline void setup_portio_remap(void) |
113 | { | 115 | { |
114 | int num_quads = num_online_nodes(); | 116 | int num_quads = num_online_nodes(); |
diff --git a/include/asm-x86/mach-voyager/do_timer.h b/include/asm-x86/mach-voyager/do_timer.h index bc2b58926308..9e5a459fd15b 100644 --- a/include/asm-x86/mach-voyager/do_timer.h +++ b/include/asm-x86/mach-voyager/do_timer.h | |||
@@ -6,7 +6,6 @@ | |||
6 | 6 | ||
7 | /** | 7 | /** |
8 | * do_timer_interrupt_hook - hook into timer tick | 8 | * do_timer_interrupt_hook - hook into timer tick |
9 | * @regs: standard registers from interrupt | ||
10 | * | 9 | * |
11 | * Call the pit clock event handler. see asm/i8253.h | 10 | * Call the pit clock event handler. see asm/i8253.h |
12 | **/ | 11 | **/ |
diff --git a/include/asm-x86/msr.h b/include/asm-x86/msr.h index 204a8a30fecf..3ca29ebebbb1 100644 --- a/include/asm-x86/msr.h +++ b/include/asm-x86/msr.h | |||
@@ -57,10 +57,7 @@ static inline unsigned long long native_read_msr_safe(unsigned int msr, | |||
57 | ".section .fixup,\"ax\"\n\t" | 57 | ".section .fixup,\"ax\"\n\t" |
58 | "3: mov %3,%0 ; jmp 1b\n\t" | 58 | "3: mov %3,%0 ; jmp 1b\n\t" |
59 | ".previous\n\t" | 59 | ".previous\n\t" |
60 | ".section __ex_table,\"a\"\n" | 60 | _ASM_EXTABLE(2b,3b) |
61 | _ASM_ALIGN "\n\t" | ||
62 | _ASM_PTR " 2b,3b\n\t" | ||
63 | ".previous" | ||
64 | : "=r" (*err), EAX_EDX_RET(val, low, high) | 61 | : "=r" (*err), EAX_EDX_RET(val, low, high) |
65 | : "c" (msr), "i" (-EFAULT)); | 62 | : "c" (msr), "i" (-EFAULT)); |
66 | return EAX_EDX_VAL(val, low, high); | 63 | return EAX_EDX_VAL(val, low, high); |
@@ -81,10 +78,7 @@ static inline int native_write_msr_safe(unsigned int msr, | |||
81 | ".section .fixup,\"ax\"\n\t" | 78 | ".section .fixup,\"ax\"\n\t" |
82 | "3: mov %4,%0 ; jmp 1b\n\t" | 79 | "3: mov %4,%0 ; jmp 1b\n\t" |
83 | ".previous\n\t" | 80 | ".previous\n\t" |
84 | ".section __ex_table,\"a\"\n" | 81 | _ASM_EXTABLE(2b,3b) |
85 | _ASM_ALIGN "\n\t" | ||
86 | _ASM_PTR " 2b,3b\n\t" | ||
87 | ".previous" | ||
88 | : "=a" (err) | 82 | : "=a" (err) |
89 | : "c" (msr), "0" (low), "d" (high), | 83 | : "c" (msr), "0" (low), "d" (high), |
90 | "i" (-EFAULT)); | 84 | "i" (-EFAULT)); |
diff --git a/include/asm-x86/page.h b/include/asm-x86/page.h index c8b30efeed85..1cb7c51bc296 100644 --- a/include/asm-x86/page.h +++ b/include/asm-x86/page.h | |||
@@ -13,8 +13,8 @@ | |||
13 | #define PHYSICAL_PAGE_MASK (PAGE_MASK & __PHYSICAL_MASK) | 13 | #define PHYSICAL_PAGE_MASK (PAGE_MASK & __PHYSICAL_MASK) |
14 | #define PTE_MASK (_AT(long, PHYSICAL_PAGE_MASK)) | 14 | #define PTE_MASK (_AT(long, PHYSICAL_PAGE_MASK)) |
15 | 15 | ||
16 | #define LARGE_PAGE_SIZE (_AC(1,UL) << PMD_SHIFT) | 16 | #define PMD_PAGE_SIZE (_AC(1, UL) << PMD_SHIFT) |
17 | #define LARGE_PAGE_MASK (~(LARGE_PAGE_SIZE-1)) | 17 | #define PMD_PAGE_MASK (~(PMD_PAGE_SIZE-1)) |
18 | 18 | ||
19 | #define HPAGE_SHIFT PMD_SHIFT | 19 | #define HPAGE_SHIFT PMD_SHIFT |
20 | #define HPAGE_SIZE (_AC(1,UL) << HPAGE_SHIFT) | 20 | #define HPAGE_SIZE (_AC(1,UL) << HPAGE_SHIFT) |
diff --git a/include/asm-x86/page_64.h b/include/asm-x86/page_64.h index c1ac42d8707f..dcf0c0746075 100644 --- a/include/asm-x86/page_64.h +++ b/include/asm-x86/page_64.h | |||
@@ -23,6 +23,9 @@ | |||
23 | #define MCE_STACK 5 | 23 | #define MCE_STACK 5 |
24 | #define N_EXCEPTION_STACKS 5 /* hw limit: 7 */ | 24 | #define N_EXCEPTION_STACKS 5 /* hw limit: 7 */ |
25 | 25 | ||
26 | #define PUD_PAGE_SIZE (_AC(1, UL) << PUD_SHIFT) | ||
27 | #define PUD_PAGE_MASK (~(PUD_PAGE_SIZE-1)) | ||
28 | |||
26 | #define __PAGE_OFFSET _AC(0xffff810000000000, UL) | 29 | #define __PAGE_OFFSET _AC(0xffff810000000000, UL) |
27 | 30 | ||
28 | #define __PHYSICAL_START CONFIG_PHYSICAL_START | 31 | #define __PHYSICAL_START CONFIG_PHYSICAL_START |
diff --git a/include/asm-x86/pgalloc_32.h b/include/asm-x86/pgalloc_32.h index 7641e7b5d931..6c21ef951dab 100644 --- a/include/asm-x86/pgalloc_32.h +++ b/include/asm-x86/pgalloc_32.h | |||
@@ -80,8 +80,10 @@ static inline void pud_populate(struct mm_struct *mm, pud_t *pudp, pmd_t *pmd) | |||
80 | set_pud(pudp, __pud(__pa(pmd) | _PAGE_PRESENT)); | 80 | set_pud(pudp, __pud(__pa(pmd) | _PAGE_PRESENT)); |
81 | 81 | ||
82 | /* | 82 | /* |
83 | * Pentium-II erratum A13: in PAE mode we explicitly have to flush | 83 | * According to Intel App note "TLBs, Paging-Structure Caches, |
84 | * the TLB via cr3 if the top-level pgd is changed... | 84 | * and Their Invalidation", April 2007, document 317080-001, |
85 | * section 8.1: in PAE mode we explicitly have to flush the | ||
86 | * TLB via cr3 if the top-level pgd is changed... | ||
85 | */ | 87 | */ |
86 | if (mm == current->active_mm) | 88 | if (mm == current->active_mm) |
87 | write_cr3(read_cr3()); | 89 | write_cr3(read_cr3()); |
diff --git a/include/asm-x86/pgtable-3level.h b/include/asm-x86/pgtable-3level.h index a195c3e757b9..1d763eec740f 100644 --- a/include/asm-x86/pgtable-3level.h +++ b/include/asm-x86/pgtable-3level.h | |||
@@ -93,26 +93,22 @@ static inline void native_pmd_clear(pmd_t *pmd) | |||
93 | 93 | ||
94 | static inline void pud_clear(pud_t *pudp) | 94 | static inline void pud_clear(pud_t *pudp) |
95 | { | 95 | { |
96 | unsigned long pgd; | ||
97 | |||
96 | set_pud(pudp, __pud(0)); | 98 | set_pud(pudp, __pud(0)); |
97 | 99 | ||
98 | /* | 100 | /* |
99 | * In principle we need to do a cr3 reload here to make sure | 101 | * According to Intel App note "TLBs, Paging-Structure Caches, |
100 | * the processor recognizes the changed pgd. In practice, all | 102 | * and Their Invalidation", April 2007, document 317080-001, |
101 | * the places where pud_clear() gets called are followed by | 103 | * section 8.1: in PAE mode we explicitly have to flush the |
102 | * full tlb flushes anyway, so we can defer the cost here. | 104 | * TLB via cr3 if the top-level pgd is changed... |
103 | * | ||
104 | * Specifically: | ||
105 | * | ||
106 | * mm/memory.c:free_pmd_range() - immediately after the | ||
107 | * pud_clear() it does a pmd_free_tlb(). We change the | ||
108 | * mmu_gather structure to do a full tlb flush (which has the | ||
109 | * effect of reloading cr3) when the pagetable free is | ||
110 | * complete. | ||
111 | * | 105 | * |
112 | * arch/x86/mm/hugetlbpage.c:huge_pmd_unshare() - the call to | 106 | * Make sure the pud entry we're updating is within the |
113 | * this is followed by a flush_tlb_range, which on x86 does a | 107 | * current pgd to avoid unnecessary TLB flushes. |
114 | * full tlb flush. | ||
115 | */ | 108 | */ |
109 | pgd = read_cr3(); | ||
110 | if (__pa(pudp) >= pgd && __pa(pudp) < (pgd + sizeof(pgd_t)*PTRS_PER_PGD)) | ||
111 | write_cr3(pgd); | ||
116 | } | 112 | } |
117 | 113 | ||
118 | #define pud_page(pud) \ | 114 | #define pud_page(pud) \ |
diff --git a/include/asm-x86/pgtable.h b/include/asm-x86/pgtable.h index cd2524f07452..44c0a4f1b1eb 100644 --- a/include/asm-x86/pgtable.h +++ b/include/asm-x86/pgtable.h | |||
@@ -13,10 +13,12 @@ | |||
13 | #define _PAGE_BIT_DIRTY 6 | 13 | #define _PAGE_BIT_DIRTY 6 |
14 | #define _PAGE_BIT_FILE 6 | 14 | #define _PAGE_BIT_FILE 6 |
15 | #define _PAGE_BIT_PSE 7 /* 4 MB (or 2MB) page */ | 15 | #define _PAGE_BIT_PSE 7 /* 4 MB (or 2MB) page */ |
16 | #define _PAGE_BIT_PAT 7 /* on 4KB pages */ | ||
16 | #define _PAGE_BIT_GLOBAL 8 /* Global TLB entry PPro+ */ | 17 | #define _PAGE_BIT_GLOBAL 8 /* Global TLB entry PPro+ */ |
17 | #define _PAGE_BIT_UNUSED1 9 /* available for programmer */ | 18 | #define _PAGE_BIT_UNUSED1 9 /* available for programmer */ |
18 | #define _PAGE_BIT_UNUSED2 10 | 19 | #define _PAGE_BIT_UNUSED2 10 |
19 | #define _PAGE_BIT_UNUSED3 11 | 20 | #define _PAGE_BIT_UNUSED3 11 |
21 | #define _PAGE_BIT_PAT_LARGE 12 /* On 2MB or 1GB pages */ | ||
20 | #define _PAGE_BIT_NX 63 /* No execute: only valid after cpuid check */ | 22 | #define _PAGE_BIT_NX 63 /* No execute: only valid after cpuid check */ |
21 | 23 | ||
22 | /* | 24 | /* |
@@ -36,6 +38,8 @@ | |||
36 | #define _PAGE_UNUSED1 (_AC(1, L)<<_PAGE_BIT_UNUSED1) | 38 | #define _PAGE_UNUSED1 (_AC(1, L)<<_PAGE_BIT_UNUSED1) |
37 | #define _PAGE_UNUSED2 (_AC(1, L)<<_PAGE_BIT_UNUSED2) | 39 | #define _PAGE_UNUSED2 (_AC(1, L)<<_PAGE_BIT_UNUSED2) |
38 | #define _PAGE_UNUSED3 (_AC(1, L)<<_PAGE_BIT_UNUSED3) | 40 | #define _PAGE_UNUSED3 (_AC(1, L)<<_PAGE_BIT_UNUSED3) |
41 | #define _PAGE_PAT (_AC(1, L)<<_PAGE_BIT_PAT) | ||
42 | #define _PAGE_PAT_LARGE (_AC(1, L)<<_PAGE_BIT_PAT_LARGE) | ||
39 | 43 | ||
40 | #if defined(CONFIG_X86_64) || defined(CONFIG_X86_PAE) | 44 | #if defined(CONFIG_X86_64) || defined(CONFIG_X86_PAE) |
41 | #define _PAGE_NX (_AC(1, ULL) << _PAGE_BIT_NX) | 45 | #define _PAGE_NX (_AC(1, ULL) << _PAGE_BIT_NX) |
diff --git a/include/asm-x86/pgtable_32.h b/include/asm-x86/pgtable_32.h index 21e70fbf1dae..935630d17304 100644 --- a/include/asm-x86/pgtable_32.h +++ b/include/asm-x86/pgtable_32.h | |||
@@ -148,6 +148,8 @@ static inline void clone_pgd_range(pgd_t *dst, pgd_t *src, int count) | |||
148 | */ | 148 | */ |
149 | #define pgd_offset_k(address) pgd_offset(&init_mm, address) | 149 | #define pgd_offset_k(address) pgd_offset(&init_mm, address) |
150 | 150 | ||
151 | static inline int pud_large(pud_t pud) { return 0; } | ||
152 | |||
151 | /* | 153 | /* |
152 | * the pmd page can be thought of an array like this: pmd_t[PTRS_PER_PMD] | 154 | * the pmd page can be thought of an array like this: pmd_t[PTRS_PER_PMD] |
153 | * | 155 | * |
diff --git a/include/asm-x86/pgtable_64.h b/include/asm-x86/pgtable_64.h index 6e615a103c2f..bd4740a60f29 100644 --- a/include/asm-x86/pgtable_64.h +++ b/include/asm-x86/pgtable_64.h | |||
@@ -21,7 +21,6 @@ extern pgd_t init_level4_pgt[]; | |||
21 | #define swapper_pg_dir init_level4_pgt | 21 | #define swapper_pg_dir init_level4_pgt |
22 | 22 | ||
23 | extern void paging_init(void); | 23 | extern void paging_init(void); |
24 | extern void clear_kernel_mapping(unsigned long addr, unsigned long size); | ||
25 | 24 | ||
26 | #endif /* !__ASSEMBLY__ */ | 25 | #endif /* !__ASSEMBLY__ */ |
27 | 26 | ||
@@ -199,6 +198,12 @@ static inline unsigned long pmd_bad(pmd_t pmd) | |||
199 | #define pud_offset(pgd, address) ((pud_t *) pgd_page_vaddr(*(pgd)) + pud_index(address)) | 198 | #define pud_offset(pgd, address) ((pud_t *) pgd_page_vaddr(*(pgd)) + pud_index(address)) |
200 | #define pud_present(pud) (pud_val(pud) & _PAGE_PRESENT) | 199 | #define pud_present(pud) (pud_val(pud) & _PAGE_PRESENT) |
201 | 200 | ||
201 | static inline int pud_large(pud_t pte) | ||
202 | { | ||
203 | return (pud_val(pte) & (_PAGE_PSE|_PAGE_PRESENT)) == | ||
204 | (_PAGE_PSE|_PAGE_PRESENT); | ||
205 | } | ||
206 | |||
202 | /* PMD - Level 2 access */ | 207 | /* PMD - Level 2 access */ |
203 | #define pmd_page_vaddr(pmd) ((unsigned long) __va(pmd_val(pmd) & PTE_MASK)) | 208 | #define pmd_page_vaddr(pmd) ((unsigned long) __va(pmd_val(pmd) & PTE_MASK)) |
204 | #define pmd_page(pmd) (pfn_to_page(pmd_val(pmd) >> PAGE_SHIFT)) | 209 | #define pmd_page(pmd) (pfn_to_page(pmd_val(pmd) >> PAGE_SHIFT)) |
diff --git a/include/asm-x86/string_32.h b/include/asm-x86/string_32.h index 55bfa308f900..c5d13a86dea7 100644 --- a/include/asm-x86/string_32.h +++ b/include/asm-x86/string_32.h | |||
@@ -213,14 +213,14 @@ static __always_inline void * __constant_c_and_count_memset(void * s, unsigned l | |||
213 | case 0: | 213 | case 0: |
214 | return s; | 214 | return s; |
215 | case 1: | 215 | case 1: |
216 | *(unsigned char *)s = pattern; | 216 | *(unsigned char *)s = pattern & 0xff; |
217 | return s; | 217 | return s; |
218 | case 2: | 218 | case 2: |
219 | *(unsigned short *)s = pattern; | 219 | *(unsigned short *)s = pattern & 0xffff; |
220 | return s; | 220 | return s; |
221 | case 3: | 221 | case 3: |
222 | *(unsigned short *)s = pattern; | 222 | *(unsigned short *)s = pattern & 0xffff; |
223 | *(2+(unsigned char *)s) = pattern; | 223 | *(2+(unsigned char *)s) = pattern & 0xff; |
224 | return s; | 224 | return s; |
225 | case 4: | 225 | case 4: |
226 | *(unsigned long *)s = pattern; | 226 | *(unsigned long *)s = pattern; |
diff --git a/include/asm-x86/system.h b/include/asm-x86/system.h index ee32ef9367f4..9cff02ffe6c2 100644 --- a/include/asm-x86/system.h +++ b/include/asm-x86/system.h | |||
@@ -20,8 +20,8 @@ | |||
20 | #ifdef CONFIG_X86_32 | 20 | #ifdef CONFIG_X86_32 |
21 | 21 | ||
22 | struct task_struct; /* one of the stranger aspects of C forward declarations */ | 22 | struct task_struct; /* one of the stranger aspects of C forward declarations */ |
23 | extern struct task_struct *FASTCALL(__switch_to(struct task_struct *prev, | 23 | struct task_struct *__switch_to(struct task_struct *prev, |
24 | struct task_struct *next)); | 24 | struct task_struct *next); |
25 | 25 | ||
26 | /* | 26 | /* |
27 | * Saving eflags is important. It switches not only IOPL between tasks, | 27 | * Saving eflags is important. It switches not only IOPL between tasks, |
@@ -130,10 +130,7 @@ extern void load_gs_index(unsigned); | |||
130 | "movl %k1, %%" #seg "\n\t" \ | 130 | "movl %k1, %%" #seg "\n\t" \ |
131 | "jmp 2b\n" \ | 131 | "jmp 2b\n" \ |
132 | ".previous\n" \ | 132 | ".previous\n" \ |
133 | ".section __ex_table,\"a\"\n\t" \ | 133 | _ASM_EXTABLE(1b,3b) \ |
134 | _ASM_ALIGN "\n\t" \ | ||
135 | _ASM_PTR " 1b,3b\n" \ | ||
136 | ".previous" \ | ||
137 | : :"r" (value), "r" (0)) | 134 | : :"r" (value), "r" (0)) |
138 | 135 | ||
139 | 136 | ||
@@ -214,12 +211,10 @@ static inline unsigned long native_read_cr4_safe(void) | |||
214 | /* This could fault if %cr4 does not exist. In x86_64, a cr4 always | 211 | /* This could fault if %cr4 does not exist. In x86_64, a cr4 always |
215 | * exists, so it will never fail. */ | 212 | * exists, so it will never fail. */ |
216 | #ifdef CONFIG_X86_32 | 213 | #ifdef CONFIG_X86_32 |
217 | asm volatile("1: mov %%cr4, %0 \n" | 214 | asm volatile("1: mov %%cr4, %0\n" |
218 | "2: \n" | 215 | "2:\n" |
219 | ".section __ex_table,\"a\" \n" | 216 | _ASM_EXTABLE(1b,2b) |
220 | ".long 1b,2b \n" | 217 | : "=r" (val), "=m" (__force_order) : "0" (0)); |
221 | ".previous \n" | ||
222 | : "=r" (val), "=m" (__force_order) : "0" (0)); | ||
223 | #else | 218 | #else |
224 | val = native_read_cr4(); | 219 | val = native_read_cr4(); |
225 | #endif | 220 | #endif |
@@ -276,9 +271,9 @@ static inline void native_wbinvd(void) | |||
276 | 271 | ||
277 | #endif /* __KERNEL__ */ | 272 | #endif /* __KERNEL__ */ |
278 | 273 | ||
279 | static inline void clflush(void *__p) | 274 | static inline void clflush(volatile void *__p) |
280 | { | 275 | { |
281 | asm volatile("clflush %0" : "+m" (*(char __force *)__p)); | 276 | asm volatile("clflush %0" : "+m" (*(volatile char __force *)__p)); |
282 | } | 277 | } |
283 | 278 | ||
284 | #define nop() __asm__ __volatile__ ("nop") | 279 | #define nop() __asm__ __volatile__ ("nop") |
diff --git a/include/asm-x86/uaccess_32.h b/include/asm-x86/uaccess_32.h index d2a4f7be9c2c..fcc570ec4fee 100644 --- a/include/asm-x86/uaccess_32.h +++ b/include/asm-x86/uaccess_32.h | |||
@@ -8,6 +8,7 @@ | |||
8 | #include <linux/thread_info.h> | 8 | #include <linux/thread_info.h> |
9 | #include <linux/prefetch.h> | 9 | #include <linux/prefetch.h> |
10 | #include <linux/string.h> | 10 | #include <linux/string.h> |
11 | #include <asm/asm.h> | ||
11 | #include <asm/page.h> | 12 | #include <asm/page.h> |
12 | 13 | ||
13 | #define VERIFY_READ 0 | 14 | #define VERIFY_READ 0 |
@@ -287,11 +288,8 @@ extern void __put_user_8(void); | |||
287 | "4: movl %3,%0\n" \ | 288 | "4: movl %3,%0\n" \ |
288 | " jmp 3b\n" \ | 289 | " jmp 3b\n" \ |
289 | ".previous\n" \ | 290 | ".previous\n" \ |
290 | ".section __ex_table,\"a\"\n" \ | 291 | _ASM_EXTABLE(1b,4b) \ |
291 | " .align 4\n" \ | 292 | _ASM_EXTABLE(2b,4b) \ |
292 | " .long 1b,4b\n" \ | ||
293 | " .long 2b,4b\n" \ | ||
294 | ".previous" \ | ||
295 | : "=r"(err) \ | 293 | : "=r"(err) \ |
296 | : "A" (x), "r" (addr), "i"(-EFAULT), "0"(err)) | 294 | : "A" (x), "r" (addr), "i"(-EFAULT), "0"(err)) |
297 | 295 | ||
@@ -338,10 +336,7 @@ struct __large_struct { unsigned long buf[100]; }; | |||
338 | "3: movl %3,%0\n" \ | 336 | "3: movl %3,%0\n" \ |
339 | " jmp 2b\n" \ | 337 | " jmp 2b\n" \ |
340 | ".previous\n" \ | 338 | ".previous\n" \ |
341 | ".section __ex_table,\"a\"\n" \ | 339 | _ASM_EXTABLE(1b,3b) \ |
342 | " .align 4\n" \ | ||
343 | " .long 1b,3b\n" \ | ||
344 | ".previous" \ | ||
345 | : "=r"(err) \ | 340 | : "=r"(err) \ |
346 | : ltype (x), "m"(__m(addr)), "i"(errret), "0"(err)) | 341 | : ltype (x), "m"(__m(addr)), "i"(errret), "0"(err)) |
347 | 342 | ||
@@ -378,10 +373,7 @@ do { \ | |||
378 | " xor"itype" %"rtype"1,%"rtype"1\n" \ | 373 | " xor"itype" %"rtype"1,%"rtype"1\n" \ |
379 | " jmp 2b\n" \ | 374 | " jmp 2b\n" \ |
380 | ".previous\n" \ | 375 | ".previous\n" \ |
381 | ".section __ex_table,\"a\"\n" \ | 376 | _ASM_EXTABLE(1b,3b) \ |
382 | " .align 4\n" \ | ||
383 | " .long 1b,3b\n" \ | ||
384 | ".previous" \ | ||
385 | : "=r"(err), ltype (x) \ | 377 | : "=r"(err), ltype (x) \ |
386 | : "m"(__m(addr)), "i"(errret), "0"(err)) | 378 | : "m"(__m(addr)), "i"(errret), "0"(err)) |
387 | 379 | ||
diff --git a/include/asm-x86/uaccess_64.h b/include/asm-x86/uaccess_64.h index 31d794702719..b87eb4ba8f9d 100644 --- a/include/asm-x86/uaccess_64.h +++ b/include/asm-x86/uaccess_64.h | |||
@@ -181,10 +181,7 @@ struct __large_struct { unsigned long buf[100]; }; | |||
181 | "3: mov %3,%0\n" \ | 181 | "3: mov %3,%0\n" \ |
182 | " jmp 2b\n" \ | 182 | " jmp 2b\n" \ |
183 | ".previous\n" \ | 183 | ".previous\n" \ |
184 | ".section __ex_table,\"a\"\n" \ | 184 | _ASM_EXTABLE(1b,3b) \ |
185 | " .align 8\n" \ | ||
186 | " .quad 1b,3b\n" \ | ||
187 | ".previous" \ | ||
188 | : "=r"(err) \ | 185 | : "=r"(err) \ |
189 | : ltype (x), "m"(__m(addr)), "i"(errno), "0"(err)) | 186 | : ltype (x), "m"(__m(addr)), "i"(errno), "0"(err)) |
190 | 187 | ||
@@ -226,10 +223,7 @@ do { \ | |||
226 | " xor"itype" %"rtype"1,%"rtype"1\n" \ | 223 | " xor"itype" %"rtype"1,%"rtype"1\n" \ |
227 | " jmp 2b\n" \ | 224 | " jmp 2b\n" \ |
228 | ".previous\n" \ | 225 | ".previous\n" \ |
229 | ".section __ex_table,\"a\"\n" \ | 226 | _ASM_EXTABLE(1b,3b) \ |
230 | " .align 8\n" \ | ||
231 | " .quad 1b,3b\n" \ | ||
232 | ".previous" \ | ||
233 | : "=r"(err), ltype (x) \ | 227 | : "=r"(err), ltype (x) \ |
234 | : "m"(__m(addr)), "i"(errno), "0"(err)) | 228 | : "m"(__m(addr)), "i"(errno), "0"(err)) |
235 | 229 | ||
diff --git a/include/asm-x86/vm86.h b/include/asm-x86/vm86.h index a5edf517b992..c92fe4af52e8 100644 --- a/include/asm-x86/vm86.h +++ b/include/asm-x86/vm86.h | |||
@@ -195,6 +195,7 @@ struct kernel_vm86_struct { | |||
195 | 195 | ||
196 | void handle_vm86_fault(struct kernel_vm86_regs *, long); | 196 | void handle_vm86_fault(struct kernel_vm86_regs *, long); |
197 | int handle_vm86_trap(struct kernel_vm86_regs *, long, int); | 197 | int handle_vm86_trap(struct kernel_vm86_regs *, long, int); |
198 | struct pt_regs *save_v86_state(struct kernel_vm86_regs *); | ||
198 | 199 | ||
199 | struct task_struct; | 200 | struct task_struct; |
200 | void release_vm86_irqs(struct task_struct *); | 201 | void release_vm86_irqs(struct task_struct *); |
diff --git a/include/linux/aspm.h b/include/linux/aspm.h deleted file mode 100644 index f41a69895485..000000000000 --- a/include/linux/aspm.h +++ /dev/null | |||
@@ -1,44 +0,0 @@ | |||
1 | /* | ||
2 | * aspm.h | ||
3 | * | ||
4 | * PCI Express ASPM defines and function prototypes | ||
5 | * | ||
6 | * Copyright (C) 2007 Intel Corp. | ||
7 | * Zhang Yanmin (yanmin.zhang@intel.com) | ||
8 | * Shaohua Li (shaohua.li@intel.com) | ||
9 | * | ||
10 | * For more information, please consult the following manuals (look at | ||
11 | * http://www.pcisig.com/ for how to get them): | ||
12 | * | ||
13 | * PCI Express Specification | ||
14 | */ | ||
15 | |||
16 | #ifndef LINUX_ASPM_H | ||
17 | #define LINUX_ASPM_H | ||
18 | |||
19 | #include <linux/pci.h> | ||
20 | |||
21 | #define PCIE_LINK_STATE_L0S 1 | ||
22 | #define PCIE_LINK_STATE_L1 2 | ||
23 | #define PCIE_LINK_STATE_CLKPM 4 | ||
24 | |||
25 | #ifdef CONFIG_PCIEASPM | ||
26 | extern void pcie_aspm_init_link_state(struct pci_dev *pdev); | ||
27 | extern void pcie_aspm_exit_link_state(struct pci_dev *pdev); | ||
28 | extern void pcie_aspm_pm_state_change(struct pci_dev *pdev); | ||
29 | extern void pci_disable_link_state(struct pci_dev *pdev, int state); | ||
30 | #else | ||
31 | #define pcie_aspm_init_link_state(pdev) do {} while (0) | ||
32 | #define pcie_aspm_exit_link_state(pdev) do {} while (0) | ||
33 | #define pcie_aspm_pm_state_change(pdev) do {} while (0) | ||
34 | #define pci_disable_link_state(pdev, state) do {} while (0) | ||
35 | #endif | ||
36 | |||
37 | #ifdef CONFIG_PCIEASPM_DEBUG /* this depends on CONFIG_PCIEASPM */ | ||
38 | extern void pcie_aspm_create_sysfs_dev_files(struct pci_dev *pdev); | ||
39 | extern void pcie_aspm_remove_sysfs_dev_files(struct pci_dev *pdev); | ||
40 | #else | ||
41 | #define pcie_aspm_create_sysfs_dev_files(pdev) do {} while (0) | ||
42 | #define pcie_aspm_remove_sysfs_dev_files(pdev) do {} while (0) | ||
43 | #endif | ||
44 | #endif /* LINUX_ASPM_H */ | ||
diff --git a/include/linux/chio.h b/include/linux/chio.h index a404c111c937..519248d8b2b6 100644 --- a/include/linux/chio.h +++ b/include/linux/chio.h | |||
@@ -108,7 +108,7 @@ struct changer_element_status { | |||
108 | 108 | ||
109 | /* | 109 | /* |
110 | * CHIOGELEM | 110 | * CHIOGELEM |
111 | * get more detailed status informtion for a single element | 111 | * get more detailed status information for a single element |
112 | */ | 112 | */ |
113 | struct changer_get_element { | 113 | struct changer_get_element { |
114 | int cge_type; /* type/unit */ | 114 | int cge_type; /* type/unit */ |
diff --git a/include/linux/cyclades.h b/include/linux/cyclades.h index 8f3dcd30828f..504cb2c3fa9a 100644 --- a/include/linux/cyclades.h +++ b/include/linux/cyclades.h | |||
@@ -177,7 +177,7 @@ struct CUSTOM_REG { | |||
177 | __u32 fpga_version; /* FPGA Version Number Register */ | 177 | __u32 fpga_version; /* FPGA Version Number Register */ |
178 | __u32 cpu_start; /* CPU start Register (write) */ | 178 | __u32 cpu_start; /* CPU start Register (write) */ |
179 | __u32 cpu_stop; /* CPU stop Register (write) */ | 179 | __u32 cpu_stop; /* CPU stop Register (write) */ |
180 | __u32 misc_reg; /* Miscelaneous Register */ | 180 | __u32 misc_reg; /* Miscellaneous Register */ |
181 | __u32 idt_mode; /* IDT mode Register */ | 181 | __u32 idt_mode; /* IDT mode Register */ |
182 | __u32 uart_irq_status; /* UART IRQ status Register */ | 182 | __u32 uart_irq_status; /* UART IRQ status Register */ |
183 | __u32 clear_timer0_irq; /* Clear timer interrupt Register */ | 183 | __u32 clear_timer0_irq; /* Clear timer interrupt Register */ |
diff --git a/include/linux/cycx_x25.h b/include/linux/cycx_x25.h index f7a906583463..362bf19d6cf1 100644 --- a/include/linux/cycx_x25.h +++ b/include/linux/cycx_x25.h | |||
@@ -81,7 +81,7 @@ struct cycx_x25_cmd { | |||
81 | * @n2win - level 2 window (values: 1 thru 7) | 81 | * @n2win - level 2 window (values: 1 thru 7) |
82 | * @n3win - level 3 window (values: 1 thru 7) | 82 | * @n3win - level 3 window (values: 1 thru 7) |
83 | * @nvc - # of logical channels (values: 1 thru 64) | 83 | * @nvc - # of logical channels (values: 1 thru 64) |
84 | * @pktlen - level 3 packet lenght - log base 2 of size | 84 | * @pktlen - level 3 packet length - log base 2 of size |
85 | * @locaddr - my address | 85 | * @locaddr - my address |
86 | * @remaddr - remote address | 86 | * @remaddr - remote address |
87 | * @t1 - time, in seconds | 87 | * @t1 - time, in seconds |
diff --git a/include/linux/dccp.h b/include/linux/dccp.h index 484e45c7c89a..aa0737019e37 100644 --- a/include/linux/dccp.h +++ b/include/linux/dccp.h | |||
@@ -525,6 +525,7 @@ struct dccp_sock { | |||
525 | __u64 dccps_gsr; | 525 | __u64 dccps_gsr; |
526 | __u64 dccps_gar; | 526 | __u64 dccps_gar; |
527 | __be32 dccps_service; | 527 | __be32 dccps_service; |
528 | __u32 dccps_mss_cache; | ||
528 | struct dccp_service_list *dccps_service_list; | 529 | struct dccp_service_list *dccps_service_list; |
529 | __u32 dccps_timestamp_echo; | 530 | __u32 dccps_timestamp_echo; |
530 | __u32 dccps_timestamp_time; | 531 | __u32 dccps_timestamp_time; |
@@ -533,7 +534,6 @@ struct dccp_sock { | |||
533 | __u16 dccps_pcslen; | 534 | __u16 dccps_pcslen; |
534 | __u16 dccps_pcrlen; | 535 | __u16 dccps_pcrlen; |
535 | unsigned long dccps_ndp_count; | 536 | unsigned long dccps_ndp_count; |
536 | __u32 dccps_mss_cache; | ||
537 | unsigned long dccps_rate_last; | 537 | unsigned long dccps_rate_last; |
538 | struct dccp_minisock dccps_minisock; | 538 | struct dccp_minisock dccps_minisock; |
539 | struct dccp_ackvec *dccps_hc_rx_ackvec; | 539 | struct dccp_ackvec *dccps_hc_rx_ackvec; |
diff --git a/include/linux/device.h b/include/linux/device.h index db375be333c7..479c0b31593c 100644 --- a/include/linux/device.h +++ b/include/linux/device.h | |||
@@ -534,11 +534,17 @@ extern struct device *device_create(struct class *cls, struct device *parent, | |||
534 | extern void device_destroy(struct class *cls, dev_t devt); | 534 | extern void device_destroy(struct class *cls, dev_t devt); |
535 | #ifdef CONFIG_PM_SLEEP | 535 | #ifdef CONFIG_PM_SLEEP |
536 | extern void destroy_suspended_device(struct class *cls, dev_t devt); | 536 | extern void destroy_suspended_device(struct class *cls, dev_t devt); |
537 | extern void device_pm_schedule_removal(struct device *); | ||
537 | #else /* !CONFIG_PM_SLEEP */ | 538 | #else /* !CONFIG_PM_SLEEP */ |
538 | static inline void destroy_suspended_device(struct class *cls, dev_t devt) | 539 | static inline void destroy_suspended_device(struct class *cls, dev_t devt) |
539 | { | 540 | { |
540 | device_destroy(cls, devt); | 541 | device_destroy(cls, devt); |
541 | } | 542 | } |
543 | |||
544 | static inline void device_pm_schedule_removal(struct device *dev) | ||
545 | { | ||
546 | device_unregister(dev); | ||
547 | } | ||
542 | #endif /* !CONFIG_PM_SLEEP */ | 548 | #endif /* !CONFIG_PM_SLEEP */ |
543 | 549 | ||
544 | /* | 550 | /* |
diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h index 101a2d4636be..4470950892be 100644 --- a/include/linux/dma-mapping.h +++ b/include/linux/dma-mapping.h | |||
@@ -1,5 +1,5 @@ | |||
1 | #ifndef _ASM_LINUX_DMA_MAPPING_H | 1 | #ifndef _LINUX_DMA_MAPPING_H |
2 | #define _ASM_LINUX_DMA_MAPPING_H | 2 | #define _LINUX_DMA_MAPPING_H |
3 | 3 | ||
4 | #include <linux/device.h> | 4 | #include <linux/device.h> |
5 | #include <linux/err.h> | 5 | #include <linux/err.h> |
diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h index 55c9a6952f44..5c84bf897593 100644 --- a/include/linux/dmaengine.h +++ b/include/linux/dmaengine.h | |||
@@ -29,7 +29,7 @@ | |||
29 | #include <linux/dma-mapping.h> | 29 | #include <linux/dma-mapping.h> |
30 | 30 | ||
31 | /** | 31 | /** |
32 | * enum dma_state - resource PNP/power managment state | 32 | * enum dma_state - resource PNP/power management state |
33 | * @DMA_RESOURCE_SUSPEND: DMA device going into low power state | 33 | * @DMA_RESOURCE_SUSPEND: DMA device going into low power state |
34 | * @DMA_RESOURCE_RESUME: DMA device returning to full power | 34 | * @DMA_RESOURCE_RESUME: DMA device returning to full power |
35 | * @DMA_RESOURCE_AVAILABLE: DMA device available to the system | 35 | * @DMA_RESOURCE_AVAILABLE: DMA device available to the system |
diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h index 71d4ada6f315..fcbe8b640ffb 100644 --- a/include/linux/ethtool.h +++ b/include/linux/ethtool.h | |||
@@ -309,7 +309,7 @@ int ethtool_op_set_flags(struct net_device *dev, u32 data); | |||
309 | * get_ringparam: Report ring sizes | 309 | * get_ringparam: Report ring sizes |
310 | * set_ringparam: Set ring sizes | 310 | * set_ringparam: Set ring sizes |
311 | * get_pauseparam: Report pause parameters | 311 | * get_pauseparam: Report pause parameters |
312 | * set_pauseparam: Set pause paramters | 312 | * set_pauseparam: Set pause parameters |
313 | * get_rx_csum: Report whether receive checksums are turned on or off | 313 | * get_rx_csum: Report whether receive checksums are turned on or off |
314 | * set_rx_csum: Turn receive checksum on or off | 314 | * set_rx_csum: Turn receive checksum on or off |
315 | * get_tx_csum: Report whether transmit checksums are turned on or off | 315 | * get_tx_csum: Report whether transmit checksums are turned on or off |
diff --git a/include/linux/fs.h b/include/linux/fs.h index a516b6716870..56bd421c1208 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
@@ -872,6 +872,7 @@ struct file_lock { | |||
872 | struct list_head fl_block; /* circular list of blocked processes */ | 872 | struct list_head fl_block; /* circular list of blocked processes */ |
873 | fl_owner_t fl_owner; | 873 | fl_owner_t fl_owner; |
874 | unsigned int fl_pid; | 874 | unsigned int fl_pid; |
875 | struct pid *fl_nspid; | ||
875 | wait_queue_head_t fl_wait; | 876 | wait_queue_head_t fl_wait; |
876 | struct file *fl_file; | 877 | struct file *fl_file; |
877 | unsigned char fl_flags; | 878 | unsigned char fl_flags; |
@@ -1307,7 +1308,7 @@ struct super_operations { | |||
1307 | * being set. find_inode() uses this to prevent returning | 1308 | * being set. find_inode() uses this to prevent returning |
1308 | * nearly-dead inodes. | 1309 | * nearly-dead inodes. |
1309 | * I_SYNC Similar to I_LOCK, but limited in scope to writeback | 1310 | * I_SYNC Similar to I_LOCK, but limited in scope to writeback |
1310 | * of inode dirty data. Having a seperate lock for this | 1311 | * of inode dirty data. Having a separate lock for this |
1311 | * purpose reduces latency and prevents some filesystem- | 1312 | * purpose reduces latency and prevents some filesystem- |
1312 | * specific deadlocks. | 1313 | * specific deadlocks. |
1313 | * | 1314 | * |
diff --git a/include/linux/hdreg.h b/include/linux/hdreg.h index ff43f8d6b5b3..e38e75967e74 100644 --- a/include/linux/hdreg.h +++ b/include/linux/hdreg.h | |||
@@ -364,7 +364,7 @@ typedef struct hd_drive_hob_hdr { | |||
364 | #define SETFEATURES_EN_RLA 0xAA /* Enable read look-ahead feature */ | 364 | #define SETFEATURES_EN_RLA 0xAA /* Enable read look-ahead feature */ |
365 | #define SETFEATURES_PREFETCH 0xAB /* Sets drive prefetch value */ | 365 | #define SETFEATURES_PREFETCH 0xAB /* Sets drive prefetch value */ |
366 | #define SETFEATURES_EN_REST 0xAC /* ATA-1 */ | 366 | #define SETFEATURES_EN_REST 0xAC /* ATA-1 */ |
367 | #define SETFEATURES_4B_RW_LONG 0xBB /* Set Lenght of 4 bytes */ | 367 | #define SETFEATURES_4B_RW_LONG 0xBB /* Set Length of 4 bytes */ |
368 | #define SETFEATURES_DIS_AAM 0xC2 /* Disable Automatic Acoustic Management */ | 368 | #define SETFEATURES_DIS_AAM 0xC2 /* Disable Automatic Acoustic Management */ |
369 | #define SETFEATURES_EN_RPOD 0xCC /* Enable reverting to power on defaults */ | 369 | #define SETFEATURES_EN_RPOD 0xCC /* Enable reverting to power on defaults */ |
370 | #define SETFEATURES_DIS_RI 0xDD /* Disable release interrupt ATAPI */ | 370 | #define SETFEATURES_DIS_RI 0xDD /* Disable release interrupt ATAPI */ |
@@ -706,8 +706,10 @@ struct hd_driveid { | |||
706 | */ | 706 | */ |
707 | #define IDE_NICE_DSC_OVERLAP (0) /* per the DSC overlap protocol */ | 707 | #define IDE_NICE_DSC_OVERLAP (0) /* per the DSC overlap protocol */ |
708 | #define IDE_NICE_ATAPI_OVERLAP (1) /* not supported yet */ | 708 | #define IDE_NICE_ATAPI_OVERLAP (1) /* not supported yet */ |
709 | #define IDE_NICE_0 (2) /* when sure that it won't affect us */ | ||
710 | #define IDE_NICE_1 (3) /* when probably won't affect us much */ | 709 | #define IDE_NICE_1 (3) /* when probably won't affect us much */ |
710 | #ifndef __KERNEL__ | ||
711 | #define IDE_NICE_0 (2) /* when sure that it won't affect us */ | ||
711 | #define IDE_NICE_2 (4) /* when we know it's on our expense */ | 712 | #define IDE_NICE_2 (4) /* when we know it's on our expense */ |
713 | #endif | ||
712 | 714 | ||
713 | #endif /* _LINUX_HDREG_H */ | 715 | #endif /* _LINUX_HDREG_H */ |
diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h index 49067f14fac1..f79dcba4b2c1 100644 --- a/include/linux/hrtimer.h +++ b/include/linux/hrtimer.h | |||
@@ -147,7 +147,6 @@ struct hrtimer_sleeper { | |||
147 | * @get_time: function to retrieve the current time of the clock | 147 | * @get_time: function to retrieve the current time of the clock |
148 | * @get_softirq_time: function to retrieve the current time from the softirq | 148 | * @get_softirq_time: function to retrieve the current time from the softirq |
149 | * @softirq_time: the time when running the hrtimer queue in the softirq | 149 | * @softirq_time: the time when running the hrtimer queue in the softirq |
150 | * @cb_pending: list of timers where the callback is pending | ||
151 | * @offset: offset of this clock to the monotonic base | 150 | * @offset: offset of this clock to the monotonic base |
152 | * @reprogram: function to reprogram the timer event | 151 | * @reprogram: function to reprogram the timer event |
153 | */ | 152 | */ |
diff --git a/include/linux/ide.h b/include/linux/ide.h index ec10b2a3bb6e..367c17084a28 100644 --- a/include/linux/ide.h +++ b/include/linux/ide.h | |||
@@ -112,18 +112,12 @@ typedef unsigned char byte; /* used everywhere */ | |||
112 | #define SATA_NR_PORTS (3) /* 16 possible ?? */ | 112 | #define SATA_NR_PORTS (3) /* 16 possible ?? */ |
113 | 113 | ||
114 | #define SATA_STATUS_OFFSET (0) | 114 | #define SATA_STATUS_OFFSET (0) |
115 | #define SATA_STATUS_REG (HWIF(drive)->sata_scr[SATA_STATUS_OFFSET]) | ||
116 | #define SATA_ERROR_OFFSET (1) | 115 | #define SATA_ERROR_OFFSET (1) |
117 | #define SATA_ERROR_REG (HWIF(drive)->sata_scr[SATA_ERROR_OFFSET]) | ||
118 | #define SATA_CONTROL_OFFSET (2) | 116 | #define SATA_CONTROL_OFFSET (2) |
119 | #define SATA_CONTROL_REG (HWIF(drive)->sata_scr[SATA_CONTROL_OFFSET]) | ||
120 | 117 | ||
121 | #define SATA_MISC_OFFSET (0) | 118 | #define SATA_MISC_OFFSET (0) |
122 | #define SATA_MISC_REG (HWIF(drive)->sata_misc[SATA_MISC_OFFSET]) | ||
123 | #define SATA_PHY_OFFSET (1) | 119 | #define SATA_PHY_OFFSET (1) |
124 | #define SATA_PHY_REG (HWIF(drive)->sata_misc[SATA_PHY_OFFSET]) | ||
125 | #define SATA_IEN_OFFSET (2) | 120 | #define SATA_IEN_OFFSET (2) |
126 | #define SATA_IEN_REG (HWIF(drive)->sata_misc[SATA_IEN_OFFSET]) | ||
127 | 121 | ||
128 | /* | 122 | /* |
129 | * Our Physical Region Descriptor (PRD) table should be large enough | 123 | * Our Physical Region Descriptor (PRD) table should be large enough |
@@ -196,6 +190,7 @@ typedef struct hw_regs_s { | |||
196 | } hw_regs_t; | 190 | } hw_regs_t; |
197 | 191 | ||
198 | struct hwif_s * ide_find_port(unsigned long); | 192 | struct hwif_s * ide_find_port(unsigned long); |
193 | struct hwif_s *ide_deprecated_find_port(unsigned long); | ||
199 | void ide_init_port_data(struct hwif_s *, unsigned int); | 194 | void ide_init_port_data(struct hwif_s *, unsigned int); |
200 | void ide_init_port_hw(struct hwif_s *, hw_regs_t *); | 195 | void ide_init_port_hw(struct hwif_s *, hw_regs_t *); |
201 | 196 | ||
@@ -406,8 +401,6 @@ typedef struct ide_drive_s { | |||
406 | unsigned no_unmask : 1; /* disallow setting unmask bit */ | 401 | unsigned no_unmask : 1; /* disallow setting unmask bit */ |
407 | unsigned no_io_32bit : 1; /* disallow enabling 32bit I/O */ | 402 | unsigned no_io_32bit : 1; /* disallow enabling 32bit I/O */ |
408 | unsigned atapi_overlap : 1; /* ATAPI overlap (not supported) */ | 403 | unsigned atapi_overlap : 1; /* ATAPI overlap (not supported) */ |
409 | unsigned nice0 : 1; /* give obvious excess bandwidth */ | ||
410 | unsigned nice2 : 1; /* give a share in our own bandwidth */ | ||
411 | unsigned doorlocking : 1; /* for removable only: door lock/unlock works */ | 404 | unsigned doorlocking : 1; /* for removable only: door lock/unlock works */ |
412 | unsigned nodma : 1; /* disallow DMA */ | 405 | unsigned nodma : 1; /* disallow DMA */ |
413 | unsigned autotune : 2; /* 0=default, 1=autotune, 2=noautotune */ | 406 | unsigned autotune : 2; /* 0=default, 1=autotune, 2=noautotune */ |
@@ -487,7 +480,6 @@ typedef struct hwif_s { | |||
487 | u8 major; /* our major number */ | 480 | u8 major; /* our major number */ |
488 | u8 index; /* 0 for ide0; 1 for ide1; ... */ | 481 | u8 index; /* 0 for ide0; 1 for ide1; ... */ |
489 | u8 channel; /* for dual-port chips: 0=primary, 1=secondary */ | 482 | u8 channel; /* for dual-port chips: 0=primary, 1=secondary */ |
490 | u8 straight8; /* Alan's straight 8 check */ | ||
491 | u8 bus_state; /* power state of the IDE bus */ | 483 | u8 bus_state; /* power state of the IDE bus */ |
492 | 484 | ||
493 | u32 host_flags; | 485 | u32 host_flags; |
@@ -513,6 +505,8 @@ typedef struct hwif_s { | |||
513 | #if 0 | 505 | #if 0 |
514 | ide_hwif_ops_t *hwifops; | 506 | ide_hwif_ops_t *hwifops; |
515 | #else | 507 | #else |
508 | /* host specific initialization of devices on a port */ | ||
509 | void (*port_init_devs)(struct hwif_s *); | ||
516 | /* routine to program host for PIO mode */ | 510 | /* routine to program host for PIO mode */ |
517 | void (*set_pio_mode)(ide_drive_t *, const u8); | 511 | void (*set_pio_mode)(ide_drive_t *, const u8); |
518 | /* routine to program host for DMA mode */ | 512 | /* routine to program host for DMA mode */ |
@@ -535,6 +529,8 @@ typedef struct hwif_s { | |||
535 | u8 (*mdma_filter)(ide_drive_t *); | 529 | u8 (*mdma_filter)(ide_drive_t *); |
536 | u8 (*udma_filter)(ide_drive_t *); | 530 | u8 (*udma_filter)(ide_drive_t *); |
537 | 531 | ||
532 | u8 (*cable_detect)(struct hwif_s *); | ||
533 | |||
538 | void (*ata_input_data)(ide_drive_t *, void *, u32); | 534 | void (*ata_input_data)(ide_drive_t *, void *, u32); |
539 | void (*ata_output_data)(ide_drive_t *, void *, u32); | 535 | void (*ata_output_data)(ide_drive_t *, void *, u32); |
540 | 536 | ||
@@ -602,10 +598,9 @@ typedef struct hwif_s { | |||
602 | unsigned serialized : 1; /* serialized all channel operation */ | 598 | unsigned serialized : 1; /* serialized all channel operation */ |
603 | unsigned sharing_irq: 1; /* 1 = sharing irq with another hwif */ | 599 | unsigned sharing_irq: 1; /* 1 = sharing irq with another hwif */ |
604 | unsigned reset : 1; /* reset after probe */ | 600 | unsigned reset : 1; /* reset after probe */ |
605 | unsigned auto_poll : 1; /* supports nop auto-poll */ | ||
606 | unsigned sg_mapped : 1; /* sg_table and sg_nents are ready */ | 601 | unsigned sg_mapped : 1; /* sg_table and sg_nents are ready */ |
607 | unsigned no_io_32bit : 1; /* 1 = can not do 32-bit IO ops */ | ||
608 | unsigned mmio : 1; /* host uses MMIO */ | 602 | unsigned mmio : 1; /* host uses MMIO */ |
603 | unsigned straight8 : 1; /* Alan's straight 8 check */ | ||
609 | 604 | ||
610 | struct device gendev; | 605 | struct device gendev; |
611 | struct completion gendev_rel_comp; /* To deal with device release() */ | 606 | struct completion gendev_rel_comp; /* To deal with device release() */ |
@@ -625,6 +620,9 @@ typedef struct hwif_s { | |||
625 | typedef ide_startstop_t (ide_handler_t)(ide_drive_t *); | 620 | typedef ide_startstop_t (ide_handler_t)(ide_drive_t *); |
626 | typedef int (ide_expiry_t)(ide_drive_t *); | 621 | typedef int (ide_expiry_t)(ide_drive_t *); |
627 | 622 | ||
623 | /* used by ide-cd, ide-floppy, etc. */ | ||
624 | typedef void (xfer_func_t)(ide_drive_t *, void *, u32); | ||
625 | |||
628 | typedef struct hwgroup_s { | 626 | typedef struct hwgroup_s { |
629 | /* irq handler, if active */ | 627 | /* irq handler, if active */ |
630 | ide_startstop_t (*handler)(ide_drive_t *); | 628 | ide_startstop_t (*handler)(ide_drive_t *); |
@@ -708,6 +706,7 @@ typedef struct { | |||
708 | void proc_ide_create(void); | 706 | void proc_ide_create(void); |
709 | void proc_ide_destroy(void); | 707 | void proc_ide_destroy(void); |
710 | void ide_proc_register_port(ide_hwif_t *); | 708 | void ide_proc_register_port(ide_hwif_t *); |
709 | void ide_proc_port_register_devices(ide_hwif_t *); | ||
711 | void ide_proc_unregister_port(ide_hwif_t *); | 710 | void ide_proc_unregister_port(ide_hwif_t *); |
712 | void ide_proc_register_driver(ide_drive_t *, ide_driver_t *); | 711 | void ide_proc_register_driver(ide_drive_t *, ide_driver_t *); |
713 | void ide_proc_unregister_driver(ide_drive_t *, ide_driver_t *); | 712 | void ide_proc_unregister_driver(ide_drive_t *, ide_driver_t *); |
@@ -740,6 +739,7 @@ void ide_pci_create_host_proc(const char *, get_info_t *); | |||
740 | static inline void proc_ide_create(void) { ; } | 739 | static inline void proc_ide_create(void) { ; } |
741 | static inline void proc_ide_destroy(void) { ; } | 740 | static inline void proc_ide_destroy(void) { ; } |
742 | static inline void ide_proc_register_port(ide_hwif_t *hwif) { ; } | 741 | static inline void ide_proc_register_port(ide_hwif_t *hwif) { ; } |
742 | static inline void ide_proc_port_register_devices(ide_hwif_t *hwif) { ; } | ||
743 | static inline void ide_proc_unregister_port(ide_hwif_t *hwif) { ; } | 743 | static inline void ide_proc_unregister_port(ide_hwif_t *hwif) { ; } |
744 | static inline void ide_proc_register_driver(ide_drive_t *drive, ide_driver_t *driver) { ; } | 744 | static inline void ide_proc_register_driver(ide_drive_t *drive, ide_driver_t *driver) { ; } |
745 | static inline void ide_proc_unregister_driver(ide_drive_t *drive, ide_driver_t *driver) { ; } | 745 | static inline void ide_proc_unregister_driver(ide_drive_t *drive, ide_driver_t *driver) { ; } |
@@ -988,10 +988,8 @@ int ide_task_ioctl(ide_drive_t *, unsigned int, unsigned long); | |||
988 | extern int system_bus_clock(void); | 988 | extern int system_bus_clock(void); |
989 | 989 | ||
990 | extern int ide_driveid_update(ide_drive_t *); | 990 | extern int ide_driveid_update(ide_drive_t *); |
991 | extern int ide_ata66_check(ide_drive_t *, ide_task_t *); | ||
992 | extern int ide_config_drive_speed(ide_drive_t *, u8); | 991 | extern int ide_config_drive_speed(ide_drive_t *, u8); |
993 | extern u8 eighty_ninty_three (ide_drive_t *); | 992 | extern u8 eighty_ninty_three (ide_drive_t *); |
994 | extern int set_transfer(ide_drive_t *, ide_task_t *); | ||
995 | extern int taskfile_lib_get_identify(ide_drive_t *drive, u8 *); | 993 | extern int taskfile_lib_get_identify(ide_drive_t *drive, u8 *); |
996 | 994 | ||
997 | extern int ide_wait_not_busy(ide_hwif_t *hwif, unsigned long timeout); | 995 | extern int ide_wait_not_busy(ide_hwif_t *hwif, unsigned long timeout); |
@@ -1016,6 +1014,13 @@ extern int __ide_pci_register_driver(struct pci_driver *driver, struct module *o | |||
1016 | void ide_pci_setup_ports(struct pci_dev *, const struct ide_port_info *, int, u8 *); | 1014 | void ide_pci_setup_ports(struct pci_dev *, const struct ide_port_info *, int, u8 *); |
1017 | void ide_setup_pci_noise(struct pci_dev *, const struct ide_port_info *); | 1015 | void ide_setup_pci_noise(struct pci_dev *, const struct ide_port_info *); |
1018 | 1016 | ||
1017 | #ifdef CONFIG_BLK_DEV_IDEDMA_PCI | ||
1018 | void ide_hwif_setup_dma(ide_hwif_t *, const struct ide_port_info *); | ||
1019 | #else | ||
1020 | static inline void ide_hwif_setup_dma(ide_hwif_t *hwif, | ||
1021 | const struct ide_port_info *d) { } | ||
1022 | #endif | ||
1023 | |||
1019 | extern void default_hwif_iops(ide_hwif_t *); | 1024 | extern void default_hwif_iops(ide_hwif_t *); |
1020 | extern void default_hwif_mmiops(ide_hwif_t *); | 1025 | extern void default_hwif_mmiops(ide_hwif_t *); |
1021 | extern void default_hwif_transport(ide_hwif_t *); | 1026 | extern void default_hwif_transport(ide_hwif_t *); |
@@ -1052,7 +1057,7 @@ enum { | |||
1052 | IDE_HFLAG_NO_SET_MODE = (1 << 9), | 1057 | IDE_HFLAG_NO_SET_MODE = (1 << 9), |
1053 | /* trust BIOS for programming chipset/device for DMA */ | 1058 | /* trust BIOS for programming chipset/device for DMA */ |
1054 | IDE_HFLAG_TRUST_BIOS_FOR_DMA = (1 << 10), | 1059 | IDE_HFLAG_TRUST_BIOS_FOR_DMA = (1 << 10), |
1055 | /* host uses VDMA */ | 1060 | /* host uses VDMA (tied with IDE_HFLAG_CS5520 for now) */ |
1056 | IDE_HFLAG_VDMA = (1 << 11), | 1061 | IDE_HFLAG_VDMA = (1 << 11), |
1057 | /* ATAPI DMA is unsupported */ | 1062 | /* ATAPI DMA is unsupported */ |
1058 | IDE_HFLAG_NO_ATAPI_DMA = (1 << 12), | 1063 | IDE_HFLAG_NO_ATAPI_DMA = (1 << 12), |
@@ -1062,8 +1067,10 @@ enum { | |||
1062 | IDE_HFLAG_NO_DMA = (1 << 14), | 1067 | IDE_HFLAG_NO_DMA = (1 << 14), |
1063 | /* check if host is PCI IDE device before allowing DMA */ | 1068 | /* check if host is PCI IDE device before allowing DMA */ |
1064 | IDE_HFLAG_NO_AUTODMA = (1 << 15), | 1069 | IDE_HFLAG_NO_AUTODMA = (1 << 15), |
1070 | /* don't autotune PIO */ | ||
1071 | IDE_HFLAG_NO_AUTOTUNE = (1 << 16), | ||
1065 | /* host is CS5510/CS5520 */ | 1072 | /* host is CS5510/CS5520 */ |
1066 | IDE_HFLAG_CS5520 = (1 << 16), | 1073 | IDE_HFLAG_CS5520 = IDE_HFLAG_VDMA, |
1067 | /* no LBA48 */ | 1074 | /* no LBA48 */ |
1068 | IDE_HFLAG_NO_LBA48 = (1 << 17), | 1075 | IDE_HFLAG_NO_LBA48 = (1 << 17), |
1069 | /* no LBA48 DMA */ | 1076 | /* no LBA48 DMA */ |
@@ -1089,6 +1096,10 @@ enum { | |||
1089 | IDE_HFLAG_CLEAR_SIMPLEX = (1 << 28), | 1096 | IDE_HFLAG_CLEAR_SIMPLEX = (1 << 28), |
1090 | /* DSC overlap is unsupported */ | 1097 | /* DSC overlap is unsupported */ |
1091 | IDE_HFLAG_NO_DSC = (1 << 29), | 1098 | IDE_HFLAG_NO_DSC = (1 << 29), |
1099 | /* never use 32-bit I/O ops */ | ||
1100 | IDE_HFLAG_NO_IO_32BIT = (1 << 30), | ||
1101 | /* never unmask IRQs */ | ||
1102 | IDE_HFLAG_NO_UNMASK_IRQS = (1 << 31), | ||
1092 | }; | 1103 | }; |
1093 | 1104 | ||
1094 | #ifdef CONFIG_BLK_DEV_OFFBOARD | 1105 | #ifdef CONFIG_BLK_DEV_OFFBOARD |
@@ -1144,6 +1155,7 @@ void ide_dma_off_quietly(ide_drive_t *); | |||
1144 | void ide_dma_off(ide_drive_t *); | 1155 | void ide_dma_off(ide_drive_t *); |
1145 | void ide_dma_on(ide_drive_t *); | 1156 | void ide_dma_on(ide_drive_t *); |
1146 | int ide_set_dma(ide_drive_t *); | 1157 | int ide_set_dma(ide_drive_t *); |
1158 | void ide_check_dma_crc(ide_drive_t *); | ||
1147 | ide_startstop_t ide_dma_intr(ide_drive_t *); | 1159 | ide_startstop_t ide_dma_intr(ide_drive_t *); |
1148 | 1160 | ||
1149 | int ide_build_sglist(ide_drive_t *, struct request *); | 1161 | int ide_build_sglist(ide_drive_t *, struct request *); |
@@ -1171,6 +1183,7 @@ static inline void ide_dma_off(ide_drive_t *drive) { ; } | |||
1171 | static inline void ide_dma_on(ide_drive_t *drive) { ; } | 1183 | static inline void ide_dma_on(ide_drive_t *drive) { ; } |
1172 | static inline void ide_dma_verbose(ide_drive_t *drive) { ; } | 1184 | static inline void ide_dma_verbose(ide_drive_t *drive) { ; } |
1173 | static inline int ide_set_dma(ide_drive_t *drive) { return 1; } | 1185 | static inline int ide_set_dma(ide_drive_t *drive) { return 1; } |
1186 | static inline void ide_check_dma_crc(ide_drive_t *drive) { ; } | ||
1174 | #endif /* CONFIG_BLK_DEV_IDEDMA */ | 1187 | #endif /* CONFIG_BLK_DEV_IDEDMA */ |
1175 | 1188 | ||
1176 | #ifndef CONFIG_BLK_DEV_IDEDMA_PCI | 1189 | #ifndef CONFIG_BLK_DEV_IDEDMA_PCI |
@@ -1182,27 +1195,29 @@ extern int ide_acpi_exec_tfs(ide_drive_t *drive); | |||
1182 | extern void ide_acpi_get_timing(ide_hwif_t *hwif); | 1195 | extern void ide_acpi_get_timing(ide_hwif_t *hwif); |
1183 | extern void ide_acpi_push_timing(ide_hwif_t *hwif); | 1196 | extern void ide_acpi_push_timing(ide_hwif_t *hwif); |
1184 | extern void ide_acpi_init(ide_hwif_t *hwif); | 1197 | extern void ide_acpi_init(ide_hwif_t *hwif); |
1198 | void ide_acpi_port_init_devices(ide_hwif_t *); | ||
1185 | extern void ide_acpi_set_state(ide_hwif_t *hwif, int on); | 1199 | extern void ide_acpi_set_state(ide_hwif_t *hwif, int on); |
1186 | #else | 1200 | #else |
1187 | static inline int ide_acpi_exec_tfs(ide_drive_t *drive) { return 0; } | 1201 | static inline int ide_acpi_exec_tfs(ide_drive_t *drive) { return 0; } |
1188 | static inline void ide_acpi_get_timing(ide_hwif_t *hwif) { ; } | 1202 | static inline void ide_acpi_get_timing(ide_hwif_t *hwif) { ; } |
1189 | static inline void ide_acpi_push_timing(ide_hwif_t *hwif) { ; } | 1203 | static inline void ide_acpi_push_timing(ide_hwif_t *hwif) { ; } |
1190 | static inline void ide_acpi_init(ide_hwif_t *hwif) { ; } | 1204 | static inline void ide_acpi_init(ide_hwif_t *hwif) { ; } |
1205 | static inline void ide_acpi_port_init_devices(ide_hwif_t *hwif) { ; } | ||
1191 | static inline void ide_acpi_set_state(ide_hwif_t *hwif, int on) {} | 1206 | static inline void ide_acpi_set_state(ide_hwif_t *hwif, int on) {} |
1192 | #endif | 1207 | #endif |
1193 | 1208 | ||
1194 | void ide_remove_port_from_hwgroup(ide_hwif_t *); | 1209 | void ide_remove_port_from_hwgroup(ide_hwif_t *); |
1195 | extern int ide_hwif_request_regions(ide_hwif_t *hwif); | 1210 | extern int ide_hwif_request_regions(ide_hwif_t *hwif); |
1196 | extern void ide_hwif_release_regions(ide_hwif_t* hwif); | 1211 | extern void ide_hwif_release_regions(ide_hwif_t* hwif); |
1197 | extern void ide_unregister (unsigned int index); | 1212 | void ide_unregister(unsigned int, int, int); |
1198 | 1213 | ||
1199 | void ide_register_region(struct gendisk *); | 1214 | void ide_register_region(struct gendisk *); |
1200 | void ide_unregister_region(struct gendisk *); | 1215 | void ide_unregister_region(struct gendisk *); |
1201 | 1216 | ||
1202 | void ide_undecoded_slave(ide_drive_t *); | 1217 | void ide_undecoded_slave(ide_drive_t *); |
1203 | 1218 | ||
1204 | int ide_device_add_all(u8 *idx); | 1219 | int ide_device_add_all(u8 *idx, const struct ide_port_info *); |
1205 | int ide_device_add(u8 idx[4]); | 1220 | int ide_device_add(u8 idx[4], const struct ide_port_info *); |
1206 | 1221 | ||
1207 | static inline void *ide_get_hwifdata (ide_hwif_t * hwif) | 1222 | static inline void *ide_get_hwifdata (ide_hwif_t * hwif) |
1208 | { | 1223 | { |
diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h index 5de6d911cdf7..f577c8f1c66d 100644 --- a/include/linux/ieee80211.h +++ b/include/linux/ieee80211.h | |||
@@ -287,6 +287,12 @@ struct ieee80211_ht_addt_info { | |||
287 | #define IEEE80211_HT_IE_NON_GF_STA_PRSNT 0x0004 | 287 | #define IEEE80211_HT_IE_NON_GF_STA_PRSNT 0x0004 |
288 | #define IEEE80211_HT_IE_NON_HT_STA_PRSNT 0x0010 | 288 | #define IEEE80211_HT_IE_NON_HT_STA_PRSNT 0x0010 |
289 | 289 | ||
290 | /* MIMO Power Save Modes */ | ||
291 | #define WLAN_HT_CAP_MIMO_PS_STATIC 0 | ||
292 | #define WLAN_HT_CAP_MIMO_PS_DYNAMIC 1 | ||
293 | #define WLAN_HT_CAP_MIMO_PS_INVALID 2 | ||
294 | #define WLAN_HT_CAP_MIMO_PS_DISABLED 3 | ||
295 | |||
290 | /* Authentication algorithms */ | 296 | /* Authentication algorithms */ |
291 | #define WLAN_AUTH_OPEN 0 | 297 | #define WLAN_AUTH_OPEN 0 |
292 | #define WLAN_AUTH_SHARED_KEY 1 | 298 | #define WLAN_AUTH_SHARED_KEY 1 |
diff --git a/include/linux/init.h b/include/linux/init.h index 2efbda016741..90cdbbbbe077 100644 --- a/include/linux/init.h +++ b/include/linux/init.h | |||
@@ -124,9 +124,6 @@ | |||
124 | #define __REF .section ".ref.text", "ax" | 124 | #define __REF .section ".ref.text", "ax" |
125 | #define __REFDATA .section ".ref.data", "aw" | 125 | #define __REFDATA .section ".ref.data", "aw" |
126 | #define __REFCONST .section ".ref.rodata", "aw" | 126 | #define __REFCONST .section ".ref.rodata", "aw" |
127 | /* backward compatibility */ | ||
128 | #define __INIT_REFOK .section __REF | ||
129 | #define __INITDATA_REFOK .section __REFDATA | ||
130 | 127 | ||
131 | #ifndef __ASSEMBLY__ | 128 | #ifndef __ASSEMBLY__ |
132 | /* | 129 | /* |
diff --git a/include/linux/lguest_launcher.h b/include/linux/lguest_launcher.h index 697104da91f1..589be3e1f3ac 100644 --- a/include/linux/lguest_launcher.h +++ b/include/linux/lguest_launcher.h | |||
@@ -23,7 +23,12 @@ | |||
23 | struct lguest_device_desc { | 23 | struct lguest_device_desc { |
24 | /* The device type: console, network, disk etc. Type 0 terminates. */ | 24 | /* The device type: console, network, disk etc. Type 0 terminates. */ |
25 | __u8 type; | 25 | __u8 type; |
26 | /* The number of bytes of the config array. */ | 26 | /* The number of virtqueues (first in config array) */ |
27 | __u8 num_vq; | ||
28 | /* The number of bytes of feature bits. Multiply by 2: one for host | ||
29 | * features and one for guest acknowledgements. */ | ||
30 | __u8 feature_len; | ||
31 | /* The number of bytes of the config array after virtqueues. */ | ||
27 | __u8 config_len; | 32 | __u8 config_len; |
28 | /* A status byte, written by the Guest. */ | 33 | /* A status byte, written by the Guest. */ |
29 | __u8 status; | 34 | __u8 status; |
@@ -31,7 +36,7 @@ struct lguest_device_desc { | |||
31 | }; | 36 | }; |
32 | 37 | ||
33 | /*D:135 This is how we expect the device configuration field for a virtqueue | 38 | /*D:135 This is how we expect the device configuration field for a virtqueue |
34 | * (type VIRTIO_CONFIG_F_VIRTQUEUE) to be laid out: */ | 39 | * to be laid out in config space. */ |
35 | struct lguest_vqconfig { | 40 | struct lguest_vqconfig { |
36 | /* The number of entries in the virtio_ring */ | 41 | /* The number of entries in the virtio_ring */ |
37 | __u16 num; | 42 | __u16 num; |
diff --git a/include/linux/llc.h b/include/linux/llc.h index 09f2e6d0e9eb..7733585603f1 100644 --- a/include/linux/llc.h +++ b/include/linux/llc.h | |||
@@ -49,9 +49,9 @@ enum llc_sockopts { | |||
49 | 49 | ||
50 | /* LLC SAP types. */ | 50 | /* LLC SAP types. */ |
51 | #define LLC_SAP_NULL 0x00 /* NULL SAP. */ | 51 | #define LLC_SAP_NULL 0x00 /* NULL SAP. */ |
52 | #define LLC_SAP_LLC 0x02 /* LLC Sublayer Managment. */ | 52 | #define LLC_SAP_LLC 0x02 /* LLC Sublayer Management. */ |
53 | #define LLC_SAP_SNA 0x04 /* SNA Path Control. */ | 53 | #define LLC_SAP_SNA 0x04 /* SNA Path Control. */ |
54 | #define LLC_SAP_PNM 0x0E /* Proway Network Managment. */ | 54 | #define LLC_SAP_PNM 0x0E /* Proway Network Management. */ |
55 | #define LLC_SAP_IP 0x06 /* TCP/IP. */ | 55 | #define LLC_SAP_IP 0x06 /* TCP/IP. */ |
56 | #define LLC_SAP_BSPAN 0x42 /* Bridge Spanning Tree Proto */ | 56 | #define LLC_SAP_BSPAN 0x42 /* Bridge Spanning Tree Proto */ |
57 | #define LLC_SAP_MMS 0x4E /* Manufacturing Message Srv. */ | 57 | #define LLC_SAP_MMS 0x4E /* Manufacturing Message Srv. */ |
diff --git a/include/linux/pci.h b/include/linux/pci.h index 4f96f1d94ac4..cee75c0ff6e7 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h | |||
@@ -128,7 +128,6 @@ struct pci_cap_saved_state { | |||
128 | u32 data[0]; | 128 | u32 data[0]; |
129 | }; | 129 | }; |
130 | 130 | ||
131 | struct pcie_link_state; | ||
132 | /* | 131 | /* |
133 | * The pci_dev structure is used to describe PCI devices. | 132 | * The pci_dev structure is used to describe PCI devices. |
134 | */ | 133 | */ |
@@ -164,10 +163,6 @@ struct pci_dev { | |||
164 | this is D0-D3, D0 being fully functional, | 163 | this is D0-D3, D0 being fully functional, |
165 | and D3 being off. */ | 164 | and D3 being off. */ |
166 | 165 | ||
167 | #ifdef CONFIG_PCIEASPM | ||
168 | struct pcie_link_state *link_state; /* ASPM link state. */ | ||
169 | #endif | ||
170 | |||
171 | pci_channel_state_t error_state; /* current connectivity state */ | 166 | pci_channel_state_t error_state; /* current connectivity state */ |
172 | struct device dev; /* Generic device interface */ | 167 | struct device dev; /* Generic device interface */ |
173 | 168 | ||
diff --git a/include/linux/pci_regs.h b/include/linux/pci_regs.h index c0c1223c9194..c1914a8b94a9 100644 --- a/include/linux/pci_regs.h +++ b/include/linux/pci_regs.h | |||
@@ -395,17 +395,9 @@ | |||
395 | #define PCI_EXP_DEVSTA_AUXPD 0x10 /* AUX Power Detected */ | 395 | #define PCI_EXP_DEVSTA_AUXPD 0x10 /* AUX Power Detected */ |
396 | #define PCI_EXP_DEVSTA_TRPND 0x20 /* Transactions Pending */ | 396 | #define PCI_EXP_DEVSTA_TRPND 0x20 /* Transactions Pending */ |
397 | #define PCI_EXP_LNKCAP 12 /* Link Capabilities */ | 397 | #define PCI_EXP_LNKCAP 12 /* Link Capabilities */ |
398 | #define PCI_EXP_LNKCAP_ASPMS 0xc00 /* ASPM Support */ | ||
399 | #define PCI_EXP_LNKCAP_L0SEL 0x7000 /* L0s Exit Latency */ | ||
400 | #define PCI_EXP_LNKCAP_L1EL 0x38000 /* L1 Exit Latency */ | ||
401 | #define PCI_EXP_LNKCAP_CLKPM 0x40000 /* L1 Clock Power Management */ | ||
402 | #define PCI_EXP_LNKCTL 16 /* Link Control */ | 398 | #define PCI_EXP_LNKCTL 16 /* Link Control */ |
403 | #define PCI_EXP_LNKCTL_RL 0x20 /* Retrain Link */ | ||
404 | #define PCI_EXP_LNKCTL_CCC 0x40 /* Common Clock COnfiguration */ | ||
405 | #define PCI_EXP_LNKCTL_CLKREQ_EN 0x100 /* Enable clkreq */ | 399 | #define PCI_EXP_LNKCTL_CLKREQ_EN 0x100 /* Enable clkreq */ |
406 | #define PCI_EXP_LNKSTA 18 /* Link Status */ | 400 | #define PCI_EXP_LNKSTA 18 /* Link Status */ |
407 | #define PCI_EXP_LNKSTA_LT 0x800 /* Link Training */ | ||
408 | #define PCI_EXP_LNKSTA_SLC 0x1000 /* Slot Clock Configuration */ | ||
409 | #define PCI_EXP_SLTCAP 20 /* Slot Capabilities */ | 401 | #define PCI_EXP_SLTCAP 20 /* Slot Capabilities */ |
410 | #define PCI_EXP_SLTCTL 24 /* Slot Control */ | 402 | #define PCI_EXP_SLTCTL 24 /* Slot Control */ |
411 | #define PCI_EXP_SLTSTA 26 /* Slot Status */ | 403 | #define PCI_EXP_SLTSTA 26 /* Slot Status */ |
diff --git a/include/linux/phy.h b/include/linux/phy.h index 554836edd915..5e43ae751412 100644 --- a/include/linux/phy.h +++ b/include/linux/phy.h | |||
@@ -88,7 +88,7 @@ struct mii_bus { | |||
88 | 88 | ||
89 | /* A lock to ensure that only one thing can read/write | 89 | /* A lock to ensure that only one thing can read/write |
90 | * the MDIO bus at a time */ | 90 | * the MDIO bus at a time */ |
91 | spinlock_t mdio_lock; | 91 | struct mutex mdio_lock; |
92 | 92 | ||
93 | struct device *dev; | 93 | struct device *dev; |
94 | 94 | ||
@@ -284,10 +284,11 @@ struct phy_device { | |||
284 | 284 | ||
285 | /* Interrupt and Polling infrastructure */ | 285 | /* Interrupt and Polling infrastructure */ |
286 | struct work_struct phy_queue; | 286 | struct work_struct phy_queue; |
287 | struct work_struct state_queue; | ||
287 | struct timer_list phy_timer; | 288 | struct timer_list phy_timer; |
288 | atomic_t irq_disable; | 289 | atomic_t irq_disable; |
289 | 290 | ||
290 | spinlock_t lock; | 291 | struct mutex lock; |
291 | 292 | ||
292 | struct net_device *attached_dev; | 293 | struct net_device *attached_dev; |
293 | 294 | ||
diff --git a/include/linux/pm.h b/include/linux/pm.h index b78e0295adf4..eccf59ea2a77 100644 --- a/include/linux/pm.h +++ b/include/linux/pm.h | |||
@@ -95,7 +95,7 @@ struct pm_dev | |||
95 | }; | 95 | }; |
96 | 96 | ||
97 | /* Functions above this comment are list-based old-style power | 97 | /* Functions above this comment are list-based old-style power |
98 | * managment. Please avoid using them. */ | 98 | * management. Please avoid using them. */ |
99 | 99 | ||
100 | /* | 100 | /* |
101 | * Callbacks for platform drivers to implement. | 101 | * Callbacks for platform drivers to implement. |
diff --git a/include/linux/pnp.h b/include/linux/pnp.h index 2a6d62c7d2d1..b9339d8b95bc 100644 --- a/include/linux/pnp.h +++ b/include/linux/pnp.h | |||
@@ -126,7 +126,7 @@ struct pnp_resource_table { | |||
126 | }; | 126 | }; |
127 | 127 | ||
128 | /* | 128 | /* |
129 | * Device Managemnt | 129 | * Device Management |
130 | */ | 130 | */ |
131 | 131 | ||
132 | struct pnp_card { | 132 | struct pnp_card { |
diff --git a/include/linux/radix-tree.h b/include/linux/radix-tree.h index b6116b4445c7..b8ce2b444bb5 100644 --- a/include/linux/radix-tree.h +++ b/include/linux/radix-tree.h | |||
@@ -91,7 +91,7 @@ do { \ | |||
91 | * | 91 | * |
92 | * For API usage, in general, | 92 | * For API usage, in general, |
93 | * - any function _modifying_ the tree or tags (inserting or deleting | 93 | * - any function _modifying_ the tree or tags (inserting or deleting |
94 | * items, setting or clearing tags must exclude other modifications, and | 94 | * items, setting or clearing tags) must exclude other modifications, and |
95 | * exclude any functions reading the tree. | 95 | * exclude any functions reading the tree. |
96 | * - any function _reading_ the tree or tags (looking up items or tags, | 96 | * - any function _reading_ the tree or tags (looking up items or tags, |
97 | * gang lookups) must exclude modifications to the tree, but may occur | 97 | * gang lookups) must exclude modifications to the tree, but may occur |
diff --git a/include/linux/reiserfs_fs_sb.h b/include/linux/reiserfs_fs_sb.h index 10fa0c832018..db5ef9b83c3f 100644 --- a/include/linux/reiserfs_fs_sb.h +++ b/include/linux/reiserfs_fs_sb.h | |||
@@ -185,7 +185,7 @@ struct reiserfs_journal { | |||
185 | unsigned long j_trans_id; | 185 | unsigned long j_trans_id; |
186 | unsigned long j_mount_id; | 186 | unsigned long j_mount_id; |
187 | unsigned long j_start; /* start of current waiting commit (index into j_ap_blocks) */ | 187 | unsigned long j_start; /* start of current waiting commit (index into j_ap_blocks) */ |
188 | unsigned long j_len; /* lenght of current waiting commit */ | 188 | unsigned long j_len; /* length of current waiting commit */ |
189 | unsigned long j_len_alloc; /* number of buffers requested by journal_begin() */ | 189 | unsigned long j_len_alloc; /* number of buffers requested by journal_begin() */ |
190 | atomic_t j_wcount; /* count of writers for current commit */ | 190 | atomic_t j_wcount; /* count of writers for current commit */ |
191 | unsigned long j_bcount; /* batch count. allows turning X transactions into 1 */ | 191 | unsigned long j_bcount; /* batch count. allows turning X transactions into 1 */ |
diff --git a/include/linux/signalfd.h b/include/linux/signalfd.h index 86f9b1ef0e09..ea037f28df91 100644 --- a/include/linux/signalfd.h +++ b/include/linux/signalfd.h | |||
@@ -29,7 +29,7 @@ struct signalfd_siginfo { | |||
29 | 29 | ||
30 | /* | 30 | /* |
31 | * Pad strcture to 128 bytes. Remember to update the | 31 | * Pad strcture to 128 bytes. Remember to update the |
32 | * pad size when you add new memebers. We use a fixed | 32 | * pad size when you add new members. We use a fixed |
33 | * size structure to avoid compatibility problems with | 33 | * size structure to avoid compatibility problems with |
34 | * future versions, and we leave extra space for additional | 34 | * future versions, and we leave extra space for additional |
35 | * members. We use fixed size members because this strcture | 35 | * members. We use fixed size members because this strcture |
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index dfe975a9967e..412672a79e8a 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h | |||
@@ -1810,5 +1810,6 @@ static inline void skb_forward_csum(struct sk_buff *skb) | |||
1810 | skb->ip_summed = CHECKSUM_NONE; | 1810 | skb->ip_summed = CHECKSUM_NONE; |
1811 | } | 1811 | } |
1812 | 1812 | ||
1813 | bool skb_partial_csum_set(struct sk_buff *skb, u16 start, u16 off); | ||
1813 | #endif /* __KERNEL__ */ | 1814 | #endif /* __KERNEL__ */ |
1814 | #endif /* _LINUX_SKBUFF_H */ | 1815 | #endif /* _LINUX_SKBUFF_H */ |
diff --git a/include/linux/slub_def.h b/include/linux/slub_def.h index 40801e754afb..ddb1a706b144 100644 --- a/include/linux/slub_def.h +++ b/include/linux/slub_def.h | |||
@@ -12,11 +12,11 @@ | |||
12 | #include <linux/kobject.h> | 12 | #include <linux/kobject.h> |
13 | 13 | ||
14 | struct kmem_cache_cpu { | 14 | struct kmem_cache_cpu { |
15 | void **freelist; | 15 | void **freelist; /* Pointer to first free per cpu object */ |
16 | struct page *page; | 16 | struct page *page; /* The slab from which we are allocating */ |
17 | int node; | 17 | int node; /* The node of the page (or -1 for debug) */ |
18 | unsigned int offset; | 18 | unsigned int offset; /* Freepointer offset (in word units) */ |
19 | unsigned int objsize; | 19 | unsigned int objsize; /* Size of an object (from kmem_cache) */ |
20 | }; | 20 | }; |
21 | 21 | ||
22 | struct kmem_cache_node { | 22 | struct kmem_cache_node { |
@@ -59,7 +59,10 @@ struct kmem_cache { | |||
59 | #endif | 59 | #endif |
60 | 60 | ||
61 | #ifdef CONFIG_NUMA | 61 | #ifdef CONFIG_NUMA |
62 | int defrag_ratio; | 62 | /* |
63 | * Defragmentation by allocating from a remote node. | ||
64 | */ | ||
65 | int remote_node_defrag_ratio; | ||
63 | struct kmem_cache_node *node[MAX_NUMNODES]; | 66 | struct kmem_cache_node *node[MAX_NUMNODES]; |
64 | #endif | 67 | #endif |
65 | #ifdef CONFIG_SMP | 68 | #ifdef CONFIG_SMP |
diff --git a/include/linux/sm501-regs.h b/include/linux/sm501-regs.h index df7620dd8f31..64236b73c724 100644 --- a/include/linux/sm501-regs.h +++ b/include/linux/sm501-regs.h | |||
@@ -171,7 +171,7 @@ | |||
171 | /* USB slave/gadget data port base */ | 171 | /* USB slave/gadget data port base */ |
172 | #define SM501_USB_GADGET_DATA (0x070000) | 172 | #define SM501_USB_GADGET_DATA (0x070000) |
173 | 173 | ||
174 | /* Display contoller/video engine base */ | 174 | /* Display controller/video engine base */ |
175 | #define SM501_DC (0x080000) | 175 | #define SM501_DC (0x080000) |
176 | 176 | ||
177 | /* common defines for the SM501 address registers */ | 177 | /* common defines for the SM501 address registers */ |
diff --git a/include/linux/spinlock_api_up.h b/include/linux/spinlock_api_up.h index 67faa044c5f5..04e1d3164576 100644 --- a/include/linux/spinlock_api_up.h +++ b/include/linux/spinlock_api_up.h | |||
@@ -21,7 +21,7 @@ | |||
21 | /* | 21 | /* |
22 | * In the UP-nondebug case there's no real locking going on, so the | 22 | * In the UP-nondebug case there's no real locking going on, so the |
23 | * only thing we have to do is to keep the preempt counts and irq | 23 | * only thing we have to do is to keep the preempt counts and irq |
24 | * flags straight, to supress compiler warnings of unused lock | 24 | * flags straight, to suppress compiler warnings of unused lock |
25 | * variables, and to add the proper checker annotations: | 25 | * variables, and to add the proper checker annotations: |
26 | */ | 26 | */ |
27 | #define __LOCK(lock) \ | 27 | #define __LOCK(lock) \ |
diff --git a/include/linux/virtio.h b/include/linux/virtio.h index 14e1379876d3..260d1fcf29a4 100644 --- a/include/linux/virtio.h +++ b/include/linux/virtio.h | |||
@@ -11,15 +11,13 @@ | |||
11 | /** | 11 | /** |
12 | * virtqueue - a queue to register buffers for sending or receiving. | 12 | * virtqueue - a queue to register buffers for sending or receiving. |
13 | * @callback: the function to call when buffers are consumed (can be NULL). | 13 | * @callback: the function to call when buffers are consumed (can be NULL). |
14 | * If this returns false, callbacks are suppressed until vq_ops->restart | ||
15 | * is called. | ||
16 | * @vdev: the virtio device this queue was created for. | 14 | * @vdev: the virtio device this queue was created for. |
17 | * @vq_ops: the operations for this virtqueue (see below). | 15 | * @vq_ops: the operations for this virtqueue (see below). |
18 | * @priv: a pointer for the virtqueue implementation to use. | 16 | * @priv: a pointer for the virtqueue implementation to use. |
19 | */ | 17 | */ |
20 | struct virtqueue | 18 | struct virtqueue |
21 | { | 19 | { |
22 | bool (*callback)(struct virtqueue *vq); | 20 | void (*callback)(struct virtqueue *vq); |
23 | struct virtio_device *vdev; | 21 | struct virtio_device *vdev; |
24 | struct virtqueue_ops *vq_ops; | 22 | struct virtqueue_ops *vq_ops; |
25 | void *priv; | 23 | void *priv; |
@@ -41,13 +39,12 @@ struct virtqueue | |||
41 | * vq: the struct virtqueue we're talking about. | 39 | * vq: the struct virtqueue we're talking about. |
42 | * len: the length written into the buffer | 40 | * len: the length written into the buffer |
43 | * Returns NULL or the "data" token handed to add_buf. | 41 | * Returns NULL or the "data" token handed to add_buf. |
44 | * @restart: restart callbacks after callback returned false. | 42 | * @disable_cb: disable callbacks |
43 | * vq: the struct virtqueue we're talking about. | ||
44 | * @enable_cb: restart callbacks after disable_cb. | ||
45 | * vq: the struct virtqueue we're talking about. | 45 | * vq: the struct virtqueue we're talking about. |
46 | * This returns "false" (and doesn't re-enable) if there are pending | 46 | * This returns "false" (and doesn't re-enable) if there are pending |
47 | * buffers in the queue, to avoid a race. | 47 | * buffers in the queue, to avoid a race. |
48 | * @shutdown: "unadd" all buffers. | ||
49 | * vq: the struct virtqueue we're talking about. | ||
50 | * Remove everything from the queue. | ||
51 | * | 48 | * |
52 | * Locking rules are straightforward: the driver is responsible for | 49 | * Locking rules are straightforward: the driver is responsible for |
53 | * locking. No two operations may be invoked simultaneously. | 50 | * locking. No two operations may be invoked simultaneously. |
@@ -65,9 +62,8 @@ struct virtqueue_ops { | |||
65 | 62 | ||
66 | void *(*get_buf)(struct virtqueue *vq, unsigned int *len); | 63 | void *(*get_buf)(struct virtqueue *vq, unsigned int *len); |
67 | 64 | ||
68 | bool (*restart)(struct virtqueue *vq); | 65 | void (*disable_cb)(struct virtqueue *vq); |
69 | 66 | bool (*enable_cb)(struct virtqueue *vq); | |
70 | void (*shutdown)(struct virtqueue *vq); | ||
71 | }; | 67 | }; |
72 | 68 | ||
73 | /** | 69 | /** |
@@ -97,12 +93,15 @@ void unregister_virtio_device(struct virtio_device *dev); | |||
97 | * @probe: the function to call when a device is found. Returns a token for | 93 | * @probe: the function to call when a device is found. Returns a token for |
98 | * remove, or PTR_ERR(). | 94 | * remove, or PTR_ERR(). |
99 | * @remove: the function when a device is removed. | 95 | * @remove: the function when a device is removed. |
96 | * @config_changed: optional function to call when the device configuration | ||
97 | * changes; may be called in interrupt context. | ||
100 | */ | 98 | */ |
101 | struct virtio_driver { | 99 | struct virtio_driver { |
102 | struct device_driver driver; | 100 | struct device_driver driver; |
103 | const struct virtio_device_id *id_table; | 101 | const struct virtio_device_id *id_table; |
104 | int (*probe)(struct virtio_device *dev); | 102 | int (*probe)(struct virtio_device *dev); |
105 | void (*remove)(struct virtio_device *dev); | 103 | void (*remove)(struct virtio_device *dev); |
104 | void (*config_changed)(struct virtio_device *dev); | ||
106 | }; | 105 | }; |
107 | 106 | ||
108 | int register_virtio_driver(struct virtio_driver *drv); | 107 | int register_virtio_driver(struct virtio_driver *drv); |
diff --git a/include/linux/virtio_balloon.h b/include/linux/virtio_balloon.h new file mode 100644 index 000000000000..979524ee75b7 --- /dev/null +++ b/include/linux/virtio_balloon.h | |||
@@ -0,0 +1,18 @@ | |||
1 | #ifndef _LINUX_VIRTIO_BALLOON_H | ||
2 | #define _LINUX_VIRTIO_BALLOON_H | ||
3 | #include <linux/virtio_config.h> | ||
4 | |||
5 | /* The ID for virtio_balloon */ | ||
6 | #define VIRTIO_ID_BALLOON 5 | ||
7 | |||
8 | /* The feature bitmap for virtio balloon */ | ||
9 | #define VIRTIO_BALLOON_F_MUST_TELL_HOST 0 /* Tell before reclaiming pages */ | ||
10 | |||
11 | struct virtio_balloon_config | ||
12 | { | ||
13 | /* Number of pages host wants Guest to give up. */ | ||
14 | __le32 num_pages; | ||
15 | /* Number of pages we've actually got in balloon. */ | ||
16 | __le32 actual; | ||
17 | }; | ||
18 | #endif /* _LINUX_VIRTIO_BALLOON_H */ | ||
diff --git a/include/linux/virtio_blk.h b/include/linux/virtio_blk.h index 7bd2bce0cfd9..bca0b10d7947 100644 --- a/include/linux/virtio_blk.h +++ b/include/linux/virtio_blk.h | |||
@@ -6,15 +6,19 @@ | |||
6 | #define VIRTIO_ID_BLOCK 2 | 6 | #define VIRTIO_ID_BLOCK 2 |
7 | 7 | ||
8 | /* Feature bits */ | 8 | /* Feature bits */ |
9 | #define VIRTIO_CONFIG_BLK_F 0x40 | 9 | #define VIRTIO_BLK_F_BARRIER 0 /* Does host support barriers? */ |
10 | #define VIRTIO_BLK_F_BARRIER 1 /* Does host support barriers? */ | 10 | #define VIRTIO_BLK_F_SIZE_MAX 1 /* Indicates maximum segment size */ |
11 | #define VIRTIO_BLK_F_SEG_MAX 2 /* Indicates maximum # of segments */ | ||
11 | 12 | ||
12 | /* The capacity (in 512-byte sectors). */ | 13 | struct virtio_blk_config |
13 | #define VIRTIO_CONFIG_BLK_F_CAPACITY 0x41 | 14 | { |
14 | /* The maximum segment size. */ | 15 | /* The capacity (in 512-byte sectors). */ |
15 | #define VIRTIO_CONFIG_BLK_F_SIZE_MAX 0x42 | 16 | __le64 capacity; |
16 | /* The maximum number of segments. */ | 17 | /* The maximum segment size (if VIRTIO_BLK_F_SIZE_MAX) */ |
17 | #define VIRTIO_CONFIG_BLK_F_SEG_MAX 0x43 | 18 | __le32 size_max; |
19 | /* The maximum number of segments (if VIRTIO_BLK_F_SEG_MAX) */ | ||
20 | __le32 seg_max; | ||
21 | } __attribute__((packed)); | ||
18 | 22 | ||
19 | /* These two define direction. */ | 23 | /* These two define direction. */ |
20 | #define VIRTIO_BLK_T_IN 0 | 24 | #define VIRTIO_BLK_T_IN 0 |
@@ -35,8 +39,6 @@ struct virtio_blk_outhdr | |||
35 | __u32 ioprio; | 39 | __u32 ioprio; |
36 | /* Sector (ie. 512 byte offset) */ | 40 | /* Sector (ie. 512 byte offset) */ |
37 | __u64 sector; | 41 | __u64 sector; |
38 | /* Where to put reply. */ | ||
39 | __u64 id; | ||
40 | }; | 42 | }; |
41 | 43 | ||
42 | #define VIRTIO_BLK_S_OK 0 | 44 | #define VIRTIO_BLK_S_OK 0 |
diff --git a/include/linux/virtio_config.h b/include/linux/virtio_config.h index bcc01888df78..d581b2914b34 100644 --- a/include/linux/virtio_config.h +++ b/include/linux/virtio_config.h | |||
@@ -5,7 +5,7 @@ | |||
5 | * store and access that space differently. */ | 5 | * store and access that space differently. */ |
6 | #include <linux/types.h> | 6 | #include <linux/types.h> |
7 | 7 | ||
8 | /* Status byte for guest to report progress, and synchronize config. */ | 8 | /* Status byte for guest to report progress, and synchronize features. */ |
9 | /* We have seen device and processed generic fields (VIRTIO_CONFIG_F_VIRTIO) */ | 9 | /* We have seen device and processed generic fields (VIRTIO_CONFIG_F_VIRTIO) */ |
10 | #define VIRTIO_CONFIG_S_ACKNOWLEDGE 1 | 10 | #define VIRTIO_CONFIG_S_ACKNOWLEDGE 1 |
11 | /* We have found a driver for the device. */ | 11 | /* We have found a driver for the device. */ |
@@ -15,34 +15,27 @@ | |||
15 | /* We've given up on this device. */ | 15 | /* We've given up on this device. */ |
16 | #define VIRTIO_CONFIG_S_FAILED 0x80 | 16 | #define VIRTIO_CONFIG_S_FAILED 0x80 |
17 | 17 | ||
18 | /* Feature byte (actually 7 bits availabe): */ | ||
19 | /* Requirements/features of the virtio implementation. */ | ||
20 | #define VIRTIO_CONFIG_F_VIRTIO 1 | ||
21 | /* Requirements/features of the virtqueue (may have more than one). */ | ||
22 | #define VIRTIO_CONFIG_F_VIRTQUEUE 2 | ||
23 | |||
24 | #ifdef __KERNEL__ | 18 | #ifdef __KERNEL__ |
25 | struct virtio_device; | 19 | struct virtio_device; |
26 | 20 | ||
27 | /** | 21 | /** |
28 | * virtio_config_ops - operations for configuring a virtio device | 22 | * virtio_config_ops - operations for configuring a virtio device |
29 | * @find: search for the next configuration field of the given type. | 23 | * @feature: search for a feature in this config |
30 | * vdev: the virtio_device | 24 | * vdev: the virtio_device |
31 | * type: the feature type | 25 | * bit: the feature bit |
32 | * len: the (returned) length of the field if found. | 26 | * Returns true if the feature is supported. Acknowledges the feature |
33 | * Returns a token if found, or NULL. Never returnes the same field twice | 27 | * so the host can see it. |
34 | * (ie. it's used up). | 28 | * @get: read the value of a configuration field |
35 | * @get: read the value of a configuration field after find(). | ||
36 | * vdev: the virtio_device | 29 | * vdev: the virtio_device |
37 | * token: the token returned from find(). | 30 | * offset: the offset of the configuration field |
38 | * buf: the buffer to write the field value into. | 31 | * buf: the buffer to write the field value into. |
39 | * len: the length of the buffer (given by find()). | 32 | * len: the length of the buffer |
40 | * Note that contents are conventionally little-endian. | 33 | * Note that contents are conventionally little-endian. |
41 | * @set: write the value of a configuration field after find(). | 34 | * @set: write the value of a configuration field |
42 | * vdev: the virtio_device | 35 | * vdev: the virtio_device |
43 | * token: the token returned from find(). | 36 | * offset: the offset of the configuration field |
44 | * buf: the buffer to read the field value from. | 37 | * buf: the buffer to read the field value from. |
45 | * len: the length of the buffer (given by find()). | 38 | * len: the length of the buffer |
46 | * Note that contents are conventionally little-endian. | 39 | * Note that contents are conventionally little-endian. |
47 | * @get_status: read the status byte | 40 | * @get_status: read the status byte |
48 | * vdev: the virtio_device | 41 | * vdev: the virtio_device |
@@ -50,62 +43,67 @@ struct virtio_device; | |||
50 | * @set_status: write the status byte | 43 | * @set_status: write the status byte |
51 | * vdev: the virtio_device | 44 | * vdev: the virtio_device |
52 | * status: the new status byte | 45 | * status: the new status byte |
53 | * @find_vq: find the first VIRTIO_CONFIG_F_VIRTQUEUE and create a virtqueue. | 46 | * @reset: reset the device |
47 | * vdev: the virtio device | ||
48 | * After this, status and feature negotiation must be done again | ||
49 | * @find_vq: find a virtqueue and instantiate it. | ||
54 | * vdev: the virtio_device | 50 | * vdev: the virtio_device |
51 | * index: the 0-based virtqueue number in case there's more than one. | ||
55 | * callback: the virqtueue callback | 52 | * callback: the virqtueue callback |
56 | * Returns the new virtqueue or ERR_PTR(). | 53 | * Returns the new virtqueue or ERR_PTR() (eg. -ENOENT). |
57 | * @del_vq: free a virtqueue found by find_vq(). | 54 | * @del_vq: free a virtqueue found by find_vq(). |
58 | */ | 55 | */ |
59 | struct virtio_config_ops | 56 | struct virtio_config_ops |
60 | { | 57 | { |
61 | void *(*find)(struct virtio_device *vdev, u8 type, unsigned *len); | 58 | bool (*feature)(struct virtio_device *vdev, unsigned bit); |
62 | void (*get)(struct virtio_device *vdev, void *token, | 59 | void (*get)(struct virtio_device *vdev, unsigned offset, |
63 | void *buf, unsigned len); | 60 | void *buf, unsigned len); |
64 | void (*set)(struct virtio_device *vdev, void *token, | 61 | void (*set)(struct virtio_device *vdev, unsigned offset, |
65 | const void *buf, unsigned len); | 62 | const void *buf, unsigned len); |
66 | u8 (*get_status)(struct virtio_device *vdev); | 63 | u8 (*get_status)(struct virtio_device *vdev); |
67 | void (*set_status)(struct virtio_device *vdev, u8 status); | 64 | void (*set_status)(struct virtio_device *vdev, u8 status); |
65 | void (*reset)(struct virtio_device *vdev); | ||
68 | struct virtqueue *(*find_vq)(struct virtio_device *vdev, | 66 | struct virtqueue *(*find_vq)(struct virtio_device *vdev, |
69 | bool (*callback)(struct virtqueue *)); | 67 | unsigned index, |
68 | void (*callback)(struct virtqueue *)); | ||
70 | void (*del_vq)(struct virtqueue *vq); | 69 | void (*del_vq)(struct virtqueue *vq); |
71 | }; | 70 | }; |
72 | 71 | ||
73 | /** | 72 | /** |
74 | * virtio_config_val - get a single virtio config and mark it used. | 73 | * virtio_config_val - look for a feature and get a single virtio config. |
75 | * @config: the virtio config space | 74 | * @vdev: the virtio device |
76 | * @type: the type to search for. | 75 | * @fbit: the feature bit |
76 | * @offset: the type to search for. | ||
77 | * @val: a pointer to the value to fill in. | 77 | * @val: a pointer to the value to fill in. |
78 | * | 78 | * |
79 | * Once used, the config type is marked with VIRTIO_CONFIG_F_USED so it can't | 79 | * The return value is -ENOENT if the feature doesn't exist. Otherwise |
80 | * be found again. This version does endian conversion. */ | 80 | * the value is endian-corrected and returned in v. */ |
81 | #define virtio_config_val(vdev, type, v) ({ \ | 81 | #define virtio_config_val(vdev, fbit, offset, v) ({ \ |
82 | int _err = __virtio_config_val((vdev),(type),(v),sizeof(*(v))); \ | 82 | int _err; \ |
83 | \ | 83 | if ((vdev)->config->feature((vdev), (fbit))) { \ |
84 | BUILD_BUG_ON(sizeof(*(v)) != 1 && sizeof(*(v)) != 2 \ | 84 | __virtio_config_val((vdev), (offset), (v)); \ |
85 | && sizeof(*(v)) != 4 && sizeof(*(v)) != 8); \ | 85 | _err = 0; \ |
86 | if (!_err) { \ | 86 | } else \ |
87 | switch (sizeof(*(v))) { \ | 87 | _err = -ENOENT; \ |
88 | case 2: le16_to_cpus((__u16 *) v); break; \ | ||
89 | case 4: le32_to_cpus((__u32 *) v); break; \ | ||
90 | case 8: le64_to_cpus((__u64 *) v); break; \ | ||
91 | } \ | ||
92 | } \ | ||
93 | _err; \ | 88 | _err; \ |
94 | }) | 89 | }) |
95 | 90 | ||
96 | int __virtio_config_val(struct virtio_device *dev, | ||
97 | u8 type, void *val, size_t size); | ||
98 | |||
99 | /** | 91 | /** |
100 | * virtio_use_bit - helper to use a feature bit in a bitfield value. | 92 | * __virtio_config_val - get a single virtio config without feature check. |
101 | * @dev: the virtio device | 93 | * @vdev: the virtio device |
102 | * @token: the token as returned from vdev->config->find(). | 94 | * @offset: the type to search for. |
103 | * @len: the length of the field. | 95 | * @val: a pointer to the value to fill in. |
104 | * @bitnum: the bit to test. | ||
105 | * | 96 | * |
106 | * If handed a NULL token, it returns false, otherwise returns bit status. | 97 | * The value is endian-corrected and returned in v. */ |
107 | * If it's one, it sets the mirroring acknowledgement bit. */ | 98 | #define __virtio_config_val(vdev, offset, v) do { \ |
108 | int virtio_use_bit(struct virtio_device *vdev, | 99 | BUILD_BUG_ON(sizeof(*(v)) != 1 && sizeof(*(v)) != 2 \ |
109 | void *token, unsigned int len, unsigned int bitnum); | 100 | && sizeof(*(v)) != 4 && sizeof(*(v)) != 8); \ |
101 | (vdev)->config->get((vdev), (offset), (v), sizeof(*(v))); \ | ||
102 | switch (sizeof(*(v))) { \ | ||
103 | case 2: le16_to_cpus((__u16 *) v); break; \ | ||
104 | case 4: le32_to_cpus((__u32 *) v); break; \ | ||
105 | case 8: le64_to_cpus((__u64 *) v); break; \ | ||
106 | } \ | ||
107 | } while(0) | ||
110 | #endif /* __KERNEL__ */ | 108 | #endif /* __KERNEL__ */ |
111 | #endif /* _LINUX_VIRTIO_CONFIG_H */ | 109 | #endif /* _LINUX_VIRTIO_CONFIG_H */ |
diff --git a/include/linux/virtio_net.h b/include/linux/virtio_net.h index ae469ae55d36..1ea3351df609 100644 --- a/include/linux/virtio_net.h +++ b/include/linux/virtio_net.h | |||
@@ -5,32 +5,32 @@ | |||
5 | /* The ID for virtio_net */ | 5 | /* The ID for virtio_net */ |
6 | #define VIRTIO_ID_NET 1 | 6 | #define VIRTIO_ID_NET 1 |
7 | 7 | ||
8 | /* The bitmap of config for virtio net */ | 8 | /* The feature bitmap for virtio net */ |
9 | #define VIRTIO_CONFIG_NET_F 0x40 | 9 | #define VIRTIO_NET_F_CSUM 0 /* Can handle pkts w/ partial csum */ |
10 | #define VIRTIO_NET_F_NO_CSUM 0 | 10 | #define VIRTIO_NET_F_MAC 5 /* Host has given MAC address. */ |
11 | #define VIRTIO_NET_F_TSO4 1 | 11 | #define VIRTIO_NET_F_GSO 6 /* Can handle pkts w/ any GSO type */ |
12 | #define VIRTIO_NET_F_UFO 2 | ||
13 | #define VIRTIO_NET_F_TSO4_ECN 3 | ||
14 | #define VIRTIO_NET_F_TSO6 4 | ||
15 | 12 | ||
16 | /* The config defining mac address. */ | 13 | struct virtio_net_config |
17 | #define VIRTIO_CONFIG_NET_MAC_F 0x41 | 14 | { |
15 | /* The config defining mac address (if VIRTIO_NET_F_MAC) */ | ||
16 | __u8 mac[6]; | ||
17 | } __attribute__((packed)); | ||
18 | 18 | ||
19 | /* This is the first element of the scatter-gather list. If you don't | 19 | /* This is the first element of the scatter-gather list. If you don't |
20 | * specify GSO or CSUM features, you can simply ignore the header. */ | 20 | * specify GSO or CSUM features, you can simply ignore the header. */ |
21 | struct virtio_net_hdr | 21 | struct virtio_net_hdr |
22 | { | 22 | { |
23 | #define VIRTIO_NET_HDR_F_NEEDS_CSUM 1 // Use csum_start, csum_offset | 23 | #define VIRTIO_NET_HDR_F_NEEDS_CSUM 1 // Use csum_start, csum_offset |
24 | __u8 flags; | 24 | __u8 flags; |
25 | #define VIRTIO_NET_HDR_GSO_NONE 0 // Not a GSO frame | 25 | #define VIRTIO_NET_HDR_GSO_NONE 0 // Not a GSO frame |
26 | #define VIRTIO_NET_HDR_GSO_TCPV4 1 // GSO frame, IPv4 TCP (TSO) | 26 | #define VIRTIO_NET_HDR_GSO_TCPV4 1 // GSO frame, IPv4 TCP (TSO) |
27 | /* FIXME: Do we need this? If they said they can handle ECN, do they care? */ | ||
28 | #define VIRTIO_NET_HDR_GSO_TCPV4_ECN 2 // GSO frame, IPv4 TCP w/ ECN | ||
29 | #define VIRTIO_NET_HDR_GSO_UDP 3 // GSO frame, IPv4 UDP (UFO) | 27 | #define VIRTIO_NET_HDR_GSO_UDP 3 // GSO frame, IPv4 UDP (UFO) |
30 | #define VIRTIO_NET_HDR_GSO_TCPV6 4 // GSO frame, IPv6 TCP | 28 | #define VIRTIO_NET_HDR_GSO_TCPV6 4 // GSO frame, IPv6 TCP |
31 | __u8 gso_type; | 29 | #define VIRTIO_NET_HDR_GSO_ECN 0x80 // TCP has ECN set |
32 | __u16 gso_size; | 30 | __u8 gso_type; |
33 | __u16 csum_start; | 31 | __u16 hdr_len; /* Ethernet + IP + tcp/udp hdrs */ |
34 | __u16 csum_offset; | 32 | __u16 gso_size; /* Bytes to append to gso_hdr_len per frame */ |
33 | __u16 csum_start; /* Position to start checksumming from */ | ||
34 | __u16 csum_offset; /* Offset after that to place checksum */ | ||
35 | }; | 35 | }; |
36 | #endif /* _LINUX_VIRTIO_NET_H */ | 36 | #endif /* _LINUX_VIRTIO_NET_H */ |
diff --git a/include/linux/virtio_pci.h b/include/linux/virtio_pci.h new file mode 100644 index 000000000000..b3151659cf49 --- /dev/null +++ b/include/linux/virtio_pci.h | |||
@@ -0,0 +1,57 @@ | |||
1 | /* | ||
2 | * Virtio PCI driver | ||
3 | * | ||
4 | * This module allows virtio devices to be used over a virtual PCI device. | ||
5 | * This can be used with QEMU based VMMs like KVM or Xen. | ||
6 | * | ||
7 | * Copyright IBM Corp. 2007 | ||
8 | * | ||
9 | * Authors: | ||
10 | * Anthony Liguori <aliguori@us.ibm.com> | ||
11 | * | ||
12 | * This work is licensed under the terms of the GNU GPL, version 2 or later. | ||
13 | * See the COPYING file in the top-level directory. | ||
14 | * | ||
15 | */ | ||
16 | |||
17 | #ifndef _LINUX_VIRTIO_PCI_H | ||
18 | #define _LINUX_VIRTIO_PCI_H | ||
19 | |||
20 | #include <linux/virtio_config.h> | ||
21 | |||
22 | /* A 32-bit r/o bitmask of the features supported by the host */ | ||
23 | #define VIRTIO_PCI_HOST_FEATURES 0 | ||
24 | |||
25 | /* A 32-bit r/w bitmask of features activated by the guest */ | ||
26 | #define VIRTIO_PCI_GUEST_FEATURES 4 | ||
27 | |||
28 | /* A 32-bit r/w PFN for the currently selected queue */ | ||
29 | #define VIRTIO_PCI_QUEUE_PFN 8 | ||
30 | |||
31 | /* A 16-bit r/o queue size for the currently selected queue */ | ||
32 | #define VIRTIO_PCI_QUEUE_NUM 12 | ||
33 | |||
34 | /* A 16-bit r/w queue selector */ | ||
35 | #define VIRTIO_PCI_QUEUE_SEL 14 | ||
36 | |||
37 | /* A 16-bit r/w queue notifier */ | ||
38 | #define VIRTIO_PCI_QUEUE_NOTIFY 16 | ||
39 | |||
40 | /* An 8-bit device status register. */ | ||
41 | #define VIRTIO_PCI_STATUS 18 | ||
42 | |||
43 | /* An 8-bit r/o interrupt status register. Reading the value will return the | ||
44 | * current contents of the ISR and will also clear it. This is effectively | ||
45 | * a read-and-acknowledge. */ | ||
46 | #define VIRTIO_PCI_ISR 19 | ||
47 | |||
48 | /* The bit of the ISR which indicates a device configuration change. */ | ||
49 | #define VIRTIO_PCI_ISR_CONFIG 0x2 | ||
50 | |||
51 | /* The remaining space is defined by each driver as the per-driver | ||
52 | * configuration space */ | ||
53 | #define VIRTIO_PCI_CONFIG 20 | ||
54 | |||
55 | /* Virtio ABI version, this must match exactly */ | ||
56 | #define VIRTIO_PCI_ABI_VERSION 0 | ||
57 | #endif | ||
diff --git a/include/linux/virtio_ring.h b/include/linux/virtio_ring.h index 1a4ed49f6478..abe481ed990e 100644 --- a/include/linux/virtio_ring.h +++ b/include/linux/virtio_ring.h | |||
@@ -15,9 +15,13 @@ | |||
15 | /* This marks a buffer as write-only (otherwise read-only). */ | 15 | /* This marks a buffer as write-only (otherwise read-only). */ |
16 | #define VRING_DESC_F_WRITE 2 | 16 | #define VRING_DESC_F_WRITE 2 |
17 | 17 | ||
18 | /* This means don't notify other side when buffer added. */ | 18 | /* The Host uses this in used->flags to advise the Guest: don't kick me when |
19 | * you add a buffer. It's unreliable, so it's simply an optimization. Guest | ||
20 | * will still kick if it's out of buffers. */ | ||
19 | #define VRING_USED_F_NO_NOTIFY 1 | 21 | #define VRING_USED_F_NO_NOTIFY 1 |
20 | /* This means don't interrupt guest when buffer consumed. */ | 22 | /* The Guest uses this in avail->flags to advise the Host: don't interrupt me |
23 | * when you consume a buffer. It's unreliable, so it's simply an | ||
24 | * optimization. */ | ||
21 | #define VRING_AVAIL_F_NO_INTERRUPT 1 | 25 | #define VRING_AVAIL_F_NO_INTERRUPT 1 |
22 | 26 | ||
23 | /* Virtio ring descriptors: 16 bytes. These can chain together via "next". */ | 27 | /* Virtio ring descriptors: 16 bytes. These can chain together via "next". */ |
@@ -89,7 +93,7 @@ struct vring { | |||
89 | * }; | 93 | * }; |
90 | */ | 94 | */ |
91 | static inline void vring_init(struct vring *vr, unsigned int num, void *p, | 95 | static inline void vring_init(struct vring *vr, unsigned int num, void *p, |
92 | unsigned int pagesize) | 96 | unsigned long pagesize) |
93 | { | 97 | { |
94 | vr->num = num; | 98 | vr->num = num; |
95 | vr->desc = p; | 99 | vr->desc = p; |
@@ -98,7 +102,7 @@ static inline void vring_init(struct vring *vr, unsigned int num, void *p, | |||
98 | & ~(pagesize - 1)); | 102 | & ~(pagesize - 1)); |
99 | } | 103 | } |
100 | 104 | ||
101 | static inline unsigned vring_size(unsigned int num, unsigned int pagesize) | 105 | static inline unsigned vring_size(unsigned int num, unsigned long pagesize) |
102 | { | 106 | { |
103 | return ((sizeof(struct vring_desc) * num + sizeof(__u16) * (2 + num) | 107 | return ((sizeof(struct vring_desc) * num + sizeof(__u16) * (2 + num) |
104 | + pagesize - 1) & ~(pagesize - 1)) | 108 | + pagesize - 1) & ~(pagesize - 1)) |
@@ -114,7 +118,7 @@ struct virtqueue *vring_new_virtqueue(unsigned int num, | |||
114 | struct virtio_device *vdev, | 118 | struct virtio_device *vdev, |
115 | void *pages, | 119 | void *pages, |
116 | void (*notify)(struct virtqueue *vq), | 120 | void (*notify)(struct virtqueue *vq), |
117 | bool (*callback)(struct virtqueue *vq)); | 121 | void (*callback)(struct virtqueue *vq)); |
118 | void vring_del_virtqueue(struct virtqueue *vq); | 122 | void vring_del_virtqueue(struct virtqueue *vq); |
119 | 123 | ||
120 | irqreturn_t vring_interrupt(int irq, void *_vq); | 124 | irqreturn_t vring_interrupt(int irq, void *_vq); |
diff --git a/include/linux/wireless.h b/include/linux/wireless.h index 74e84caa1e20..3160dfed73ca 100644 --- a/include/linux/wireless.h +++ b/include/linux/wireless.h | |||
@@ -1079,7 +1079,7 @@ struct iw_priv_args | |||
1079 | */ | 1079 | */ |
1080 | struct iw_event | 1080 | struct iw_event |
1081 | { | 1081 | { |
1082 | __u16 len; /* Real lenght of this stuff */ | 1082 | __u16 len; /* Real length of this stuff */ |
1083 | __u16 cmd; /* Wireless IOCTL */ | 1083 | __u16 cmd; /* Wireless IOCTL */ |
1084 | union iwreq_data u; /* IOCTL fixed payload */ | 1084 | union iwreq_data u; /* IOCTL fixed payload */ |
1085 | }; | 1085 | }; |
diff --git a/include/media/rds.h b/include/media/rds.h index 951c1ae0be74..a89426667618 100644 --- a/include/media/rds.h +++ b/include/media/rds.h | |||
@@ -4,7 +4,7 @@ | |||
4 | saa6588.c and every driver (e.g. bttv-driver.c) that wants | 4 | saa6588.c and every driver (e.g. bttv-driver.c) that wants |
5 | to use the saa6588 module. | 5 | to use the saa6588 module. |
6 | 6 | ||
7 | Instead of having a seperate rds.h, I'd prefer to include | 7 | Instead of having a separate rds.h, I'd prefer to include |
8 | this stuff in one of the already existing files like tuner.h | 8 | this stuff in one of the already existing files like tuner.h |
9 | 9 | ||
10 | (c) 2005 by Hans J. Koch | 10 | (c) 2005 by Hans J. Koch |
diff --git a/include/net/if_inet6.h b/include/net/if_inet6.h index b24508abb850..b2cfc4927257 100644 --- a/include/net/if_inet6.h +++ b/include/net/if_inet6.h | |||
@@ -112,13 +112,13 @@ struct ifmcaddr6 | |||
112 | struct ip6_sf_list *mca_sources; | 112 | struct ip6_sf_list *mca_sources; |
113 | struct ip6_sf_list *mca_tomb; | 113 | struct ip6_sf_list *mca_tomb; |
114 | unsigned int mca_sfmode; | 114 | unsigned int mca_sfmode; |
115 | unsigned char mca_crcount; | ||
115 | unsigned long mca_sfcount[2]; | 116 | unsigned long mca_sfcount[2]; |
116 | struct timer_list mca_timer; | 117 | struct timer_list mca_timer; |
117 | unsigned mca_flags; | 118 | unsigned mca_flags; |
118 | int mca_users; | 119 | int mca_users; |
119 | atomic_t mca_refcnt; | 120 | atomic_t mca_refcnt; |
120 | spinlock_t mca_lock; | 121 | spinlock_t mca_lock; |
121 | unsigned char mca_crcount; | ||
122 | unsigned long mca_cstamp; | 122 | unsigned long mca_cstamp; |
123 | unsigned long mca_tstamp; | 123 | unsigned long mca_tstamp; |
124 | }; | 124 | }; |
@@ -166,11 +166,11 @@ struct inet6_dev | |||
166 | struct ifmcaddr6 *mc_list; | 166 | struct ifmcaddr6 *mc_list; |
167 | struct ifmcaddr6 *mc_tomb; | 167 | struct ifmcaddr6 *mc_tomb; |
168 | rwlock_t mc_lock; | 168 | rwlock_t mc_lock; |
169 | unsigned long mc_v1_seen; | ||
170 | unsigned long mc_maxdelay; | ||
171 | unsigned char mc_qrv; | 169 | unsigned char mc_qrv; |
172 | unsigned char mc_gq_running; | 170 | unsigned char mc_gq_running; |
173 | unsigned char mc_ifc_count; | 171 | unsigned char mc_ifc_count; |
172 | unsigned long mc_v1_seen; | ||
173 | unsigned long mc_maxdelay; | ||
174 | struct timer_list mc_gq_timer; /* general query timer */ | 174 | struct timer_list mc_gq_timer; /* general query timer */ |
175 | struct timer_list mc_ifc_timer; /* interface change timer */ | 175 | struct timer_list mc_ifc_timer; /* interface change timer */ |
176 | 176 | ||
diff --git a/include/net/inet6_hashtables.h b/include/net/inet6_hashtables.h index fdff630708ce..62a5b691858e 100644 --- a/include/net/inet6_hashtables.h +++ b/include/net/inet6_hashtables.h | |||
@@ -49,7 +49,7 @@ static inline int inet6_sk_ehashfn(const struct sock *sk) | |||
49 | return inet6_ehashfn(laddr, lport, faddr, fport); | 49 | return inet6_ehashfn(laddr, lport, faddr, fport); |
50 | } | 50 | } |
51 | 51 | ||
52 | extern void __inet6_hash(struct inet_hashinfo *hashinfo, struct sock *sk); | 52 | extern void __inet6_hash(struct sock *sk); |
53 | 53 | ||
54 | /* | 54 | /* |
55 | * Sockets in TCP_CLOSE state are _always_ taken out of the hash, so | 55 | * Sockets in TCP_CLOSE state are _always_ taken out of the hash, so |
diff --git a/include/net/inet_connection_sock.h b/include/net/inet_connection_sock.h index 133cf30d2d79..f00f0573627b 100644 --- a/include/net/inet_connection_sock.h +++ b/include/net/inet_connection_sock.h | |||
@@ -29,7 +29,6 @@ | |||
29 | #undef INET_CSK_CLEAR_TIMERS | 29 | #undef INET_CSK_CLEAR_TIMERS |
30 | 30 | ||
31 | struct inet_bind_bucket; | 31 | struct inet_bind_bucket; |
32 | struct inet_hashinfo; | ||
33 | struct tcp_congestion_ops; | 32 | struct tcp_congestion_ops; |
34 | 33 | ||
35 | /* | 34 | /* |
@@ -59,6 +58,8 @@ struct inet_connection_sock_af_ops { | |||
59 | int level, int optname, | 58 | int level, int optname, |
60 | char __user *optval, int __user *optlen); | 59 | char __user *optval, int __user *optlen); |
61 | void (*addr2sockaddr)(struct sock *sk, struct sockaddr *); | 60 | void (*addr2sockaddr)(struct sock *sk, struct sockaddr *); |
61 | int (*bind_conflict)(const struct sock *sk, | ||
62 | const struct inet_bind_bucket *tb); | ||
62 | }; | 63 | }; |
63 | 64 | ||
64 | /** inet_connection_sock - INET connection oriented sock | 65 | /** inet_connection_sock - INET connection oriented sock |
@@ -244,10 +245,7 @@ extern struct request_sock *inet_csk_search_req(const struct sock *sk, | |||
244 | const __be32 laddr); | 245 | const __be32 laddr); |
245 | extern int inet_csk_bind_conflict(const struct sock *sk, | 246 | extern int inet_csk_bind_conflict(const struct sock *sk, |
246 | const struct inet_bind_bucket *tb); | 247 | const struct inet_bind_bucket *tb); |
247 | extern int inet_csk_get_port(struct inet_hashinfo *hashinfo, | 248 | extern int inet_csk_get_port(struct sock *sk, unsigned short snum); |
248 | struct sock *sk, unsigned short snum, | ||
249 | int (*bind_conflict)(const struct sock *sk, | ||
250 | const struct inet_bind_bucket *tb)); | ||
251 | 249 | ||
252 | extern struct dst_entry* inet_csk_route_req(struct sock *sk, | 250 | extern struct dst_entry* inet_csk_route_req(struct sock *sk, |
253 | const struct request_sock *req); | 251 | const struct request_sock *req); |
diff --git a/include/net/inet_hashtables.h b/include/net/inet_hashtables.h index c23c4ed30724..48ac620cb846 100644 --- a/include/net/inet_hashtables.h +++ b/include/net/inet_hashtables.h | |||
@@ -221,9 +221,9 @@ static inline int inet_sk_listen_hashfn(const struct sock *sk) | |||
221 | } | 221 | } |
222 | 222 | ||
223 | /* Caller must disable local BH processing. */ | 223 | /* Caller must disable local BH processing. */ |
224 | static inline void __inet_inherit_port(struct inet_hashinfo *table, | 224 | static inline void __inet_inherit_port(struct sock *sk, struct sock *child) |
225 | struct sock *sk, struct sock *child) | ||
226 | { | 225 | { |
226 | struct inet_hashinfo *table = sk->sk_prot->hashinfo; | ||
227 | const int bhash = inet_bhashfn(inet_sk(child)->num, table->bhash_size); | 227 | const int bhash = inet_bhashfn(inet_sk(child)->num, table->bhash_size); |
228 | struct inet_bind_hashbucket *head = &table->bhash[bhash]; | 228 | struct inet_bind_hashbucket *head = &table->bhash[bhash]; |
229 | struct inet_bind_bucket *tb; | 229 | struct inet_bind_bucket *tb; |
@@ -235,15 +235,14 @@ static inline void __inet_inherit_port(struct inet_hashinfo *table, | |||
235 | spin_unlock(&head->lock); | 235 | spin_unlock(&head->lock); |
236 | } | 236 | } |
237 | 237 | ||
238 | static inline void inet_inherit_port(struct inet_hashinfo *table, | 238 | static inline void inet_inherit_port(struct sock *sk, struct sock *child) |
239 | struct sock *sk, struct sock *child) | ||
240 | { | 239 | { |
241 | local_bh_disable(); | 240 | local_bh_disable(); |
242 | __inet_inherit_port(table, sk, child); | 241 | __inet_inherit_port(sk, child); |
243 | local_bh_enable(); | 242 | local_bh_enable(); |
244 | } | 243 | } |
245 | 244 | ||
246 | extern void inet_put_port(struct inet_hashinfo *table, struct sock *sk); | 245 | extern void inet_put_port(struct sock *sk); |
247 | 246 | ||
248 | extern void inet_listen_wlock(struct inet_hashinfo *hashinfo); | 247 | extern void inet_listen_wlock(struct inet_hashinfo *hashinfo); |
249 | 248 | ||
@@ -266,41 +265,9 @@ static inline void inet_listen_unlock(struct inet_hashinfo *hashinfo) | |||
266 | wake_up(&hashinfo->lhash_wait); | 265 | wake_up(&hashinfo->lhash_wait); |
267 | } | 266 | } |
268 | 267 | ||
269 | extern void __inet_hash(struct inet_hashinfo *hashinfo, struct sock *sk); | 268 | extern void __inet_hash_nolisten(struct sock *sk); |
270 | extern void __inet_hash_nolisten(struct inet_hashinfo *hinfo, struct sock *sk); | 269 | extern void inet_hash(struct sock *sk); |
271 | 270 | extern void inet_unhash(struct sock *sk); | |
272 | static inline void inet_hash(struct inet_hashinfo *hashinfo, struct sock *sk) | ||
273 | { | ||
274 | if (sk->sk_state != TCP_CLOSE) { | ||
275 | local_bh_disable(); | ||
276 | __inet_hash(hashinfo, sk); | ||
277 | local_bh_enable(); | ||
278 | } | ||
279 | } | ||
280 | |||
281 | static inline void inet_unhash(struct inet_hashinfo *hashinfo, struct sock *sk) | ||
282 | { | ||
283 | rwlock_t *lock; | ||
284 | |||
285 | if (sk_unhashed(sk)) | ||
286 | goto out; | ||
287 | |||
288 | if (sk->sk_state == TCP_LISTEN) { | ||
289 | local_bh_disable(); | ||
290 | inet_listen_wlock(hashinfo); | ||
291 | lock = &hashinfo->lhash_lock; | ||
292 | } else { | ||
293 | lock = inet_ehash_lockp(hashinfo, sk->sk_hash); | ||
294 | write_lock_bh(lock); | ||
295 | } | ||
296 | |||
297 | if (__sk_del_node_init(sk)) | ||
298 | sock_prot_inuse_add(sk->sk_prot, -1); | ||
299 | write_unlock_bh(lock); | ||
300 | out: | ||
301 | if (sk->sk_state == TCP_LISTEN) | ||
302 | wake_up(&hashinfo->lhash_wait); | ||
303 | } | ||
304 | 271 | ||
305 | extern struct sock *__inet_lookup_listener(struct net *net, | 272 | extern struct sock *__inet_lookup_listener(struct net *net, |
306 | struct inet_hashinfo *hashinfo, | 273 | struct inet_hashinfo *hashinfo, |
@@ -425,7 +392,7 @@ extern int __inet_hash_connect(struct inet_timewait_death_row *death_row, | |||
425 | struct sock *sk, | 392 | struct sock *sk, |
426 | int (*check_established)(struct inet_timewait_death_row *, | 393 | int (*check_established)(struct inet_timewait_death_row *, |
427 | struct sock *, __u16, struct inet_timewait_sock **), | 394 | struct sock *, __u16, struct inet_timewait_sock **), |
428 | void (*hash)(struct inet_hashinfo *, struct sock *)); | 395 | void (*hash)(struct sock *sk)); |
429 | extern int inet_hash_connect(struct inet_timewait_death_row *death_row, | 396 | extern int inet_hash_connect(struct inet_timewait_death_row *death_row, |
430 | struct sock *sk); | 397 | struct sock *sk); |
431 | #endif /* _INET_HASHTABLES_H */ | 398 | #endif /* _INET_HASHTABLES_H */ |
diff --git a/include/net/inet_timewait_sock.h b/include/net/inet_timewait_sock.h index 67e925065aae..296547bfb0b7 100644 --- a/include/net/inet_timewait_sock.h +++ b/include/net/inet_timewait_sock.h | |||
@@ -116,6 +116,7 @@ struct inet_timewait_sock { | |||
116 | #define tw_hash __tw_common.skc_hash | 116 | #define tw_hash __tw_common.skc_hash |
117 | #define tw_prot __tw_common.skc_prot | 117 | #define tw_prot __tw_common.skc_prot |
118 | #define tw_net __tw_common.skc_net | 118 | #define tw_net __tw_common.skc_net |
119 | int tw_timeout; | ||
119 | volatile unsigned char tw_substate; | 120 | volatile unsigned char tw_substate; |
120 | /* 3 bits hole, try to pack */ | 121 | /* 3 bits hole, try to pack */ |
121 | unsigned char tw_rcv_wscale; | 122 | unsigned char tw_rcv_wscale; |
@@ -130,7 +131,6 @@ struct inet_timewait_sock { | |||
130 | __u8 tw_ipv6only:1; | 131 | __u8 tw_ipv6only:1; |
131 | /* 15 bits hole, try to pack */ | 132 | /* 15 bits hole, try to pack */ |
132 | __u16 tw_ipv6_offset; | 133 | __u16 tw_ipv6_offset; |
133 | int tw_timeout; | ||
134 | unsigned long tw_ttd; | 134 | unsigned long tw_ttd; |
135 | struct inet_bind_bucket *tw_tb; | 135 | struct inet_bind_bucket *tw_tb; |
136 | struct hlist_node tw_death_node; | 136 | struct hlist_node tw_death_node; |
diff --git a/include/net/sock.h b/include/net/sock.h index e3fb4c047f4c..8a7889b35810 100644 --- a/include/net/sock.h +++ b/include/net/sock.h | |||
@@ -496,6 +496,7 @@ extern int sk_wait_data(struct sock *sk, long *timeo); | |||
496 | 496 | ||
497 | struct request_sock_ops; | 497 | struct request_sock_ops; |
498 | struct timewait_sock_ops; | 498 | struct timewait_sock_ops; |
499 | struct inet_hashinfo; | ||
499 | 500 | ||
500 | /* Networking protocol blocks we attach to sockets. | 501 | /* Networking protocol blocks we attach to sockets. |
501 | * socket layer -> transport layer interface | 502 | * socket layer -> transport layer interface |
@@ -578,6 +579,8 @@ struct proto { | |||
578 | struct request_sock_ops *rsk_prot; | 579 | struct request_sock_ops *rsk_prot; |
579 | struct timewait_sock_ops *twsk_prot; | 580 | struct timewait_sock_ops *twsk_prot; |
580 | 581 | ||
582 | struct inet_hashinfo *hashinfo; | ||
583 | |||
581 | struct module *owner; | 584 | struct module *owner; |
582 | 585 | ||
583 | char name[32]; | 586 | char name[32]; |
diff --git a/include/scsi/scsi_transport_fc.h b/include/scsi/scsi_transport_fc.h index e466d886e192..4769efd4db24 100644 --- a/include/scsi/scsi_transport_fc.h +++ b/include/scsi/scsi_transport_fc.h | |||
@@ -176,7 +176,7 @@ struct class_device_attribute class_device_attr_vport_##_name = \ | |||
176 | * ports has a unique presense on the SAN, and may be instantiated via | 176 | * ports has a unique presense on the SAN, and may be instantiated via |
177 | * NPIV, Virtual Fabrics, or via additional ALPAs. As the vport is a | 177 | * NPIV, Virtual Fabrics, or via additional ALPAs. As the vport is a |
178 | * unique presense, each vport has it's own view of the fabric, | 178 | * unique presense, each vport has it's own view of the fabric, |
179 | * authentication priviledge, and priorities. | 179 | * authentication privilege, and priorities. |
180 | * | 180 | * |
181 | * A virtual port may support 1 or more FC4 roles. Typically it is a | 181 | * A virtual port may support 1 or more FC4 roles. Typically it is a |
182 | * FCP Initiator. It could be a FCP Target, or exist sole for an IP over FC | 182 | * FCP Initiator. It could be a FCP Target, or exist sole for an IP over FC |