diff options
62 files changed, 583 insertions, 615 deletions
diff --git a/arch/sh/boards/renesas/rts7751r2d/setup.c b/arch/sh/boards/renesas/rts7751r2d/setup.c index e165d85c03b5..6f7029d33241 100644 --- a/arch/sh/boards/renesas/rts7751r2d/setup.c +++ b/arch/sh/boards/renesas/rts7751r2d/setup.c | |||
@@ -140,12 +140,19 @@ static struct platform_device sm501_device = { | |||
140 | static struct platform_device *rts7751r2d_devices[] __initdata = { | 140 | static struct platform_device *rts7751r2d_devices[] __initdata = { |
141 | &uart_device, | 141 | &uart_device, |
142 | &heartbeat_device, | 142 | &heartbeat_device, |
143 | &cf_ide_device, | ||
144 | &sm501_device, | 143 | &sm501_device, |
145 | }; | 144 | }; |
146 | 145 | ||
147 | static int __init rts7751r2d_devices_setup(void) | 146 | static int __init rts7751r2d_devices_setup(void) |
148 | { | 147 | { |
148 | int ret; | ||
149 | |||
150 | if (ctrl_inw(PA_BVERREG) == 0x10) { /* only working on R2D-PLUS */ | ||
151 | ret = platform_device_register(&cf_ide_device); | ||
152 | if (ret) | ||
153 | return ret; | ||
154 | } | ||
155 | |||
149 | return platform_add_devices(rts7751r2d_devices, | 156 | return platform_add_devices(rts7751r2d_devices, |
150 | ARRAY_SIZE(rts7751r2d_devices)); | 157 | ARRAY_SIZE(rts7751r2d_devices)); |
151 | } | 158 | } |
diff --git a/arch/sh/configs/hs7751rvoip_defconfig b/arch/sh/configs/hs7751rvoip_defconfig index e1a886d621db..5d9da5a02759 100644 --- a/arch/sh/configs/hs7751rvoip_defconfig +++ b/arch/sh/configs/hs7751rvoip_defconfig | |||
@@ -145,7 +145,7 @@ CONFIG_CPU_SH4=y | |||
145 | # CONFIG_CPU_SUBTYPE_SH7091 is not set | 145 | # CONFIG_CPU_SUBTYPE_SH7091 is not set |
146 | # CONFIG_CPU_SUBTYPE_SH7750R is not set | 146 | # CONFIG_CPU_SUBTYPE_SH7750R is not set |
147 | # CONFIG_CPU_SUBTYPE_SH7750S is not set | 147 | # CONFIG_CPU_SUBTYPE_SH7750S is not set |
148 | CONFIG_CPU_SUBTYPE_SH7751=y | 148 | # CONFIG_CPU_SUBTYPE_SH7751 is not set |
149 | CONFIG_CPU_SUBTYPE_SH7751R=y | 149 | CONFIG_CPU_SUBTYPE_SH7751R=y |
150 | # CONFIG_CPU_SUBTYPE_SH7760 is not set | 150 | # CONFIG_CPU_SUBTYPE_SH7760 is not set |
151 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set | 151 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set |
diff --git a/arch/sh/configs/landisk_defconfig b/arch/sh/configs/landisk_defconfig index 07310fa03250..f52db125432f 100644 --- a/arch/sh/configs/landisk_defconfig +++ b/arch/sh/configs/landisk_defconfig | |||
@@ -156,7 +156,7 @@ CONFIG_CPU_SH4=y | |||
156 | # CONFIG_CPU_SUBTYPE_SH7091 is not set | 156 | # CONFIG_CPU_SUBTYPE_SH7091 is not set |
157 | # CONFIG_CPU_SUBTYPE_SH7750R is not set | 157 | # CONFIG_CPU_SUBTYPE_SH7750R is not set |
158 | # CONFIG_CPU_SUBTYPE_SH7750S is not set | 158 | # CONFIG_CPU_SUBTYPE_SH7750S is not set |
159 | CONFIG_CPU_SUBTYPE_SH7751=y | 159 | # CONFIG_CPU_SUBTYPE_SH7751 is not set |
160 | CONFIG_CPU_SUBTYPE_SH7751R=y | 160 | CONFIG_CPU_SUBTYPE_SH7751R=y |
161 | # CONFIG_CPU_SUBTYPE_SH7760 is not set | 161 | # CONFIG_CPU_SUBTYPE_SH7760 is not set |
162 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set | 162 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set |
diff --git a/arch/sh/configs/lboxre2_defconfig b/arch/sh/configs/lboxre2_defconfig index fa09d68d057a..9fa66d92a4e7 100644 --- a/arch/sh/configs/lboxre2_defconfig +++ b/arch/sh/configs/lboxre2_defconfig | |||
@@ -159,7 +159,7 @@ CONFIG_CPU_SH4=y | |||
159 | # CONFIG_CPU_SUBTYPE_SH7091 is not set | 159 | # CONFIG_CPU_SUBTYPE_SH7091 is not set |
160 | # CONFIG_CPU_SUBTYPE_SH7750R is not set | 160 | # CONFIG_CPU_SUBTYPE_SH7750R is not set |
161 | # CONFIG_CPU_SUBTYPE_SH7750S is not set | 161 | # CONFIG_CPU_SUBTYPE_SH7750S is not set |
162 | CONFIG_CPU_SUBTYPE_SH7751=y | 162 | # CONFIG_CPU_SUBTYPE_SH7751 is not set |
163 | CONFIG_CPU_SUBTYPE_SH7751R=y | 163 | CONFIG_CPU_SUBTYPE_SH7751R=y |
164 | # CONFIG_CPU_SUBTYPE_SH7760 is not set | 164 | # CONFIG_CPU_SUBTYPE_SH7760 is not set |
165 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set | 165 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set |
diff --git a/arch/sh/configs/rts7751r2d_defconfig b/arch/sh/configs/rts7751r2d_defconfig index f1e979b1e495..b64f73b704d6 100644 --- a/arch/sh/configs/rts7751r2d_defconfig +++ b/arch/sh/configs/rts7751r2d_defconfig | |||
@@ -243,8 +243,8 @@ CONFIG_SH_PCLK_FREQ=60000000 | |||
243 | # | 243 | # |
244 | # DMA support | 244 | # DMA support |
245 | # | 245 | # |
246 | CONFIG_SH_DMA=y | 246 | # CONFIG_SH_DMA is not set |
247 | CONFIG_NR_ONCHIP_DMA_CHANNELS=8 | 247 | # CONFIG_NR_ONCHIP_DMA_CHANNELS is not set |
248 | # CONFIG_NR_DMA_CHANNELS_BOOL is not set | 248 | # CONFIG_NR_DMA_CHANNELS_BOOL is not set |
249 | 249 | ||
250 | # | 250 | # |
@@ -280,7 +280,7 @@ CONFIG_ZERO_PAGE_OFFSET=0x00010000 | |||
280 | CONFIG_BOOT_LINK_OFFSET=0x00800000 | 280 | CONFIG_BOOT_LINK_OFFSET=0x00800000 |
281 | # CONFIG_UBC_WAKEUP is not set | 281 | # CONFIG_UBC_WAKEUP is not set |
282 | CONFIG_CMDLINE_BOOL=y | 282 | CONFIG_CMDLINE_BOOL=y |
283 | CONFIG_CMDLINE="console=tty0 console=ttySC0,115200 root=/dev/sda1 earlyprintk=bios" | 283 | CONFIG_CMDLINE="console=tty0 console=ttySC0,115200 root=/dev/sda1 earlyprintk=serial" |
284 | 284 | ||
285 | # | 285 | # |
286 | # Bus options | 286 | # Bus options |
@@ -1323,7 +1323,7 @@ CONFIG_ENABLE_MUST_CHECK=y | |||
1323 | # CONFIG_DEBUG_KERNEL is not set | 1323 | # CONFIG_DEBUG_KERNEL is not set |
1324 | CONFIG_LOG_BUF_SHIFT=14 | 1324 | CONFIG_LOG_BUF_SHIFT=14 |
1325 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1325 | # CONFIG_DEBUG_BUGVERBOSE is not set |
1326 | CONFIG_SH_STANDARD_BIOS=y | 1326 | # CONFIG_SH_STANDARD_BIOS is not set |
1327 | CONFIG_EARLY_SCIF_CONSOLE=y | 1327 | CONFIG_EARLY_SCIF_CONSOLE=y |
1328 | CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe80000 | 1328 | CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe80000 |
1329 | CONFIG_EARLY_PRINTK=y | 1329 | CONFIG_EARLY_PRINTK=y |
diff --git a/arch/sh/configs/snapgear_defconfig b/arch/sh/configs/snapgear_defconfig index 98503f16f3f5..e4e5d2178131 100644 --- a/arch/sh/configs/snapgear_defconfig +++ b/arch/sh/configs/snapgear_defconfig | |||
@@ -1,15 +1,24 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.18 | 3 | # Linux kernel version: 2.6.23-rc1 |
4 | # Tue Oct 3 12:55:47 2006 | 4 | # Thu Jul 26 11:49:11 2007 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 7 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
8 | CONFIG_GENERIC_BUG=y | ||
8 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 9 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
9 | CONFIG_GENERIC_HWEIGHT=y | 10 | CONFIG_GENERIC_HWEIGHT=y |
10 | CONFIG_GENERIC_HARDIRQS=y | 11 | CONFIG_GENERIC_HARDIRQS=y |
11 | CONFIG_GENERIC_IRQ_PROBE=y | 12 | CONFIG_GENERIC_IRQ_PROBE=y |
12 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 13 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
14 | CONFIG_GENERIC_TIME=y | ||
15 | CONFIG_GENERIC_CLOCKEVENTS=y | ||
16 | CONFIG_SYS_SUPPORTS_PCI=y | ||
17 | CONFIG_STACKTRACE_SUPPORT=y | ||
18 | CONFIG_LOCKDEP_SUPPORT=y | ||
19 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | ||
20 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | ||
21 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | ||
13 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 22 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
14 | 23 | ||
15 | # | 24 | # |
@@ -24,15 +33,18 @@ CONFIG_INIT_ENV_ARG_LIMIT=32 | |||
24 | # | 33 | # |
25 | CONFIG_LOCALVERSION="" | 34 | CONFIG_LOCALVERSION="" |
26 | CONFIG_LOCALVERSION_AUTO=y | 35 | CONFIG_LOCALVERSION_AUTO=y |
27 | CONFIG_SWAP=y | 36 | # CONFIG_SWAP is not set |
28 | # CONFIG_SYSVIPC is not set | 37 | # CONFIG_SYSVIPC is not set |
29 | # CONFIG_POSIX_MQUEUE is not set | 38 | # CONFIG_POSIX_MQUEUE is not set |
30 | # CONFIG_BSD_PROCESS_ACCT is not set | 39 | # CONFIG_BSD_PROCESS_ACCT is not set |
31 | # CONFIG_TASKSTATS is not set | 40 | # CONFIG_TASKSTATS is not set |
32 | # CONFIG_UTS_NS is not set | 41 | # CONFIG_USER_NS is not set |
33 | # CONFIG_AUDIT is not set | 42 | # CONFIG_AUDIT is not set |
34 | # CONFIG_IKCONFIG is not set | 43 | # CONFIG_IKCONFIG is not set |
44 | CONFIG_LOG_BUF_SHIFT=14 | ||
45 | # CONFIG_SYSFS_DEPRECATED is not set | ||
35 | # CONFIG_RELAY is not set | 46 | # CONFIG_RELAY is not set |
47 | CONFIG_BLK_DEV_INITRD=y | ||
36 | CONFIG_INITRAMFS_SOURCE="" | 48 | CONFIG_INITRAMFS_SOURCE="" |
37 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | 49 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y |
38 | CONFIG_SYSCTL=y | 50 | CONFIG_SYSCTL=y |
@@ -47,27 +59,25 @@ CONFIG_BUG=y | |||
47 | CONFIG_ELF_CORE=y | 59 | CONFIG_ELF_CORE=y |
48 | CONFIG_BASE_FULL=y | 60 | CONFIG_BASE_FULL=y |
49 | CONFIG_FUTEX=y | 61 | CONFIG_FUTEX=y |
62 | CONFIG_ANON_INODES=y | ||
50 | CONFIG_EPOLL=y | 63 | CONFIG_EPOLL=y |
64 | CONFIG_SIGNALFD=y | ||
65 | CONFIG_TIMERFD=y | ||
66 | CONFIG_EVENTFD=y | ||
51 | CONFIG_SHMEM=y | 67 | CONFIG_SHMEM=y |
52 | CONFIG_SLAB=y | ||
53 | CONFIG_VM_EVENT_COUNTERS=y | 68 | CONFIG_VM_EVENT_COUNTERS=y |
69 | CONFIG_SLAB=y | ||
70 | # CONFIG_SLUB is not set | ||
71 | # CONFIG_SLOB is not set | ||
54 | CONFIG_RT_MUTEXES=y | 72 | CONFIG_RT_MUTEXES=y |
55 | # CONFIG_TINY_SHMEM is not set | 73 | # CONFIG_TINY_SHMEM is not set |
56 | CONFIG_BASE_SMALL=0 | 74 | CONFIG_BASE_SMALL=0 |
57 | # CONFIG_SLOB is not set | ||
58 | |||
59 | # | ||
60 | # Loadable module support | ||
61 | # | ||
62 | # CONFIG_MODULES is not set | 75 | # CONFIG_MODULES is not set |
63 | |||
64 | # | ||
65 | # Block layer | ||
66 | # | ||
67 | CONFIG_BLOCK=y | 76 | CONFIG_BLOCK=y |
68 | # CONFIG_LBD is not set | 77 | # CONFIG_LBD is not set |
69 | # CONFIG_BLK_DEV_IO_TRACE is not set | 78 | # CONFIG_BLK_DEV_IO_TRACE is not set |
70 | # CONFIG_LSF is not set | 79 | # CONFIG_LSF is not set |
80 | # CONFIG_BLK_DEV_BSG is not set | ||
71 | 81 | ||
72 | # | 82 | # |
73 | # IO Schedulers | 83 | # IO Schedulers |
@@ -85,122 +95,103 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
85 | # | 95 | # |
86 | # System type | 96 | # System type |
87 | # | 97 | # |
88 | # CONFIG_SH_SOLUTION_ENGINE is not set | ||
89 | # CONFIG_SH_7751_SOLUTION_ENGINE is not set | ||
90 | # CONFIG_SH_7300_SOLUTION_ENGINE is not set | ||
91 | # CONFIG_SH_7343_SOLUTION_ENGINE is not set | ||
92 | # CONFIG_SH_73180_SOLUTION_ENGINE is not set | ||
93 | # CONFIG_SH_7751_SYSTEMH is not set | ||
94 | # CONFIG_SH_HP6XX is not set | ||
95 | # CONFIG_SH_EC3104 is not set | ||
96 | # CONFIG_SH_SATURN is not set | ||
97 | # CONFIG_SH_DREAMCAST is not set | ||
98 | # CONFIG_SH_BIGSUR is not set | ||
99 | # CONFIG_SH_MPC1211 is not set | ||
100 | # CONFIG_SH_SH03 is not set | ||
101 | CONFIG_SH_SECUREEDGE5410=y | ||
102 | # CONFIG_SH_HS7751RVOIP is not set | ||
103 | # CONFIG_SH_7710VOIPGW is not set | ||
104 | # CONFIG_SH_RTS7751R2D is not set | ||
105 | # CONFIG_SH_R7780RP is not set | ||
106 | # CONFIG_SH_EDOSK7705 is not set | ||
107 | # CONFIG_SH_SH4202_MICRODEV is not set | ||
108 | # CONFIG_SH_LANDISK is not set | ||
109 | # CONFIG_SH_TITAN is not set | ||
110 | # CONFIG_SH_SHMIN is not set | ||
111 | # CONFIG_SH_UNKNOWN is not set | ||
112 | |||
113 | # | ||
114 | # Processor selection | ||
115 | # | ||
116 | CONFIG_CPU_SH4=y | 98 | CONFIG_CPU_SH4=y |
117 | 99 | # CONFIG_CPU_SUBTYPE_SH7619 is not set | |
118 | # | 100 | # CONFIG_CPU_SUBTYPE_SH7206 is not set |
119 | # SH-2 Processor Support | ||
120 | # | ||
121 | # CONFIG_CPU_SUBTYPE_SH7604 is not set | ||
122 | |||
123 | # | ||
124 | # SH-3 Processor Support | ||
125 | # | ||
126 | # CONFIG_CPU_SUBTYPE_SH7300 is not set | ||
127 | # CONFIG_CPU_SUBTYPE_SH7705 is not set | 101 | # CONFIG_CPU_SUBTYPE_SH7705 is not set |
128 | # CONFIG_CPU_SUBTYPE_SH7706 is not set | 102 | # CONFIG_CPU_SUBTYPE_SH7706 is not set |
129 | # CONFIG_CPU_SUBTYPE_SH7707 is not set | 103 | # CONFIG_CPU_SUBTYPE_SH7707 is not set |
130 | # CONFIG_CPU_SUBTYPE_SH7708 is not set | 104 | # CONFIG_CPU_SUBTYPE_SH7708 is not set |
131 | # CONFIG_CPU_SUBTYPE_SH7709 is not set | 105 | # CONFIG_CPU_SUBTYPE_SH7709 is not set |
132 | # CONFIG_CPU_SUBTYPE_SH7710 is not set | 106 | # CONFIG_CPU_SUBTYPE_SH7710 is not set |
133 | 107 | # CONFIG_CPU_SUBTYPE_SH7712 is not set | |
134 | # | ||
135 | # SH-4 Processor Support | ||
136 | # | ||
137 | # CONFIG_CPU_SUBTYPE_SH7750 is not set | 108 | # CONFIG_CPU_SUBTYPE_SH7750 is not set |
138 | # CONFIG_CPU_SUBTYPE_SH7091 is not set | 109 | # CONFIG_CPU_SUBTYPE_SH7091 is not set |
139 | # CONFIG_CPU_SUBTYPE_SH7750R is not set | 110 | # CONFIG_CPU_SUBTYPE_SH7750R is not set |
140 | # CONFIG_CPU_SUBTYPE_SH7750S is not set | 111 | # CONFIG_CPU_SUBTYPE_SH7750S is not set |
141 | CONFIG_CPU_SUBTYPE_SH7751=y | 112 | # CONFIG_CPU_SUBTYPE_SH7751 is not set |
142 | CONFIG_CPU_SUBTYPE_SH7751R=y | 113 | CONFIG_CPU_SUBTYPE_SH7751R=y |
143 | # CONFIG_CPU_SUBTYPE_SH7760 is not set | 114 | # CONFIG_CPU_SUBTYPE_SH7760 is not set |
144 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set | 115 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set |
145 | |||
146 | # | ||
147 | # ST40 Processor Support | ||
148 | # | ||
149 | # CONFIG_CPU_SUBTYPE_ST40STB1 is not set | 116 | # CONFIG_CPU_SUBTYPE_ST40STB1 is not set |
150 | # CONFIG_CPU_SUBTYPE_ST40GX1 is not set | 117 | # CONFIG_CPU_SUBTYPE_ST40GX1 is not set |
151 | |||
152 | # | ||
153 | # SH-4A Processor Support | ||
154 | # | ||
155 | # CONFIG_CPU_SUBTYPE_SH7770 is not set | 118 | # CONFIG_CPU_SUBTYPE_SH7770 is not set |
156 | # CONFIG_CPU_SUBTYPE_SH7780 is not set | 119 | # CONFIG_CPU_SUBTYPE_SH7780 is not set |
157 | 120 | # CONFIG_CPU_SUBTYPE_SH7785 is not set | |
158 | # | 121 | # CONFIG_CPU_SUBTYPE_SHX3 is not set |
159 | # SH4AL-DSP Processor Support | ||
160 | # | ||
161 | # CONFIG_CPU_SUBTYPE_SH73180 is not set | ||
162 | # CONFIG_CPU_SUBTYPE_SH7343 is not set | 122 | # CONFIG_CPU_SUBTYPE_SH7343 is not set |
123 | # CONFIG_CPU_SUBTYPE_SH7722 is not set | ||
163 | 124 | ||
164 | # | 125 | # |
165 | # Memory management options | 126 | # Memory management options |
166 | # | 127 | # |
128 | CONFIG_QUICKLIST=y | ||
167 | CONFIG_MMU=y | 129 | CONFIG_MMU=y |
168 | CONFIG_PAGE_OFFSET=0x80000000 | 130 | CONFIG_PAGE_OFFSET=0x80000000 |
169 | CONFIG_MEMORY_START=0x08000000 | 131 | CONFIG_MEMORY_START=0x08000000 |
170 | CONFIG_MEMORY_SIZE=0x01000000 | 132 | CONFIG_MEMORY_SIZE=0x01000000 |
171 | CONFIG_VSYSCALL=y | 133 | CONFIG_VSYSCALL=y |
134 | CONFIG_ARCH_FLATMEM_ENABLE=y | ||
135 | CONFIG_ARCH_SPARSEMEM_ENABLE=y | ||
136 | CONFIG_ARCH_SPARSEMEM_DEFAULT=y | ||
137 | CONFIG_MAX_ACTIVE_REGIONS=1 | ||
138 | CONFIG_ARCH_POPULATES_NODE_MAP=y | ||
139 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y | ||
140 | CONFIG_PAGE_SIZE_4KB=y | ||
141 | # CONFIG_PAGE_SIZE_8KB is not set | ||
142 | # CONFIG_PAGE_SIZE_64KB is not set | ||
172 | CONFIG_SELECT_MEMORY_MODEL=y | 143 | CONFIG_SELECT_MEMORY_MODEL=y |
173 | CONFIG_FLATMEM_MANUAL=y | 144 | CONFIG_FLATMEM_MANUAL=y |
174 | # CONFIG_DISCONTIGMEM_MANUAL is not set | 145 | # CONFIG_DISCONTIGMEM_MANUAL is not set |
175 | # CONFIG_SPARSEMEM_MANUAL is not set | 146 | # CONFIG_SPARSEMEM_MANUAL is not set |
176 | CONFIG_FLATMEM=y | 147 | CONFIG_FLATMEM=y |
177 | CONFIG_FLAT_NODE_MEM_MAP=y | 148 | CONFIG_FLAT_NODE_MEM_MAP=y |
178 | # CONFIG_SPARSEMEM_STATIC is not set | 149 | CONFIG_SPARSEMEM_STATIC=y |
179 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 150 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
180 | # CONFIG_RESOURCES_64BIT is not set | 151 | # CONFIG_RESOURCES_64BIT is not set |
152 | CONFIG_ZONE_DMA_FLAG=0 | ||
153 | CONFIG_NR_QUICK=2 | ||
181 | 154 | ||
182 | # | 155 | # |
183 | # Cache configuration | 156 | # Cache configuration |
184 | # | 157 | # |
185 | # CONFIG_SH_DIRECT_MAPPED is not set | 158 | # CONFIG_SH_DIRECT_MAPPED is not set |
186 | # CONFIG_SH_WRITETHROUGH is not set | 159 | # CONFIG_SH_WRITETHROUGH is not set |
187 | # CONFIG_SH_OCRAM is not set | ||
188 | 160 | ||
189 | # | 161 | # |
190 | # Processor features | 162 | # Processor features |
191 | # | 163 | # |
192 | CONFIG_CPU_LITTLE_ENDIAN=y | 164 | CONFIG_CPU_LITTLE_ENDIAN=y |
165 | # CONFIG_CPU_BIG_ENDIAN is not set | ||
193 | CONFIG_SH_FPU=y | 166 | CONFIG_SH_FPU=y |
194 | # CONFIG_SH_DSP is not set | 167 | # CONFIG_SH_DSP is not set |
195 | # CONFIG_SH_STORE_QUEUES is not set | 168 | # CONFIG_SH_STORE_QUEUES is not set |
196 | CONFIG_CPU_HAS_INTEVT=y | 169 | CONFIG_CPU_HAS_INTEVT=y |
170 | CONFIG_CPU_HAS_INTC_IRQ=y | ||
171 | CONFIG_CPU_HAS_IPR_IRQ=y | ||
197 | CONFIG_CPU_HAS_SR_RB=y | 172 | CONFIG_CPU_HAS_SR_RB=y |
173 | CONFIG_CPU_HAS_PTEA=y | ||
174 | |||
175 | # | ||
176 | # Board support | ||
177 | # | ||
178 | # CONFIG_SH_7751_SYSTEMH is not set | ||
179 | CONFIG_SH_SECUREEDGE5410=y | ||
180 | # CONFIG_SH_HS7751RVOIP is not set | ||
181 | # CONFIG_SH_RTS7751R2D is not set | ||
182 | # CONFIG_SH_LANDISK is not set | ||
183 | # CONFIG_SH_TITAN is not set | ||
184 | # CONFIG_SH_LBOX_RE2 is not set | ||
198 | 185 | ||
199 | # | 186 | # |
200 | # Timer support | 187 | # Timer and clock configuration |
201 | # | 188 | # |
202 | CONFIG_SH_TMU=y | 189 | CONFIG_SH_TMU=y |
190 | CONFIG_SH_TIMER_IRQ=16 | ||
203 | CONFIG_SH_PCLK_FREQ=60000000 | 191 | CONFIG_SH_PCLK_FREQ=60000000 |
192 | # CONFIG_TICK_ONESHOT is not set | ||
193 | # CONFIG_NO_HZ is not set | ||
194 | # CONFIG_HIGH_RES_TIMERS is not set | ||
204 | 195 | ||
205 | # | 196 | # |
206 | # CPU Frequency scaling | 197 | # CPU Frequency scaling |
@@ -210,24 +201,31 @@ CONFIG_SH_PCLK_FREQ=60000000 | |||
210 | # | 201 | # |
211 | # DMA support | 202 | # DMA support |
212 | # | 203 | # |
204 | CONFIG_SH_DMA_API=y | ||
213 | CONFIG_SH_DMA=y | 205 | CONFIG_SH_DMA=y |
214 | CONFIG_NR_ONCHIP_DMA_CHANNELS=4 | 206 | CONFIG_NR_ONCHIP_DMA_CHANNELS=8 |
215 | # CONFIG_NR_DMA_CHANNELS_BOOL is not set | 207 | # CONFIG_NR_DMA_CHANNELS_BOOL is not set |
216 | 208 | ||
217 | # | 209 | # |
218 | # Companion Chips | 210 | # Companion Chips |
219 | # | 211 | # |
220 | # CONFIG_HD6446X_SERIES is not set | 212 | |
213 | # | ||
214 | # Additional SuperH Device Drivers | ||
215 | # | ||
216 | # CONFIG_HEARTBEAT is not set | ||
217 | # CONFIG_PUSH_SWITCH is not set | ||
221 | 218 | ||
222 | # | 219 | # |
223 | # Kernel features | 220 | # Kernel features |
224 | # | 221 | # |
225 | # CONFIG_HZ_100 is not set | 222 | # CONFIG_HZ_100 is not set |
226 | CONFIG_HZ_250=y | 223 | CONFIG_HZ_250=y |
224 | # CONFIG_HZ_300 is not set | ||
227 | # CONFIG_HZ_1000 is not set | 225 | # CONFIG_HZ_1000 is not set |
228 | CONFIG_HZ=250 | 226 | CONFIG_HZ=250 |
229 | # CONFIG_KEXEC is not set | 227 | # CONFIG_KEXEC is not set |
230 | # CONFIG_SMP is not set | 228 | # CONFIG_CRASH_DUMP is not set |
231 | CONFIG_PREEMPT_NONE=y | 229 | CONFIG_PREEMPT_NONE=y |
232 | # CONFIG_PREEMPT_VOLUNTARY is not set | 230 | # CONFIG_PREEMPT_VOLUNTARY is not set |
233 | # CONFIG_PREEMPT is not set | 231 | # CONFIG_PREEMPT is not set |
@@ -243,33 +241,24 @@ CONFIG_BOOT_LINK_OFFSET=0x00800000 | |||
243 | # | 241 | # |
244 | # Bus options | 242 | # Bus options |
245 | # | 243 | # |
244 | CONFIG_SH_CONCAT_FS=y | ||
246 | CONFIG_PCI=y | 245 | CONFIG_PCI=y |
247 | # CONFIG_SH_PCIDMA_NONCOHERENT is not set | 246 | CONFIG_SH_PCIDMA_NONCOHERENT=y |
248 | CONFIG_PCI_AUTO=y | 247 | CONFIG_PCI_AUTO=y |
249 | CONFIG_PCI_AUTO_UPDATE_RESOURCES=y | 248 | CONFIG_PCI_AUTO_UPDATE_RESOURCES=y |
250 | # CONFIG_PCI_MULTITHREAD_PROBE is not set | 249 | # CONFIG_ARCH_SUPPORTS_MSI is not set |
251 | 250 | ||
252 | # | 251 | # |
253 | # PCCARD (PCMCIA/CardBus) support | 252 | # PCCARD (PCMCIA/CardBus) support |
254 | # | 253 | # |
255 | 254 | ||
256 | # | 255 | # |
257 | # PCI Hotplug Support | ||
258 | # | ||
259 | |||
260 | # | ||
261 | # Executable file formats | 256 | # Executable file formats |
262 | # | 257 | # |
263 | CONFIG_BINFMT_ELF=y | 258 | CONFIG_BINFMT_ELF=y |
264 | # CONFIG_BINFMT_FLAT is not set | ||
265 | # CONFIG_BINFMT_MISC is not set | 259 | # CONFIG_BINFMT_MISC is not set |
266 | 260 | ||
267 | # | 261 | # |
268 | # Power management options (EXPERIMENTAL) | ||
269 | # | ||
270 | # CONFIG_PM is not set | ||
271 | |||
272 | # | ||
273 | # Networking | 262 | # Networking |
274 | # | 263 | # |
275 | CONFIG_NET=y | 264 | CONFIG_NET=y |
@@ -277,21 +266,14 @@ CONFIG_NET=y | |||
277 | # | 266 | # |
278 | # Networking options | 267 | # Networking options |
279 | # | 268 | # |
280 | # CONFIG_NETDEBUG is not set | ||
281 | # CONFIG_PACKET is not set | 269 | # CONFIG_PACKET is not set |
282 | # CONFIG_UNIX is not set | 270 | # CONFIG_UNIX is not set |
283 | CONFIG_XFRM=y | ||
284 | # CONFIG_XFRM_USER is not set | ||
285 | # CONFIG_XFRM_SUB_POLICY is not set | ||
286 | # CONFIG_NET_KEY is not set | 271 | # CONFIG_NET_KEY is not set |
287 | CONFIG_INET=y | 272 | CONFIG_INET=y |
288 | # CONFIG_IP_MULTICAST is not set | 273 | # CONFIG_IP_MULTICAST is not set |
289 | # CONFIG_IP_ADVANCED_ROUTER is not set | 274 | # CONFIG_IP_ADVANCED_ROUTER is not set |
290 | CONFIG_IP_FIB_HASH=y | 275 | CONFIG_IP_FIB_HASH=y |
291 | CONFIG_IP_PNP=y | 276 | # CONFIG_IP_PNP is not set |
292 | CONFIG_IP_PNP_DHCP=y | ||
293 | # CONFIG_IP_PNP_BOOTP is not set | ||
294 | # CONFIG_IP_PNP_RARP is not set | ||
295 | # CONFIG_NET_IPIP is not set | 277 | # CONFIG_NET_IPIP is not set |
296 | # CONFIG_NET_IPGRE is not set | 278 | # CONFIG_NET_IPGRE is not set |
297 | # CONFIG_ARPD is not set | 279 | # CONFIG_ARPD is not set |
@@ -301,32 +283,21 @@ CONFIG_IP_PNP_DHCP=y | |||
301 | # CONFIG_INET_IPCOMP is not set | 283 | # CONFIG_INET_IPCOMP is not set |
302 | # CONFIG_INET_XFRM_TUNNEL is not set | 284 | # CONFIG_INET_XFRM_TUNNEL is not set |
303 | # CONFIG_INET_TUNNEL is not set | 285 | # CONFIG_INET_TUNNEL is not set |
304 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | 286 | # CONFIG_INET_XFRM_MODE_TRANSPORT is not set |
305 | CONFIG_INET_XFRM_MODE_TUNNEL=y | 287 | # CONFIG_INET_XFRM_MODE_TUNNEL is not set |
306 | CONFIG_INET_DIAG=y | 288 | # CONFIG_INET_XFRM_MODE_BEET is not set |
307 | CONFIG_INET_TCP_DIAG=y | 289 | # CONFIG_INET_DIAG is not set |
308 | # CONFIG_TCP_CONG_ADVANCED is not set | 290 | # CONFIG_TCP_CONG_ADVANCED is not set |
309 | CONFIG_TCP_CONG_CUBIC=y | 291 | CONFIG_TCP_CONG_CUBIC=y |
310 | CONFIG_DEFAULT_TCP_CONG="cubic" | 292 | CONFIG_DEFAULT_TCP_CONG="cubic" |
293 | # CONFIG_TCP_MD5SIG is not set | ||
311 | # CONFIG_IPV6 is not set | 294 | # CONFIG_IPV6 is not set |
312 | # CONFIG_INET6_XFRM_TUNNEL is not set | 295 | # CONFIG_INET6_XFRM_TUNNEL is not set |
313 | # CONFIG_INET6_TUNNEL is not set | 296 | # CONFIG_INET6_TUNNEL is not set |
314 | # CONFIG_NETWORK_SECMARK is not set | 297 | # CONFIG_NETWORK_SECMARK is not set |
315 | # CONFIG_NETFILTER is not set | 298 | # CONFIG_NETFILTER is not set |
316 | |||
317 | # | ||
318 | # DCCP Configuration (EXPERIMENTAL) | ||
319 | # | ||
320 | # CONFIG_IP_DCCP is not set | 299 | # CONFIG_IP_DCCP is not set |
321 | |||
322 | # | ||
323 | # SCTP Configuration (EXPERIMENTAL) | ||
324 | # | ||
325 | # CONFIG_IP_SCTP is not set | 300 | # CONFIG_IP_SCTP is not set |
326 | |||
327 | # | ||
328 | # TIPC Configuration (EXPERIMENTAL) | ||
329 | # | ||
330 | # CONFIG_TIPC is not set | 301 | # CONFIG_TIPC is not set |
331 | # CONFIG_ATM is not set | 302 | # CONFIG_ATM is not set |
332 | # CONFIG_BRIDGE is not set | 303 | # CONFIG_BRIDGE is not set |
@@ -352,7 +323,17 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
352 | # CONFIG_HAMRADIO is not set | 323 | # CONFIG_HAMRADIO is not set |
353 | # CONFIG_IRDA is not set | 324 | # CONFIG_IRDA is not set |
354 | # CONFIG_BT is not set | 325 | # CONFIG_BT is not set |
326 | # CONFIG_AF_RXRPC is not set | ||
327 | |||
328 | # | ||
329 | # Wireless | ||
330 | # | ||
331 | # CONFIG_CFG80211 is not set | ||
332 | # CONFIG_WIRELESS_EXT is not set | ||
333 | # CONFIG_MAC80211 is not set | ||
355 | # CONFIG_IEEE80211 is not set | 334 | # CONFIG_IEEE80211 is not set |
335 | # CONFIG_RFKILL is not set | ||
336 | # CONFIG_NET_9P is not set | ||
356 | 337 | ||
357 | # | 338 | # |
358 | # Device Drivers | 339 | # Device Drivers |
@@ -364,30 +345,88 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
364 | CONFIG_STANDALONE=y | 345 | CONFIG_STANDALONE=y |
365 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 346 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
366 | # CONFIG_SYS_HYPERVISOR is not set | 347 | # CONFIG_SYS_HYPERVISOR is not set |
367 | |||
368 | # | ||
369 | # Connector - unified userspace <-> kernelspace linker | ||
370 | # | ||
371 | # CONFIG_CONNECTOR is not set | 348 | # CONFIG_CONNECTOR is not set |
372 | 349 | CONFIG_MTD=y | |
373 | # | 350 | # CONFIG_MTD_DEBUG is not set |
374 | # Memory Technology Devices (MTD) | 351 | # CONFIG_MTD_CONCAT is not set |
375 | # | 352 | CONFIG_MTD_PARTITIONS=y |
376 | # CONFIG_MTD is not set | 353 | # CONFIG_MTD_REDBOOT_PARTS is not set |
377 | 354 | # CONFIG_MTD_CMDLINE_PARTS is not set | |
378 | # | 355 | |
379 | # Parallel port support | 356 | # |
380 | # | 357 | # User Modules And Translation Layers |
358 | # | ||
359 | CONFIG_MTD_CHAR=y | ||
360 | CONFIG_MTD_BLKDEVS=y | ||
361 | # CONFIG_MTD_BLOCK is not set | ||
362 | CONFIG_MTD_BLOCK_RO=y | ||
363 | # CONFIG_FTL is not set | ||
364 | # CONFIG_NFTL is not set | ||
365 | # CONFIG_INFTL is not set | ||
366 | # CONFIG_RFD_FTL is not set | ||
367 | # CONFIG_SSFDC is not set | ||
368 | |||
369 | # | ||
370 | # RAM/ROM/Flash chip drivers | ||
371 | # | ||
372 | CONFIG_MTD_CFI=y | ||
373 | # CONFIG_MTD_JEDECPROBE is not set | ||
374 | CONFIG_MTD_GEN_PROBE=y | ||
375 | CONFIG_MTD_CFI_ADV_OPTIONS=y | ||
376 | CONFIG_MTD_CFI_NOSWAP=y | ||
377 | # CONFIG_MTD_CFI_BE_BYTE_SWAP is not set | ||
378 | # CONFIG_MTD_CFI_LE_BYTE_SWAP is not set | ||
379 | CONFIG_MTD_CFI_GEOMETRY=y | ||
380 | CONFIG_MTD_MAP_BANK_WIDTH_1=y | ||
381 | # CONFIG_MTD_MAP_BANK_WIDTH_2 is not set | ||
382 | # CONFIG_MTD_MAP_BANK_WIDTH_4 is not set | ||
383 | # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set | ||
384 | # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set | ||
385 | # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set | ||
386 | CONFIG_MTD_CFI_I1=y | ||
387 | # CONFIG_MTD_CFI_I2 is not set | ||
388 | # CONFIG_MTD_CFI_I4 is not set | ||
389 | # CONFIG_MTD_CFI_I8 is not set | ||
390 | # CONFIG_MTD_OTP is not set | ||
391 | CONFIG_MTD_CFI_INTELEXT=y | ||
392 | # CONFIG_MTD_CFI_AMDSTD is not set | ||
393 | # CONFIG_MTD_CFI_STAA is not set | ||
394 | CONFIG_MTD_CFI_UTIL=y | ||
395 | CONFIG_MTD_RAM=y | ||
396 | # CONFIG_MTD_ROM is not set | ||
397 | # CONFIG_MTD_ABSENT is not set | ||
398 | |||
399 | # | ||
400 | # Mapping drivers for chip access | ||
401 | # | ||
402 | # CONFIG_MTD_COMPLEX_MAPPINGS is not set | ||
403 | # CONFIG_MTD_PHYSMAP is not set | ||
404 | CONFIG_MTD_PLATRAM=y | ||
405 | |||
406 | # | ||
407 | # Self-contained MTD device drivers | ||
408 | # | ||
409 | # CONFIG_MTD_PMC551 is not set | ||
410 | # CONFIG_MTD_SLRAM is not set | ||
411 | # CONFIG_MTD_PHRAM is not set | ||
412 | # CONFIG_MTD_MTDRAM is not set | ||
413 | # CONFIG_MTD_BLOCK2MTD is not set | ||
414 | |||
415 | # | ||
416 | # Disk-On-Chip Device Drivers | ||
417 | # | ||
418 | # CONFIG_MTD_DOC2000 is not set | ||
419 | # CONFIG_MTD_DOC2001 is not set | ||
420 | # CONFIG_MTD_DOC2001PLUS is not set | ||
421 | # CONFIG_MTD_NAND is not set | ||
422 | # CONFIG_MTD_ONENAND is not set | ||
423 | |||
424 | # | ||
425 | # UBI - Unsorted block images | ||
426 | # | ||
427 | # CONFIG_MTD_UBI is not set | ||
381 | # CONFIG_PARPORT is not set | 428 | # CONFIG_PARPORT is not set |
382 | 429 | CONFIG_BLK_DEV=y | |
383 | # | ||
384 | # Plug and Play support | ||
385 | # | ||
386 | |||
387 | # | ||
388 | # Block devices | ||
389 | # | ||
390 | # CONFIG_BLK_CPQ_DA is not set | ||
391 | # CONFIG_BLK_CPQ_CISS_DA is not set | 430 | # CONFIG_BLK_CPQ_CISS_DA is not set |
392 | # CONFIG_BLK_DEV_DAC960 is not set | 431 | # CONFIG_BLK_DEV_DAC960 is not set |
393 | # CONFIG_BLK_DEV_UMEM is not set | 432 | # CONFIG_BLK_DEV_UMEM is not set |
@@ -399,13 +438,9 @@ CONFIG_BLK_DEV_RAM=y | |||
399 | CONFIG_BLK_DEV_RAM_COUNT=16 | 438 | CONFIG_BLK_DEV_RAM_COUNT=16 |
400 | CONFIG_BLK_DEV_RAM_SIZE=4096 | 439 | CONFIG_BLK_DEV_RAM_SIZE=4096 |
401 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 440 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 |
402 | CONFIG_BLK_DEV_INITRD=y | ||
403 | # CONFIG_CDROM_PKTCDVD is not set | 441 | # CONFIG_CDROM_PKTCDVD is not set |
404 | # CONFIG_ATA_OVER_ETH is not set | 442 | # CONFIG_ATA_OVER_ETH is not set |
405 | 443 | # CONFIG_MISC_DEVICES is not set | |
406 | # | ||
407 | # ATA/ATAPI/MFM/RLL support | ||
408 | # | ||
409 | # CONFIG_IDE is not set | 444 | # CONFIG_IDE is not set |
410 | 445 | ||
411 | # | 446 | # |
@@ -413,16 +448,9 @@ CONFIG_BLK_DEV_INITRD=y | |||
413 | # | 448 | # |
414 | # CONFIG_RAID_ATTRS is not set | 449 | # CONFIG_RAID_ATTRS is not set |
415 | # CONFIG_SCSI is not set | 450 | # CONFIG_SCSI is not set |
451 | # CONFIG_SCSI_DMA is not set | ||
416 | # CONFIG_SCSI_NETLINK is not set | 452 | # CONFIG_SCSI_NETLINK is not set |
417 | |||
418 | # | ||
419 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
420 | # | ||
421 | # CONFIG_ATA is not set | 453 | # CONFIG_ATA is not set |
422 | |||
423 | # | ||
424 | # Multi-device support (RAID and LVM) | ||
425 | # | ||
426 | # CONFIG_MD is not set | 454 | # CONFIG_MD is not set |
427 | 455 | ||
428 | # | 456 | # |
@@ -433,35 +461,18 @@ CONFIG_BLK_DEV_INITRD=y | |||
433 | # | 461 | # |
434 | # IEEE 1394 (FireWire) support | 462 | # IEEE 1394 (FireWire) support |
435 | # | 463 | # |
464 | # CONFIG_FIREWIRE is not set | ||
436 | # CONFIG_IEEE1394 is not set | 465 | # CONFIG_IEEE1394 is not set |
437 | |||
438 | # | ||
439 | # I2O device support | ||
440 | # | ||
441 | # CONFIG_I2O is not set | 466 | # CONFIG_I2O is not set |
442 | |||
443 | # | ||
444 | # Network device support | ||
445 | # | ||
446 | CONFIG_NETDEVICES=y | 467 | CONFIG_NETDEVICES=y |
468 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
447 | # CONFIG_DUMMY is not set | 469 | # CONFIG_DUMMY is not set |
448 | # CONFIG_BONDING is not set | 470 | # CONFIG_BONDING is not set |
471 | # CONFIG_MACVLAN is not set | ||
449 | # CONFIG_EQUALIZER is not set | 472 | # CONFIG_EQUALIZER is not set |
450 | # CONFIG_TUN is not set | 473 | # CONFIG_TUN is not set |
451 | |||
452 | # | ||
453 | # ARCnet devices | ||
454 | # | ||
455 | # CONFIG_ARCNET is not set | 474 | # CONFIG_ARCNET is not set |
456 | |||
457 | # | ||
458 | # PHY device support | ||
459 | # | ||
460 | # CONFIG_PHYLIB is not set | 475 | # CONFIG_PHYLIB is not set |
461 | |||
462 | # | ||
463 | # Ethernet (10 or 100Mbit) | ||
464 | # | ||
465 | CONFIG_NET_ETHERNET=y | 476 | CONFIG_NET_ETHERNET=y |
466 | CONFIG_MII=y | 477 | CONFIG_MII=y |
467 | # CONFIG_STNIC is not set | 478 | # CONFIG_STNIC is not set |
@@ -470,10 +481,6 @@ CONFIG_MII=y | |||
470 | # CONFIG_CASSINI is not set | 481 | # CONFIG_CASSINI is not set |
471 | # CONFIG_NET_VENDOR_3COM is not set | 482 | # CONFIG_NET_VENDOR_3COM is not set |
472 | # CONFIG_SMC91X is not set | 483 | # CONFIG_SMC91X is not set |
473 | |||
474 | # | ||
475 | # Tulip family network device support | ||
476 | # | ||
477 | # CONFIG_NET_TULIP is not set | 484 | # CONFIG_NET_TULIP is not set |
478 | # CONFIG_HP100 is not set | 485 | # CONFIG_HP100 is not set |
479 | CONFIG_NET_PCI=y | 486 | CONFIG_NET_PCI=y |
@@ -488,9 +495,9 @@ CONFIG_NET_PCI=y | |||
488 | # CONFIG_FEALNX is not set | 495 | # CONFIG_FEALNX is not set |
489 | # CONFIG_NATSEMI is not set | 496 | # CONFIG_NATSEMI is not set |
490 | # CONFIG_NE2K_PCI is not set | 497 | # CONFIG_NE2K_PCI is not set |
491 | # CONFIG_8139CP is not set | 498 | CONFIG_8139CP=y |
492 | CONFIG_8139TOO=y | 499 | CONFIG_8139TOO=y |
493 | # CONFIG_8139TOO_PIO is not set | 500 | CONFIG_8139TOO_PIO=y |
494 | # CONFIG_8139TOO_TUNE_TWISTER is not set | 501 | # CONFIG_8139TOO_TUNE_TWISTER is not set |
495 | # CONFIG_8139TOO_8129 is not set | 502 | # CONFIG_8139TOO_8129 is not set |
496 | # CONFIG_8139_OLD_RX_RESET is not set | 503 | # CONFIG_8139_OLD_RX_RESET is not set |
@@ -499,47 +506,16 @@ CONFIG_8139TOO=y | |||
499 | # CONFIG_SUNDANCE is not set | 506 | # CONFIG_SUNDANCE is not set |
500 | # CONFIG_TLAN is not set | 507 | # CONFIG_TLAN is not set |
501 | # CONFIG_VIA_RHINE is not set | 508 | # CONFIG_VIA_RHINE is not set |
502 | 509 | # CONFIG_SC92031 is not set | |
503 | # | 510 | # CONFIG_NETDEV_1000 is not set |
504 | # Ethernet (1000 Mbit) | 511 | # CONFIG_NETDEV_10000 is not set |
505 | # | ||
506 | # CONFIG_ACENIC is not set | ||
507 | # CONFIG_DL2K is not set | ||
508 | # CONFIG_E1000 is not set | ||
509 | # CONFIG_NS83820 is not set | ||
510 | # CONFIG_HAMACHI is not set | ||
511 | # CONFIG_YELLOWFIN is not set | ||
512 | # CONFIG_R8169 is not set | ||
513 | # CONFIG_SIS190 is not set | ||
514 | # CONFIG_SKGE is not set | ||
515 | # CONFIG_SKY2 is not set | ||
516 | # CONFIG_SK98LIN is not set | ||
517 | # CONFIG_VIA_VELOCITY is not set | ||
518 | # CONFIG_TIGON3 is not set | ||
519 | # CONFIG_BNX2 is not set | ||
520 | # CONFIG_QLA3XXX is not set | ||
521 | |||
522 | # | ||
523 | # Ethernet (10000 Mbit) | ||
524 | # | ||
525 | # CONFIG_CHELSIO_T1 is not set | ||
526 | # CONFIG_IXGB is not set | ||
527 | # CONFIG_S2IO is not set | ||
528 | # CONFIG_MYRI10GE is not set | ||
529 | |||
530 | # | ||
531 | # Token Ring devices | ||
532 | # | ||
533 | # CONFIG_TR is not set | 512 | # CONFIG_TR is not set |
534 | 513 | ||
535 | # | 514 | # |
536 | # Wireless LAN (non-hamradio) | 515 | # Wireless LAN |
537 | # | ||
538 | # CONFIG_NET_RADIO is not set | ||
539 | |||
540 | # | ||
541 | # Wan interfaces | ||
542 | # | 516 | # |
517 | # CONFIG_WLAN_PRE80211 is not set | ||
518 | # CONFIG_WLAN_80211 is not set | ||
543 | # CONFIG_WAN is not set | 519 | # CONFIG_WAN is not set |
544 | # CONFIG_FDDI is not set | 520 | # CONFIG_FDDI is not set |
545 | # CONFIG_HIPPI is not set | 521 | # CONFIG_HIPPI is not set |
@@ -549,15 +525,7 @@ CONFIG_8139TOO=y | |||
549 | # CONFIG_NETCONSOLE is not set | 525 | # CONFIG_NETCONSOLE is not set |
550 | # CONFIG_NETPOLL is not set | 526 | # CONFIG_NETPOLL is not set |
551 | # CONFIG_NET_POLL_CONTROLLER is not set | 527 | # CONFIG_NET_POLL_CONTROLLER is not set |
552 | |||
553 | # | ||
554 | # ISDN subsystem | ||
555 | # | ||
556 | # CONFIG_ISDN is not set | 528 | # CONFIG_ISDN is not set |
557 | |||
558 | # | ||
559 | # Telephony Support | ||
560 | # | ||
561 | # CONFIG_PHONE is not set | 529 | # CONFIG_PHONE is not set |
562 | 530 | ||
563 | # | 531 | # |
@@ -565,14 +533,12 @@ CONFIG_8139TOO=y | |||
565 | # | 533 | # |
566 | CONFIG_INPUT=y | 534 | CONFIG_INPUT=y |
567 | # CONFIG_INPUT_FF_MEMLESS is not set | 535 | # CONFIG_INPUT_FF_MEMLESS is not set |
536 | # CONFIG_INPUT_POLLDEV is not set | ||
568 | 537 | ||
569 | # | 538 | # |
570 | # Userland interfaces | 539 | # Userland interfaces |
571 | # | 540 | # |
572 | CONFIG_INPUT_MOUSEDEV=y | 541 | # CONFIG_INPUT_MOUSEDEV is not set |
573 | CONFIG_INPUT_MOUSEDEV_PSAUX=y | ||
574 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 | ||
575 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | ||
576 | # CONFIG_INPUT_JOYDEV is not set | 542 | # CONFIG_INPUT_JOYDEV is not set |
577 | # CONFIG_INPUT_TSDEV is not set | 543 | # CONFIG_INPUT_TSDEV is not set |
578 | # CONFIG_INPUT_EVDEV is not set | 544 | # CONFIG_INPUT_EVDEV is not set |
@@ -584,27 +550,20 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | |||
584 | # CONFIG_INPUT_KEYBOARD is not set | 550 | # CONFIG_INPUT_KEYBOARD is not set |
585 | # CONFIG_INPUT_MOUSE is not set | 551 | # CONFIG_INPUT_MOUSE is not set |
586 | # CONFIG_INPUT_JOYSTICK is not set | 552 | # CONFIG_INPUT_JOYSTICK is not set |
553 | # CONFIG_INPUT_TABLET is not set | ||
587 | # CONFIG_INPUT_TOUCHSCREEN is not set | 554 | # CONFIG_INPUT_TOUCHSCREEN is not set |
588 | # CONFIG_INPUT_MISC is not set | 555 | # CONFIG_INPUT_MISC is not set |
589 | 556 | ||
590 | # | 557 | # |
591 | # Hardware I/O ports | 558 | # Hardware I/O ports |
592 | # | 559 | # |
593 | CONFIG_SERIO=y | 560 | # CONFIG_SERIO is not set |
594 | CONFIG_SERIO_I8042=y | ||
595 | CONFIG_SERIO_SERPORT=y | ||
596 | # CONFIG_SERIO_PCIPS2 is not set | ||
597 | # CONFIG_SERIO_LIBPS2 is not set | ||
598 | # CONFIG_SERIO_RAW is not set | ||
599 | # CONFIG_GAMEPORT is not set | 561 | # CONFIG_GAMEPORT is not set |
600 | 562 | ||
601 | # | 563 | # |
602 | # Character devices | 564 | # Character devices |
603 | # | 565 | # |
604 | CONFIG_VT=y | 566 | # CONFIG_VT is not set |
605 | CONFIG_VT_CONSOLE=y | ||
606 | CONFIG_HW_CONSOLE=y | ||
607 | # CONFIG_VT_HW_CONSOLE_BINDING is not set | ||
608 | # CONFIG_SERIAL_NONSTANDARD is not set | 567 | # CONFIG_SERIAL_NONSTANDARD is not set |
609 | 568 | ||
610 | # | 569 | # |
@@ -615,42 +574,24 @@ CONFIG_HW_CONSOLE=y | |||
615 | # | 574 | # |
616 | # Non-8250 serial port support | 575 | # Non-8250 serial port support |
617 | # | 576 | # |
618 | # CONFIG_SERIAL_SH_SCI is not set | 577 | CONFIG_SERIAL_SH_SCI=y |
578 | CONFIG_SERIAL_SH_SCI_NR_UARTS=2 | ||
579 | CONFIG_SERIAL_SH_SCI_CONSOLE=y | ||
580 | CONFIG_SERIAL_CORE=y | ||
581 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
619 | # CONFIG_SERIAL_JSM is not set | 582 | # CONFIG_SERIAL_JSM is not set |
620 | CONFIG_UNIX98_PTYS=y | 583 | CONFIG_UNIX98_PTYS=y |
621 | CONFIG_LEGACY_PTYS=y | 584 | CONFIG_LEGACY_PTYS=y |
622 | CONFIG_LEGACY_PTY_COUNT=256 | 585 | CONFIG_LEGACY_PTY_COUNT=256 |
623 | |||
624 | # | ||
625 | # IPMI | ||
626 | # | ||
627 | # CONFIG_IPMI_HANDLER is not set | 586 | # CONFIG_IPMI_HANDLER is not set |
628 | |||
629 | # | ||
630 | # Watchdog Cards | ||
631 | # | ||
632 | # CONFIG_WATCHDOG is not set | 587 | # CONFIG_WATCHDOG is not set |
633 | CONFIG_HW_RANDOM=y | 588 | # CONFIG_HW_RANDOM is not set |
634 | # CONFIG_GEN_RTC is not set | ||
635 | # CONFIG_DTLK is not set | ||
636 | # CONFIG_R3964 is not set | 589 | # CONFIG_R3964 is not set |
637 | # CONFIG_APPLICOM is not set | 590 | # CONFIG_APPLICOM is not set |
638 | |||
639 | # | ||
640 | # Ftape, the floppy tape device driver | ||
641 | # | ||
642 | # CONFIG_DRM is not set | 591 | # CONFIG_DRM is not set |
643 | # CONFIG_RAW_DRIVER is not set | 592 | # CONFIG_RAW_DRIVER is not set |
644 | |||
645 | # | ||
646 | # TPM devices | ||
647 | # | ||
648 | # CONFIG_TCG_TPM is not set | 593 | # CONFIG_TCG_TPM is not set |
649 | # CONFIG_TELCLOCK is not set | 594 | CONFIG_DEVPORT=y |
650 | |||
651 | # | ||
652 | # I2C support | ||
653 | # | ||
654 | # CONFIG_I2C is not set | 595 | # CONFIG_I2C is not set |
655 | 596 | ||
656 | # | 597 | # |
@@ -658,98 +599,46 @@ CONFIG_HW_RANDOM=y | |||
658 | # | 599 | # |
659 | # CONFIG_SPI is not set | 600 | # CONFIG_SPI is not set |
660 | # CONFIG_SPI_MASTER is not set | 601 | # CONFIG_SPI_MASTER is not set |
602 | # CONFIG_W1 is not set | ||
603 | # CONFIG_POWER_SUPPLY is not set | ||
604 | # CONFIG_HWMON is not set | ||
661 | 605 | ||
662 | # | 606 | # |
663 | # Dallas's 1-wire bus | 607 | # Multifunction device drivers |
664 | # | ||
665 | |||
666 | # | ||
667 | # Hardware Monitoring support | ||
668 | # | ||
669 | CONFIG_HWMON=y | ||
670 | # CONFIG_HWMON_VID is not set | ||
671 | # CONFIG_SENSORS_ABITUGURU is not set | ||
672 | # CONFIG_SENSORS_F71805F is not set | ||
673 | # CONFIG_SENSORS_VT1211 is not set | ||
674 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
675 | |||
676 | # | ||
677 | # Misc devices | ||
678 | # | 608 | # |
609 | # CONFIG_MFD_SM501 is not set | ||
679 | 610 | ||
680 | # | 611 | # |
681 | # Multimedia devices | 612 | # Multimedia devices |
682 | # | 613 | # |
683 | # CONFIG_VIDEO_DEV is not set | 614 | # CONFIG_VIDEO_DEV is not set |
684 | CONFIG_VIDEO_V4L2=y | 615 | # CONFIG_DVB_CORE is not set |
685 | 616 | # CONFIG_DAB is not set | |
686 | # | ||
687 | # Digital Video Broadcasting Devices | ||
688 | # | ||
689 | # CONFIG_DVB is not set | ||
690 | 617 | ||
691 | # | 618 | # |
692 | # Graphics support | 619 | # Graphics support |
693 | # | 620 | # |
694 | CONFIG_FIRMWARE_EDID=y | 621 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
695 | # CONFIG_FB is not set | ||
696 | 622 | ||
697 | # | 623 | # |
698 | # Console display driver support | 624 | # Display device support |
699 | # | 625 | # |
700 | CONFIG_DUMMY_CONSOLE=y | 626 | # CONFIG_DISPLAY_SUPPORT is not set |
701 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 627 | # CONFIG_VGASTATE is not set |
628 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
629 | # CONFIG_FB is not set | ||
702 | 630 | ||
703 | # | 631 | # |
704 | # Sound | 632 | # Sound |
705 | # | 633 | # |
706 | # CONFIG_SOUND is not set | 634 | # CONFIG_SOUND is not set |
707 | 635 | # CONFIG_HID_SUPPORT is not set | |
708 | # | 636 | # CONFIG_USB_SUPPORT is not set |
709 | # USB support | ||
710 | # | ||
711 | CONFIG_USB_ARCH_HAS_HCD=y | ||
712 | CONFIG_USB_ARCH_HAS_OHCI=y | ||
713 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
714 | # CONFIG_USB is not set | ||
715 | |||
716 | # | ||
717 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | ||
718 | # | ||
719 | |||
720 | # | ||
721 | # USB Gadget Support | ||
722 | # | ||
723 | # CONFIG_USB_GADGET is not set | ||
724 | |||
725 | # | ||
726 | # MMC/SD Card support | ||
727 | # | ||
728 | # CONFIG_MMC is not set | 637 | # CONFIG_MMC is not set |
729 | |||
730 | # | ||
731 | # LED devices | ||
732 | # | ||
733 | # CONFIG_NEW_LEDS is not set | 638 | # CONFIG_NEW_LEDS is not set |
734 | |||
735 | # | ||
736 | # LED drivers | ||
737 | # | ||
738 | |||
739 | # | ||
740 | # LED Triggers | ||
741 | # | ||
742 | |||
743 | # | ||
744 | # InfiniBand support | ||
745 | # | ||
746 | # CONFIG_INFINIBAND is not set | 639 | # CONFIG_INFINIBAND is not set |
747 | 640 | ||
748 | # | 641 | # |
749 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | ||
750 | # | ||
751 | |||
752 | # | ||
753 | # Real Time Clock | 642 | # Real Time Clock |
754 | # | 643 | # |
755 | # CONFIG_RTC_CLASS is not set | 644 | # CONFIG_RTC_CLASS is not set |
@@ -768,23 +657,29 @@ CONFIG_USB_ARCH_HAS_EHCI=y | |||
768 | # | 657 | # |
769 | 658 | ||
770 | # | 659 | # |
660 | # Userspace I/O | ||
661 | # | ||
662 | # CONFIG_UIO is not set | ||
663 | |||
664 | # | ||
771 | # File systems | 665 | # File systems |
772 | # | 666 | # |
773 | CONFIG_EXT2_FS=y | 667 | CONFIG_EXT2_FS=y |
774 | # CONFIG_EXT2_FS_XATTR is not set | 668 | # CONFIG_EXT2_FS_XATTR is not set |
775 | # CONFIG_EXT2_FS_XIP is not set | 669 | # CONFIG_EXT2_FS_XIP is not set |
776 | # CONFIG_EXT3_FS is not set | 670 | # CONFIG_EXT3_FS is not set |
671 | # CONFIG_EXT4DEV_FS is not set | ||
777 | # CONFIG_REISERFS_FS is not set | 672 | # CONFIG_REISERFS_FS is not set |
778 | # CONFIG_JFS_FS is not set | 673 | # CONFIG_JFS_FS is not set |
779 | # CONFIG_FS_POSIX_ACL is not set | 674 | # CONFIG_FS_POSIX_ACL is not set |
780 | # CONFIG_XFS_FS is not set | 675 | # CONFIG_XFS_FS is not set |
676 | # CONFIG_GFS2_FS is not set | ||
781 | # CONFIG_OCFS2_FS is not set | 677 | # CONFIG_OCFS2_FS is not set |
782 | # CONFIG_MINIX_FS is not set | 678 | # CONFIG_MINIX_FS is not set |
783 | CONFIG_ROMFS_FS=y | 679 | CONFIG_ROMFS_FS=y |
784 | CONFIG_INOTIFY=y | 680 | # CONFIG_INOTIFY is not set |
785 | CONFIG_INOTIFY_USER=y | ||
786 | # CONFIG_QUOTA is not set | 681 | # CONFIG_QUOTA is not set |
787 | CONFIG_DNOTIFY=y | 682 | # CONFIG_DNOTIFY is not set |
788 | # CONFIG_AUTOFS_FS is not set | 683 | # CONFIG_AUTOFS_FS is not set |
789 | # CONFIG_AUTOFS4_FS is not set | 684 | # CONFIG_AUTOFS4_FS is not set |
790 | # CONFIG_FUSE_FS is not set | 685 | # CONFIG_FUSE_FS is not set |
@@ -826,6 +721,7 @@ CONFIG_RAMFS=y | |||
826 | # CONFIG_BEFS_FS is not set | 721 | # CONFIG_BEFS_FS is not set |
827 | # CONFIG_BFS_FS is not set | 722 | # CONFIG_BFS_FS is not set |
828 | # CONFIG_EFS_FS is not set | 723 | # CONFIG_EFS_FS is not set |
724 | # CONFIG_JFFS2_FS is not set | ||
829 | CONFIG_CRAMFS=y | 725 | CONFIG_CRAMFS=y |
830 | # CONFIG_VXFS_FS is not set | 726 | # CONFIG_VXFS_FS is not set |
831 | # CONFIG_HPFS_FS is not set | 727 | # CONFIG_HPFS_FS is not set |
@@ -836,25 +732,13 @@ CONFIG_CRAMFS=y | |||
836 | # | 732 | # |
837 | # Network File Systems | 733 | # Network File Systems |
838 | # | 734 | # |
839 | CONFIG_NFS_FS=y | 735 | # CONFIG_NFS_FS is not set |
840 | CONFIG_NFS_V3=y | ||
841 | # CONFIG_NFS_V3_ACL is not set | ||
842 | # CONFIG_NFS_V4 is not set | ||
843 | # CONFIG_NFS_DIRECTIO is not set | ||
844 | # CONFIG_NFSD is not set | 736 | # CONFIG_NFSD is not set |
845 | CONFIG_ROOT_NFS=y | ||
846 | CONFIG_LOCKD=y | ||
847 | CONFIG_LOCKD_V4=y | ||
848 | CONFIG_NFS_COMMON=y | ||
849 | CONFIG_SUNRPC=y | ||
850 | # CONFIG_RPCSEC_GSS_KRB5 is not set | ||
851 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | ||
852 | # CONFIG_SMB_FS is not set | 737 | # CONFIG_SMB_FS is not set |
853 | # CONFIG_CIFS is not set | 738 | # CONFIG_CIFS is not set |
854 | # CONFIG_NCP_FS is not set | 739 | # CONFIG_NCP_FS is not set |
855 | # CONFIG_CODA_FS is not set | 740 | # CONFIG_CODA_FS is not set |
856 | # CONFIG_AFS_FS is not set | 741 | # CONFIG_AFS_FS is not set |
857 | # CONFIG_9P_FS is not set | ||
858 | 742 | ||
859 | # | 743 | # |
860 | # Partition Types | 744 | # Partition Types |
@@ -868,6 +752,11 @@ CONFIG_MSDOS_PARTITION=y | |||
868 | # CONFIG_NLS is not set | 752 | # CONFIG_NLS is not set |
869 | 753 | ||
870 | # | 754 | # |
755 | # Distributed Lock Manager | ||
756 | # | ||
757 | # CONFIG_DLM is not set | ||
758 | |||
759 | # | ||
871 | # Profiling support | 760 | # Profiling support |
872 | # | 761 | # |
873 | # CONFIG_PROFILING is not set | 762 | # CONFIG_PROFILING is not set |
@@ -875,36 +764,38 @@ CONFIG_MSDOS_PARTITION=y | |||
875 | # | 764 | # |
876 | # Kernel hacking | 765 | # Kernel hacking |
877 | # | 766 | # |
767 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
878 | # CONFIG_PRINTK_TIME is not set | 768 | # CONFIG_PRINTK_TIME is not set |
879 | CONFIG_ENABLE_MUST_CHECK=y | 769 | CONFIG_ENABLE_MUST_CHECK=y |
880 | # CONFIG_MAGIC_SYSRQ is not set | 770 | # CONFIG_MAGIC_SYSRQ is not set |
881 | # CONFIG_UNUSED_SYMBOLS is not set | 771 | # CONFIG_UNUSED_SYMBOLS is not set |
772 | # CONFIG_DEBUG_FS is not set | ||
773 | # CONFIG_HEADERS_CHECK is not set | ||
882 | # CONFIG_DEBUG_KERNEL is not set | 774 | # CONFIG_DEBUG_KERNEL is not set |
883 | CONFIG_LOG_BUF_SHIFT=14 | ||
884 | # CONFIG_DEBUG_BUGVERBOSE is not set | 775 | # CONFIG_DEBUG_BUGVERBOSE is not set |
885 | # CONFIG_DEBUG_FS is not set | ||
886 | # CONFIG_UNWIND_INFO is not set | ||
887 | # CONFIG_SH_STANDARD_BIOS is not set | 776 | # CONFIG_SH_STANDARD_BIOS is not set |
888 | # CONFIG_EARLY_SCIF_CONSOLE is not set | 777 | # CONFIG_EARLY_SCIF_CONSOLE is not set |
889 | # CONFIG_KGDB is not set | 778 | # CONFIG_SH_KGDB is not set |
890 | 779 | ||
891 | # | 780 | # |
892 | # Security options | 781 | # Security options |
893 | # | 782 | # |
894 | # CONFIG_KEYS is not set | 783 | # CONFIG_KEYS is not set |
895 | # CONFIG_SECURITY is not set | 784 | # CONFIG_SECURITY is not set |
896 | |||
897 | # | ||
898 | # Cryptographic options | ||
899 | # | ||
900 | # CONFIG_CRYPTO is not set | 785 | # CONFIG_CRYPTO is not set |
901 | 786 | ||
902 | # | 787 | # |
903 | # Library routines | 788 | # Library routines |
904 | # | 789 | # |
790 | CONFIG_BITREVERSE=y | ||
905 | # CONFIG_CRC_CCITT is not set | 791 | # CONFIG_CRC_CCITT is not set |
906 | # CONFIG_CRC16 is not set | 792 | # CONFIG_CRC16 is not set |
793 | # CONFIG_CRC_ITU_T is not set | ||
907 | CONFIG_CRC32=y | 794 | CONFIG_CRC32=y |
795 | # CONFIG_CRC7 is not set | ||
908 | # CONFIG_LIBCRC32C is not set | 796 | # CONFIG_LIBCRC32C is not set |
909 | CONFIG_ZLIB_INFLATE=y | 797 | CONFIG_ZLIB_INFLATE=y |
910 | CONFIG_PLIST=y | 798 | CONFIG_PLIST=y |
799 | CONFIG_HAS_IOMEM=y | ||
800 | CONFIG_HAS_IOPORT=y | ||
801 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/sh/configs/systemh_defconfig b/arch/sh/configs/systemh_defconfig index c16350dac01b..af921b5a9d46 100644 --- a/arch/sh/configs/systemh_defconfig +++ b/arch/sh/configs/systemh_defconfig | |||
@@ -141,7 +141,7 @@ CONFIG_CPU_SH4=y | |||
141 | # CONFIG_CPU_SUBTYPE_SH7091 is not set | 141 | # CONFIG_CPU_SUBTYPE_SH7091 is not set |
142 | # CONFIG_CPU_SUBTYPE_SH7750R is not set | 142 | # CONFIG_CPU_SUBTYPE_SH7750R is not set |
143 | # CONFIG_CPU_SUBTYPE_SH7750S is not set | 143 | # CONFIG_CPU_SUBTYPE_SH7750S is not set |
144 | CONFIG_CPU_SUBTYPE_SH7751=y | 144 | # CONFIG_CPU_SUBTYPE_SH7751 is not set |
145 | CONFIG_CPU_SUBTYPE_SH7751R=y | 145 | CONFIG_CPU_SUBTYPE_SH7751R=y |
146 | # CONFIG_CPU_SUBTYPE_SH7760 is not set | 146 | # CONFIG_CPU_SUBTYPE_SH7760 is not set |
147 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set | 147 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set |
diff --git a/arch/sh/configs/titan_defconfig b/arch/sh/configs/titan_defconfig index 41049cf14b79..0686ed6fe17a 100644 --- a/arch/sh/configs/titan_defconfig +++ b/arch/sh/configs/titan_defconfig | |||
@@ -147,7 +147,7 @@ CONFIG_CPU_SH4=y | |||
147 | # CONFIG_CPU_SUBTYPE_SH7091 is not set | 147 | # CONFIG_CPU_SUBTYPE_SH7091 is not set |
148 | # CONFIG_CPU_SUBTYPE_SH7750R is not set | 148 | # CONFIG_CPU_SUBTYPE_SH7750R is not set |
149 | # CONFIG_CPU_SUBTYPE_SH7750S is not set | 149 | # CONFIG_CPU_SUBTYPE_SH7750S is not set |
150 | CONFIG_CPU_SUBTYPE_SH7751=y | 150 | # CONFIG_CPU_SUBTYPE_SH7751 is not set |
151 | CONFIG_CPU_SUBTYPE_SH7751R=y | 151 | CONFIG_CPU_SUBTYPE_SH7751R=y |
152 | # CONFIG_CPU_SUBTYPE_SH7760 is not set | 152 | # CONFIG_CPU_SUBTYPE_SH7760 is not set |
153 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set | 153 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set |
diff --git a/arch/sh/kernel/cpu/sh3/entry.S b/arch/sh/kernel/cpu/sh3/entry.S index d8e122971c3e..0d12a124055c 100644 --- a/arch/sh/kernel/cpu/sh3/entry.S +++ b/arch/sh/kernel/cpu/sh3/entry.S | |||
@@ -149,8 +149,7 @@ call_dpf: | |||
149 | lds r10, pr | 149 | lds r10, pr |
150 | rts | 150 | rts |
151 | nop | 151 | nop |
152 | 0: sti | 152 | 0: mov.l 3f, r0 |
153 | mov.l 3f, r0 | ||
154 | mov r9, r6 | 153 | mov r9, r6 |
155 | mov r8, r5 | 154 | mov r8, r5 |
156 | jmp @r0 | 155 | jmp @r0 |
diff --git a/arch/sh/kernel/traps.c b/arch/sh/kernel/traps.c index 502d43e4785c..67015044d74a 100644 --- a/arch/sh/kernel/traps.c +++ b/arch/sh/kernel/traps.c | |||
@@ -854,9 +854,14 @@ void __init trap_init(void) | |||
854 | set_exception_table_evt(0x800, do_reserved_inst); | 854 | set_exception_table_evt(0x800, do_reserved_inst); |
855 | set_exception_table_evt(0x820, do_illegal_slot_inst); | 855 | set_exception_table_evt(0x820, do_illegal_slot_inst); |
856 | #elif defined(CONFIG_SH_FPU) | 856 | #elif defined(CONFIG_SH_FPU) |
857 | #ifdef CONFIG_CPU_SUBTYPE_SHX3 | ||
858 | set_exception_table_evt(0xd80, do_fpu_state_restore); | ||
859 | set_exception_table_evt(0xda0, do_fpu_state_restore); | ||
860 | #else | ||
857 | set_exception_table_evt(0x800, do_fpu_state_restore); | 861 | set_exception_table_evt(0x800, do_fpu_state_restore); |
858 | set_exception_table_evt(0x820, do_fpu_state_restore); | 862 | set_exception_table_evt(0x820, do_fpu_state_restore); |
859 | #endif | 863 | #endif |
864 | #endif | ||
860 | 865 | ||
861 | #ifdef CONFIG_CPU_SH2 | 866 | #ifdef CONFIG_CPU_SH2 |
862 | set_exception_table_vec(TRAP_ADDRESS_ERROR, address_error_handler); | 867 | set_exception_table_vec(TRAP_ADDRESS_ERROR, address_error_handler); |
diff --git a/arch/sh/mm/Makefile b/arch/sh/mm/Makefile index d677d7f3afc1..4061e89d84d0 100644 --- a/arch/sh/mm/Makefile +++ b/arch/sh/mm/Makefile | |||
@@ -8,7 +8,9 @@ obj-$(CONFIG_CPU_SH2) += cache-sh2.o | |||
8 | obj-$(CONFIG_CPU_SH3) += cache-sh3.o | 8 | obj-$(CONFIG_CPU_SH3) += cache-sh3.o |
9 | obj-$(CONFIG_CPU_SH4) += cache-sh4.o | 9 | obj-$(CONFIG_CPU_SH4) += cache-sh4.o |
10 | 10 | ||
11 | mmu-y := fault-nommu.o tlb-nommu.o pg-nommu.o | 11 | mmu-y := tlb-nommu.o pg-nommu.o |
12 | mmu-$(CONFIG_CPU_SH3) += fault-nommu.o | ||
13 | mmu-$(CONFIG_CPU_SH4) += fault-nommu.o | ||
12 | mmu-$(CONFIG_MMU) := fault.o clear_page.o copy_page.o tlb-flush.o \ | 14 | mmu-$(CONFIG_MMU) := fault.o clear_page.o copy_page.o tlb-flush.o \ |
13 | ioremap.o | 15 | ioremap.o |
14 | 16 | ||
diff --git a/arch/sh/mm/fault-nommu.c b/arch/sh/mm/fault-nommu.c index 923cb456819b..c6f5b51ec2c7 100644 --- a/arch/sh/mm/fault-nommu.c +++ b/arch/sh/mm/fault-nommu.c | |||
@@ -1,47 +1,33 @@ | |||
1 | /* | 1 | /* |
2 | * arch/sh/mm/fault-nommu.c | 2 | * arch/sh/mm/fault-nommu.c |
3 | * | 3 | * |
4 | * Copyright (C) 2002 Paul Mundt | 4 | * Copyright (C) 2002 - 2007 Paul Mundt |
5 | * | 5 | * |
6 | * Based on linux/arch/sh/mm/fault.c: | 6 | * Based on linux/arch/sh/mm/fault.c: |
7 | * Copyright (C) 1999 Niibe Yutaka | 7 | * Copyright (C) 1999 Niibe Yutaka |
8 | * | 8 | * |
9 | * Released under the terms of the GNU GPL v2.0. | 9 | * Released under the terms of the GNU GPL v2.0. |
10 | */ | 10 | */ |
11 | |||
12 | #include <linux/signal.h> | ||
13 | #include <linux/sched.h> | ||
14 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
15 | #include <linux/errno.h> | ||
16 | #include <linux/string.h> | ||
17 | #include <linux/types.h> | ||
18 | #include <linux/ptrace.h> | ||
19 | #include <linux/mman.h> | ||
20 | #include <linux/mm.h> | 12 | #include <linux/mm.h> |
21 | #include <linux/smp.h> | 13 | #include <linux/hardirq.h> |
22 | #include <linux/interrupt.h> | 14 | #include <linux/kprobes.h> |
23 | |||
24 | #include <asm/system.h> | 15 | #include <asm/system.h> |
25 | #include <asm/io.h> | 16 | #include <asm/ptrace.h> |
26 | #include <asm/uaccess.h> | ||
27 | #include <asm/pgalloc.h> | ||
28 | #include <asm/mmu_context.h> | ||
29 | #include <asm/cacheflush.h> | ||
30 | |||
31 | #if defined(CONFIG_SH_KGDB) | ||
32 | #include <asm/kgdb.h> | 17 | #include <asm/kgdb.h> |
33 | #endif | ||
34 | |||
35 | extern void die(const char *,struct pt_regs *,long); | ||
36 | 18 | ||
37 | /* | 19 | /* |
38 | * This routine handles page faults. It determines the address, | 20 | * This routine handles page faults. It determines the address, |
39 | * and the problem, and then passes it off to one of the appropriate | 21 | * and the problem, and then passes it off to one of the appropriate |
40 | * routines. | 22 | * routines. |
41 | */ | 23 | */ |
42 | asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long writeaccess, | 24 | asmlinkage void __kprobes do_page_fault(struct pt_regs *regs, |
43 | unsigned long address) | 25 | unsigned long writeaccess, |
26 | unsigned long address) | ||
44 | { | 27 | { |
28 | trace_hardirqs_on(); | ||
29 | local_irq_enable(); | ||
30 | |||
45 | #if defined(CONFIG_SH_KGDB) | 31 | #if defined(CONFIG_SH_KGDB) |
46 | if (kgdb_nofault && kgdb_bus_err_hook) | 32 | if (kgdb_nofault && kgdb_bus_err_hook) |
47 | kgdb_bus_err_hook(); | 33 | kgdb_bus_err_hook(); |
@@ -65,17 +51,14 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long writeaccess, | |||
65 | do_exit(SIGKILL); | 51 | do_exit(SIGKILL); |
66 | } | 52 | } |
67 | 53 | ||
68 | asmlinkage int __do_page_fault(struct pt_regs *regs, unsigned long writeaccess, | 54 | asmlinkage int __kprobes __do_page_fault(struct pt_regs *regs, |
69 | unsigned long address) | 55 | unsigned long writeaccess, |
56 | unsigned long address) | ||
70 | { | 57 | { |
71 | #if defined(CONFIG_SH_KGDB) | 58 | #if defined(CONFIG_SH_KGDB) |
72 | if (kgdb_nofault && kgdb_bus_err_hook) | 59 | if (kgdb_nofault && kgdb_bus_err_hook) |
73 | kgdb_bus_err_hook(); | 60 | kgdb_bus_err_hook(); |
74 | #endif | 61 | #endif |
75 | 62 | ||
76 | if (address >= TASK_SIZE) | 63 | return (address >= TASK_SIZE); |
77 | return 1; | ||
78 | |||
79 | return 0; | ||
80 | } | 64 | } |
81 | |||
diff --git a/arch/sh/mm/fault.c b/arch/sh/mm/fault.c index 964c6767dc73..04a39aa7f1f9 100644 --- a/arch/sh/mm/fault.c +++ b/arch/sh/mm/fault.c | |||
@@ -184,8 +184,7 @@ no_context: | |||
184 | printk(KERN_ALERT "pc = %08lx\n", regs->pc); | 184 | printk(KERN_ALERT "pc = %08lx\n", regs->pc); |
185 | page = (unsigned long)get_TTB(); | 185 | page = (unsigned long)get_TTB(); |
186 | if (page) { | 186 | if (page) { |
187 | page = ((__typeof__(page) *) __va(page))[address >> | 187 | page = ((__typeof__(page) *)page)[address >> PGDIR_SHIFT]; |
188 | PGDIR_SHIFT]; | ||
189 | printk(KERN_ALERT "*pde = %08lx\n", page); | 188 | printk(KERN_ALERT "*pde = %08lx\n", page); |
190 | if (page & _PAGE_PRESENT) { | 189 | if (page & _PAGE_PRESENT) { |
191 | page &= PAGE_MASK; | 190 | page &= PAGE_MASK; |
diff --git a/arch/sparc/kernel/entry.S b/arch/sparc/kernel/entry.S index eac38388f5fd..88d2cefd01be 100644 --- a/arch/sparc/kernel/entry.S +++ b/arch/sparc/kernel/entry.S | |||
@@ -1,7 +1,6 @@ | |||
1 | /* $Id: entry.S,v 1.170 2001/11/13 00:57:05 davem Exp $ | 1 | /* arch/sparc/kernel/entry.S: Sparc trap low-level entry points. |
2 | * arch/sparc/kernel/entry.S: Sparc trap low-level entry points. | ||
3 | * | 2 | * |
4 | * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu) | 3 | * Copyright (C) 1995, 2007 David S. Miller (davem@davemloft.net) |
5 | * Copyright (C) 1996 Eddie C. Dost (ecd@skynet.be) | 4 | * Copyright (C) 1996 Eddie C. Dost (ecd@skynet.be) |
6 | * Copyright (C) 1996 Miguel de Icaza (miguel@nuclecu.unam.mx) | 5 | * Copyright (C) 1996 Miguel de Icaza (miguel@nuclecu.unam.mx) |
7 | * Copyright (C) 1996-1999 Jakub Jelinek (jj@sunsite.mff.cuni.cz) | 6 | * Copyright (C) 1996-1999 Jakub Jelinek (jj@sunsite.mff.cuni.cz) |
@@ -129,7 +128,7 @@ trap_low: | |||
129 | RESTORE_ALL | 128 | RESTORE_ALL |
130 | #endif | 129 | #endif |
131 | 130 | ||
132 | #ifdef CONFIG_BLK_DEV_FD | 131 | #if defined(CONFIG_BLK_DEV_FD) || defined(CONFIG_BLK_DEV_FD_MODULE) |
133 | .text | 132 | .text |
134 | .align 4 | 133 | .align 4 |
135 | .globl floppy_hardint | 134 | .globl floppy_hardint |
diff --git a/arch/sparc/kernel/irq.c b/arch/sparc/kernel/irq.c index 75b2240ad0f9..b76dc03fc318 100644 --- a/arch/sparc/kernel/irq.c +++ b/arch/sparc/kernel/irq.c | |||
@@ -351,34 +351,14 @@ void handler_irq(int irq, struct pt_regs * regs) | |||
351 | set_irq_regs(old_regs); | 351 | set_irq_regs(old_regs); |
352 | } | 352 | } |
353 | 353 | ||
354 | #ifdef CONFIG_BLK_DEV_FD | 354 | #if defined(CONFIG_BLK_DEV_FD) || defined(CONFIG_BLK_DEV_FD_MODULE) |
355 | extern void floppy_interrupt(int irq, void *dev_id); | ||
356 | |||
357 | void sparc_floppy_irq(int irq, void *dev_id, struct pt_regs *regs) | ||
358 | { | ||
359 | struct pt_regs *old_regs; | ||
360 | int cpu = smp_processor_id(); | ||
361 | |||
362 | old_regs = set_irq_regs(regs); | ||
363 | disable_pil_irq(irq); | ||
364 | irq_enter(); | ||
365 | kstat_cpu(cpu).irqs[irq]++; | ||
366 | floppy_interrupt(irq, dev_id); | ||
367 | irq_exit(); | ||
368 | enable_pil_irq(irq); | ||
369 | set_irq_regs(old_regs); | ||
370 | // XXX Eek, it's totally changed with preempt_count() and such | ||
371 | // if (softirq_pending(cpu)) | ||
372 | // do_softirq(); | ||
373 | } | ||
374 | #endif | ||
375 | 355 | ||
376 | /* Fast IRQs on the Sparc can only have one routine attached to them, | 356 | /* Fast IRQs on the Sparc can only have one routine attached to them, |
377 | * thus no sharing possible. | 357 | * thus no sharing possible. |
378 | */ | 358 | */ |
379 | int request_fast_irq(unsigned int irq, | 359 | static int request_fast_irq(unsigned int irq, |
380 | irq_handler_t handler, | 360 | void (*handler)(void), |
381 | unsigned long irqflags, const char *devname) | 361 | unsigned long irqflags, const char *devname) |
382 | { | 362 | { |
383 | struct irqaction *action; | 363 | struct irqaction *action; |
384 | unsigned long flags; | 364 | unsigned long flags; |
@@ -457,7 +437,6 @@ int request_fast_irq(unsigned int irq, | |||
457 | */ | 437 | */ |
458 | flush_cache_all(); | 438 | flush_cache_all(); |
459 | 439 | ||
460 | action->handler = handler; | ||
461 | action->flags = irqflags; | 440 | action->flags = irqflags; |
462 | cpus_clear(action->mask); | 441 | cpus_clear(action->mask); |
463 | action->name = devname; | 442 | action->name = devname; |
@@ -475,6 +454,61 @@ out: | |||
475 | return ret; | 454 | return ret; |
476 | } | 455 | } |
477 | 456 | ||
457 | /* These variables are used to access state from the assembler | ||
458 | * interrupt handler, floppy_hardint, so we cannot put these in | ||
459 | * the floppy driver image because that would not work in the | ||
460 | * modular case. | ||
461 | */ | ||
462 | volatile unsigned char *fdc_status; | ||
463 | EXPORT_SYMBOL(fdc_status); | ||
464 | |||
465 | char *pdma_vaddr; | ||
466 | EXPORT_SYMBOL(pdma_vaddr); | ||
467 | |||
468 | unsigned long pdma_size; | ||
469 | EXPORT_SYMBOL(pdma_size); | ||
470 | |||
471 | volatile int doing_pdma; | ||
472 | EXPORT_SYMBOL(doing_pdma); | ||
473 | |||
474 | char *pdma_base; | ||
475 | EXPORT_SYMBOL(pdma_base); | ||
476 | |||
477 | unsigned long pdma_areasize; | ||
478 | EXPORT_SYMBOL(pdma_areasize); | ||
479 | |||
480 | extern void floppy_hardint(void); | ||
481 | |||
482 | static irqreturn_t (*floppy_irq_handler)(int irq, void *dev_id); | ||
483 | |||
484 | void sparc_floppy_irq(int irq, void *dev_id, struct pt_regs *regs) | ||
485 | { | ||
486 | struct pt_regs *old_regs; | ||
487 | int cpu = smp_processor_id(); | ||
488 | |||
489 | old_regs = set_irq_regs(regs); | ||
490 | disable_pil_irq(irq); | ||
491 | irq_enter(); | ||
492 | kstat_cpu(cpu).irqs[irq]++; | ||
493 | floppy_irq_handler(irq, dev_id); | ||
494 | irq_exit(); | ||
495 | enable_pil_irq(irq); | ||
496 | set_irq_regs(old_regs); | ||
497 | // XXX Eek, it's totally changed with preempt_count() and such | ||
498 | // if (softirq_pending(cpu)) | ||
499 | // do_softirq(); | ||
500 | } | ||
501 | |||
502 | int sparc_floppy_request_irq(int irq, unsigned long flags, | ||
503 | irqreturn_t (*irq_handler)(int irq, void *)) | ||
504 | { | ||
505 | floppy_irq_handler = irq_handler; | ||
506 | return request_fast_irq(irq, floppy_hardint, flags, "floppy"); | ||
507 | } | ||
508 | EXPORT_SYMBOL(sparc_floppy_request_irq); | ||
509 | |||
510 | #endif | ||
511 | |||
478 | int request_irq(unsigned int irq, | 512 | int request_irq(unsigned int irq, |
479 | irq_handler_t handler, | 513 | irq_handler_t handler, |
480 | unsigned long irqflags, const char * devname, void *dev_id) | 514 | unsigned long irqflags, const char * devname, void *dev_id) |
diff --git a/arch/sparc/kernel/sparc_ksyms.c b/arch/sparc/kernel/sparc_ksyms.c index 7b4abde43028..ef647acc479e 100644 --- a/arch/sparc/kernel/sparc_ksyms.c +++ b/arch/sparc/kernel/sparc_ksyms.c | |||
@@ -143,7 +143,6 @@ EXPORT_SYMBOL(mstk48t02_regs); | |||
143 | EXPORT_SYMBOL(set_auxio); | 143 | EXPORT_SYMBOL(set_auxio); |
144 | EXPORT_SYMBOL(get_auxio); | 144 | EXPORT_SYMBOL(get_auxio); |
145 | #endif | 145 | #endif |
146 | EXPORT_SYMBOL(request_fast_irq); | ||
147 | EXPORT_SYMBOL(io_remap_pfn_range); | 146 | EXPORT_SYMBOL(io_remap_pfn_range); |
148 | /* P3: iounit_xxx may be needed, sun4d users */ | 147 | /* P3: iounit_xxx may be needed, sun4d users */ |
149 | /* EXPORT_SYMBOL(iounit_map_dma_init); */ | 148 | /* EXPORT_SYMBOL(iounit_map_dma_init); */ |
diff --git a/drivers/firewire/fw-ohci.c b/drivers/firewire/fw-ohci.c index db703758db98..7e427b4c74b5 100644 --- a/drivers/firewire/fw-ohci.c +++ b/drivers/firewire/fw-ohci.c | |||
@@ -907,6 +907,8 @@ static void bus_reset_tasklet(unsigned long data) | |||
907 | int self_id_count, i, j, reg; | 907 | int self_id_count, i, j, reg; |
908 | int generation, new_generation; | 908 | int generation, new_generation; |
909 | unsigned long flags; | 909 | unsigned long flags; |
910 | void *free_rom = NULL; | ||
911 | dma_addr_t free_rom_bus = 0; | ||
910 | 912 | ||
911 | reg = reg_read(ohci, OHCI1394_NodeID); | 913 | reg = reg_read(ohci, OHCI1394_NodeID); |
912 | if (!(reg & OHCI1394_NodeID_idValid)) { | 914 | if (!(reg & OHCI1394_NodeID_idValid)) { |
@@ -970,8 +972,8 @@ static void bus_reset_tasklet(unsigned long data) | |||
970 | */ | 972 | */ |
971 | 973 | ||
972 | if (ohci->next_config_rom != NULL) { | 974 | if (ohci->next_config_rom != NULL) { |
973 | dma_free_coherent(ohci->card.device, CONFIG_ROM_SIZE, | 975 | free_rom = ohci->config_rom; |
974 | ohci->config_rom, ohci->config_rom_bus); | 976 | free_rom_bus = ohci->config_rom_bus; |
975 | ohci->config_rom = ohci->next_config_rom; | 977 | ohci->config_rom = ohci->next_config_rom; |
976 | ohci->config_rom_bus = ohci->next_config_rom_bus; | 978 | ohci->config_rom_bus = ohci->next_config_rom_bus; |
977 | ohci->next_config_rom = NULL; | 979 | ohci->next_config_rom = NULL; |
@@ -990,6 +992,10 @@ static void bus_reset_tasklet(unsigned long data) | |||
990 | 992 | ||
991 | spin_unlock_irqrestore(&ohci->lock, flags); | 993 | spin_unlock_irqrestore(&ohci->lock, flags); |
992 | 994 | ||
995 | if (free_rom) | ||
996 | dma_free_coherent(ohci->card.device, CONFIG_ROM_SIZE, | ||
997 | free_rom, free_rom_bus); | ||
998 | |||
993 | fw_core_handle_bus_reset(&ohci->card, ohci->node_id, generation, | 999 | fw_core_handle_bus_reset(&ohci->card, ohci->node_id, generation, |
994 | self_id_count, ohci->self_id_buffer); | 1000 | self_id_count, ohci->self_id_buffer); |
995 | } | 1001 | } |
@@ -1186,7 +1192,7 @@ ohci_set_config_rom(struct fw_card *card, u32 *config_rom, size_t length) | |||
1186 | { | 1192 | { |
1187 | struct fw_ohci *ohci; | 1193 | struct fw_ohci *ohci; |
1188 | unsigned long flags; | 1194 | unsigned long flags; |
1189 | int retval = 0; | 1195 | int retval = -EBUSY; |
1190 | __be32 *next_config_rom; | 1196 | __be32 *next_config_rom; |
1191 | dma_addr_t next_config_rom_bus; | 1197 | dma_addr_t next_config_rom_bus; |
1192 | 1198 | ||
@@ -1240,10 +1246,7 @@ ohci_set_config_rom(struct fw_card *card, u32 *config_rom, size_t length) | |||
1240 | 1246 | ||
1241 | reg_write(ohci, OHCI1394_ConfigROMmap, | 1247 | reg_write(ohci, OHCI1394_ConfigROMmap, |
1242 | ohci->next_config_rom_bus); | 1248 | ohci->next_config_rom_bus); |
1243 | } else { | 1249 | retval = 0; |
1244 | dma_free_coherent(ohci->card.device, CONFIG_ROM_SIZE, | ||
1245 | next_config_rom, next_config_rom_bus); | ||
1246 | retval = -EBUSY; | ||
1247 | } | 1250 | } |
1248 | 1251 | ||
1249 | spin_unlock_irqrestore(&ohci->lock, flags); | 1252 | spin_unlock_irqrestore(&ohci->lock, flags); |
@@ -1257,6 +1260,9 @@ ohci_set_config_rom(struct fw_card *card, u32 *config_rom, size_t length) | |||
1257 | */ | 1260 | */ |
1258 | if (retval == 0) | 1261 | if (retval == 0) |
1259 | fw_core_initiate_bus_reset(&ohci->card, 1); | 1262 | fw_core_initiate_bus_reset(&ohci->card, 1); |
1263 | else | ||
1264 | dma_free_coherent(ohci->card.device, CONFIG_ROM_SIZE, | ||
1265 | next_config_rom, next_config_rom_bus); | ||
1260 | 1266 | ||
1261 | return retval; | 1267 | return retval; |
1262 | } | 1268 | } |
diff --git a/drivers/firewire/fw-sbp2.c b/drivers/firewire/fw-sbp2.c index 3e4a369d0057..ba816ef6def1 100644 --- a/drivers/firewire/fw-sbp2.c +++ b/drivers/firewire/fw-sbp2.c | |||
@@ -984,6 +984,7 @@ static int sbp2_scsi_queuecommand(struct scsi_cmnd *cmd, scsi_done_fn_t done) | |||
984 | struct fw_unit *unit = sd->unit; | 984 | struct fw_unit *unit = sd->unit; |
985 | struct fw_device *device = fw_device(unit->device.parent); | 985 | struct fw_device *device = fw_device(unit->device.parent); |
986 | struct sbp2_command_orb *orb; | 986 | struct sbp2_command_orb *orb; |
987 | unsigned max_payload; | ||
987 | 988 | ||
988 | /* | 989 | /* |
989 | * Bidirectional commands are not yet implemented, and unknown | 990 | * Bidirectional commands are not yet implemented, and unknown |
@@ -1017,8 +1018,10 @@ static int sbp2_scsi_queuecommand(struct scsi_cmnd *cmd, scsi_done_fn_t done) | |||
1017 | * specifies the max payload size as 2 ^ (max_payload + 2), so | 1018 | * specifies the max payload size as 2 ^ (max_payload + 2), so |
1018 | * if we set this to max_speed + 7, we get the right value. | 1019 | * if we set this to max_speed + 7, we get the right value. |
1019 | */ | 1020 | */ |
1021 | max_payload = min(device->max_speed + 7, | ||
1022 | device->card->max_receive - 1); | ||
1020 | orb->request.misc = | 1023 | orb->request.misc = |
1021 | COMMAND_ORB_MAX_PAYLOAD(device->max_speed + 7) | | 1024 | COMMAND_ORB_MAX_PAYLOAD(max_payload) | |
1022 | COMMAND_ORB_SPEED(device->max_speed) | | 1025 | COMMAND_ORB_SPEED(device->max_speed) | |
1023 | COMMAND_ORB_NOTIFY; | 1026 | COMMAND_ORB_NOTIFY; |
1024 | 1027 | ||
diff --git a/drivers/firewire/fw-transaction.c b/drivers/firewire/fw-transaction.c index 3ce8e2fbe15f..3e1cb12e43cd 100644 --- a/drivers/firewire/fw-transaction.c +++ b/drivers/firewire/fw-transaction.c | |||
@@ -734,7 +734,7 @@ fw_core_handle_response(struct fw_card *card, struct fw_packet *p) | |||
734 | } | 734 | } |
735 | EXPORT_SYMBOL(fw_core_handle_response); | 735 | EXPORT_SYMBOL(fw_core_handle_response); |
736 | 736 | ||
737 | const struct fw_address_region topology_map_region = | 737 | static const struct fw_address_region topology_map_region = |
738 | { .start = 0xfffff0001000ull, .end = 0xfffff0001400ull, }; | 738 | { .start = 0xfffff0001000ull, .end = 0xfffff0001400ull, }; |
739 | 739 | ||
740 | static void | 740 | static void |
@@ -772,7 +772,7 @@ static struct fw_address_handler topology_map = { | |||
772 | .address_callback = handle_topology_map, | 772 | .address_callback = handle_topology_map, |
773 | }; | 773 | }; |
774 | 774 | ||
775 | const struct fw_address_region registers_region = | 775 | static const struct fw_address_region registers_region = |
776 | { .start = 0xfffff0000000ull, .end = 0xfffff0000400ull, }; | 776 | { .start = 0xfffff0000000ull, .end = 0xfffff0000400ull, }; |
777 | 777 | ||
778 | static void | 778 | static void |
diff --git a/drivers/firewire/fw-transaction.h b/drivers/firewire/fw-transaction.h index 5ceaccd10564..fa7967b57408 100644 --- a/drivers/firewire/fw-transaction.h +++ b/drivers/firewire/fw-transaction.h | |||
@@ -231,7 +231,7 @@ struct fw_card { | |||
231 | unsigned long reset_jiffies; | 231 | unsigned long reset_jiffies; |
232 | 232 | ||
233 | unsigned long long guid; | 233 | unsigned long long guid; |
234 | int max_receive; | 234 | unsigned max_receive; |
235 | int link_speed; | 235 | int link_speed; |
236 | int config_rom_generation; | 236 | int config_rom_generation; |
237 | 237 | ||
diff --git a/drivers/ieee1394/Kconfig b/drivers/ieee1394/Kconfig index 8012b3b0ce75..545663ef820b 100644 --- a/drivers/ieee1394/Kconfig +++ b/drivers/ieee1394/Kconfig | |||
@@ -97,7 +97,7 @@ config IEEE1394_SBP2 | |||
97 | 97 | ||
98 | config IEEE1394_SBP2_PHYS_DMA | 98 | config IEEE1394_SBP2_PHYS_DMA |
99 | bool "Enable replacement for physical DMA in SBP2" | 99 | bool "Enable replacement for physical DMA in SBP2" |
100 | depends on IEEE1394 && IEEE1394_SBP2 && EXPERIMENTAL && (X86_32 || PPC_32) | 100 | depends on IEEE1394_SBP2 && VIRT_TO_BUS && EXPERIMENTAL |
101 | help | 101 | help |
102 | This builds sbp2 for use with non-OHCI host adapters which do not | 102 | This builds sbp2 for use with non-OHCI host adapters which do not |
103 | support physical DMA or for when ohci1394 is run with phys_dma=0. | 103 | support physical DMA or for when ohci1394 is run with phys_dma=0. |
diff --git a/drivers/ieee1394/sbp2.c b/drivers/ieee1394/sbp2.c index e882cb951b47..47dbe8f17e82 100644 --- a/drivers/ieee1394/sbp2.c +++ b/drivers/ieee1394/sbp2.c | |||
@@ -773,11 +773,6 @@ static struct sbp2_lu *sbp2_alloc_device(struct unit_directory *ud) | |||
773 | SBP2_ERR("failed to register lower 4GB address range"); | 773 | SBP2_ERR("failed to register lower 4GB address range"); |
774 | goto failed_alloc; | 774 | goto failed_alloc; |
775 | } | 775 | } |
776 | #else | ||
777 | if (dma_set_mask(hi->host->device.parent, DMA_32BIT_MASK)) { | ||
778 | SBP2_ERR("failed to set 4GB DMA mask"); | ||
779 | goto failed_alloc; | ||
780 | } | ||
781 | #endif | 776 | #endif |
782 | } | 777 | } |
783 | 778 | ||
diff --git a/drivers/mtd/Makefile b/drivers/mtd/Makefile index 451adcc52b3c..6d958a4566ff 100644 --- a/drivers/mtd/Makefile +++ b/drivers/mtd/Makefile | |||
@@ -3,9 +3,9 @@ | |||
3 | # | 3 | # |
4 | 4 | ||
5 | # Core functionality. | 5 | # Core functionality. |
6 | obj-$(CONFIG_MTD) += mtd.o | ||
6 | mtd-y := mtdcore.o mtdsuper.o | 7 | mtd-y := mtdcore.o mtdsuper.o |
7 | mtd-$(CONFIG_MTD_PARTITIONS) += mtdpart.o | 8 | mtd-$(CONFIG_MTD_PARTITIONS) += mtdpart.o |
8 | obj-$(CONFIG_MTD) += $(mtd-y) | ||
9 | 9 | ||
10 | obj-$(CONFIG_MTD_CONCAT) += mtdconcat.o | 10 | obj-$(CONFIG_MTD_CONCAT) += mtdconcat.o |
11 | obj-$(CONFIG_MTD_REDBOOT_PARTS) += redboot.o | 11 | obj-$(CONFIG_MTD_REDBOOT_PARTS) += redboot.o |
diff --git a/drivers/mtd/mtdpart.c b/drivers/mtd/mtdpart.c index 9c6236852942..6174a97d7902 100644 --- a/drivers/mtd/mtdpart.c +++ b/drivers/mtd/mtdpart.c | |||
@@ -560,7 +560,3 @@ int parse_mtd_partitions(struct mtd_info *master, const char **types, | |||
560 | EXPORT_SYMBOL_GPL(parse_mtd_partitions); | 560 | EXPORT_SYMBOL_GPL(parse_mtd_partitions); |
561 | EXPORT_SYMBOL_GPL(register_mtd_parser); | 561 | EXPORT_SYMBOL_GPL(register_mtd_parser); |
562 | EXPORT_SYMBOL_GPL(deregister_mtd_parser); | 562 | EXPORT_SYMBOL_GPL(deregister_mtd_parser); |
563 | |||
564 | MODULE_LICENSE("GPL"); | ||
565 | MODULE_AUTHOR("Nicolas Pitre <nico@cam.org>"); | ||
566 | MODULE_DESCRIPTION("Generic support for partitioning of MTD devices"); | ||
diff --git a/drivers/net/s2io.c b/drivers/net/s2io.c index 2be0a0f1b48f..24feb00600ee 100644 --- a/drivers/net/s2io.c +++ b/drivers/net/s2io.c | |||
@@ -2430,7 +2430,7 @@ static int fill_rx_buffers(struct s2io_nic *nic, int ring_no) | |||
2430 | (rxdp3->Buffer1_ptr == DMA_ERROR_CODE)) { | 2430 | (rxdp3->Buffer1_ptr == DMA_ERROR_CODE)) { |
2431 | pci_unmap_single | 2431 | pci_unmap_single |
2432 | (nic->pdev, | 2432 | (nic->pdev, |
2433 | (dma_addr_t)skb->data, | 2433 | (dma_addr_t)rxdp3->Buffer2_ptr, |
2434 | dev->mtu + 4, | 2434 | dev->mtu + 4, |
2435 | PCI_DMA_FROMDEVICE); | 2435 | PCI_DMA_FROMDEVICE); |
2436 | goto pci_map_failed; | 2436 | goto pci_map_failed; |
@@ -6211,7 +6211,7 @@ static int set_rxd_buffer_pointer(struct s2io_nic *sp, struct RxD_t *rxdp, | |||
6211 | if( (rxdp3->Buffer0_ptr == 0) || | 6211 | if( (rxdp3->Buffer0_ptr == 0) || |
6212 | (rxdp3->Buffer0_ptr == DMA_ERROR_CODE)) { | 6212 | (rxdp3->Buffer0_ptr == DMA_ERROR_CODE)) { |
6213 | pci_unmap_single (sp->pdev, | 6213 | pci_unmap_single (sp->pdev, |
6214 | (dma_addr_t)(*skb)->data, | 6214 | (dma_addr_t)rxdp3->Buffer2_ptr, |
6215 | dev->mtu + 4, PCI_DMA_FROMDEVICE); | 6215 | dev->mtu + 4, PCI_DMA_FROMDEVICE); |
6216 | goto memalloc_failed; | 6216 | goto memalloc_failed; |
6217 | } | 6217 | } |
@@ -6224,7 +6224,10 @@ static int set_rxd_buffer_pointer(struct s2io_nic *sp, struct RxD_t *rxdp, | |||
6224 | if( (rxdp3->Buffer1_ptr == 0) || | 6224 | if( (rxdp3->Buffer1_ptr == 0) || |
6225 | (rxdp3->Buffer1_ptr == DMA_ERROR_CODE)) { | 6225 | (rxdp3->Buffer1_ptr == DMA_ERROR_CODE)) { |
6226 | pci_unmap_single (sp->pdev, | 6226 | pci_unmap_single (sp->pdev, |
6227 | (dma_addr_t)(*skb)->data, | 6227 | (dma_addr_t)rxdp3->Buffer0_ptr, |
6228 | BUF0_LEN, PCI_DMA_FROMDEVICE); | ||
6229 | pci_unmap_single (sp->pdev, | ||
6230 | (dma_addr_t)rxdp3->Buffer2_ptr, | ||
6228 | dev->mtu + 4, PCI_DMA_FROMDEVICE); | 6231 | dev->mtu + 4, PCI_DMA_FROMDEVICE); |
6229 | goto memalloc_failed; | 6232 | goto memalloc_failed; |
6230 | } | 6233 | } |
diff --git a/drivers/power/Kconfig b/drivers/power/Kconfig index 3f6e176e6ea1..58c806e9c58a 100644 --- a/drivers/power/Kconfig +++ b/drivers/power/Kconfig | |||
@@ -38,7 +38,7 @@ config BATTERY_DS2760 | |||
38 | 38 | ||
39 | config BATTERY_PMU | 39 | config BATTERY_PMU |
40 | tristate "Apple PMU battery" | 40 | tristate "Apple PMU battery" |
41 | depends on ADB_PMU | 41 | depends on PPC32 && ADB_PMU |
42 | help | 42 | help |
43 | Say Y here to expose battery information on Apple machines | 43 | Say Y here to expose battery information on Apple machines |
44 | through the generic battery class. | 44 | through the generic battery class. |
diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c index 2f5a5ac1b271..301313002f6b 100644 --- a/drivers/serial/8250.c +++ b/drivers/serial/8250.c | |||
@@ -2514,7 +2514,7 @@ static int __init serial8250_console_setup(struct console *co, char *options) | |||
2514 | return uart_set_options(port, co, baud, parity, bits, flow); | 2514 | return uart_set_options(port, co, baud, parity, bits, flow); |
2515 | } | 2515 | } |
2516 | 2516 | ||
2517 | static int __init serial8250_console_early_setup(void) | 2517 | static int serial8250_console_early_setup(void) |
2518 | { | 2518 | { |
2519 | return serial8250_find_port_for_earlycon(); | 2519 | return serial8250_find_port_for_earlycon(); |
2520 | } | 2520 | } |
diff --git a/drivers/serial/8250_early.c b/drivers/serial/8250_early.c index 150cad5c2eba..4d4c9f01be8d 100644 --- a/drivers/serial/8250_early.c +++ b/drivers/serial/8250_early.c | |||
@@ -227,7 +227,7 @@ int __init setup_early_serial8250_console(char *cmdline) | |||
227 | return 0; | 227 | return 0; |
228 | } | 228 | } |
229 | 229 | ||
230 | int __init serial8250_find_port_for_earlycon(void) | 230 | int serial8250_find_port_for_earlycon(void) |
231 | { | 231 | { |
232 | struct early_serial8250_device *device = &early_device; | 232 | struct early_serial8250_device *device = &early_device; |
233 | struct uart_port *port = &device->port; | 233 | struct uart_port *port = &device->port; |
diff --git a/drivers/video/cg6.c b/drivers/video/cg6.c index 87c747123538..ee9046db9c7d 100644 --- a/drivers/video/cg6.c +++ b/drivers/video/cg6.c | |||
@@ -677,6 +677,7 @@ static int __devinit cg6_probe(struct of_device *op, const struct of_device_id * | |||
677 | struct fb_info *info; | 677 | struct fb_info *info; |
678 | struct cg6_par *par; | 678 | struct cg6_par *par; |
679 | int linebytes, err; | 679 | int linebytes, err; |
680 | int dblbuf; | ||
680 | 681 | ||
681 | info = framebuffer_alloc(sizeof(struct cg6_par), &op->dev); | 682 | info = framebuffer_alloc(sizeof(struct cg6_par), &op->dev); |
682 | 683 | ||
@@ -698,7 +699,9 @@ static int __devinit cg6_probe(struct of_device *op, const struct of_device_id * | |||
698 | linebytes = of_getintprop_default(dp, "linebytes", | 699 | linebytes = of_getintprop_default(dp, "linebytes", |
699 | info->var.xres); | 700 | info->var.xres); |
700 | par->fbsize = PAGE_ALIGN(linebytes * info->var.yres); | 701 | par->fbsize = PAGE_ALIGN(linebytes * info->var.yres); |
701 | if (of_find_property(dp, "dblbuf", NULL)) | 702 | |
703 | dblbuf = of_getintprop_default(dp, "dblbuf", 0); | ||
704 | if (dblbuf) | ||
702 | par->fbsize *= 4; | 705 | par->fbsize *= 4; |
703 | 706 | ||
704 | par->fbc = of_ioremap(&op->resource[0], CG6_FBC_OFFSET, | 707 | par->fbc = of_ioremap(&op->resource[0], CG6_FBC_OFFSET, |
diff --git a/include/asm-sh/rts7751r2d.h b/include/asm-sh/rts7751r2d.h index 10565ac7966a..5d7800aa31b5 100644 --- a/include/asm-sh/rts7751r2d.h +++ b/include/asm-sh/rts7751r2d.h | |||
@@ -37,7 +37,7 @@ | |||
37 | #define PA_VERREG 0xa4000032 /* FPGA Version Register */ | 37 | #define PA_VERREG 0xa4000032 /* FPGA Version Register */ |
38 | #define PA_INPORT 0xa4000034 /* KEY Input Port control */ | 38 | #define PA_INPORT 0xa4000034 /* KEY Input Port control */ |
39 | #define PA_OUTPORT 0xa4000036 /* LED control */ | 39 | #define PA_OUTPORT 0xa4000036 /* LED control */ |
40 | #define PA_DMPORT 0xa4000038 /* DM270 Output Port control */ | 40 | #define PA_BVERREG 0xa4000038 /* Board Revision Register */ |
41 | 41 | ||
42 | #define PA_AX88796L 0xaa000400 /* AX88796L Area */ | 42 | #define PA_AX88796L 0xaa000400 /* AX88796L Area */ |
43 | #define PA_VOYAGER 0xab000000 /* VOYAGER GX Area */ | 43 | #define PA_VOYAGER 0xab000000 /* VOYAGER GX Area */ |
diff --git a/include/asm-sparc/fcntl.h b/include/asm-sparc/fcntl.h index 5db60b5ae7b0..7bbdfc77accd 100644 --- a/include/asm-sparc/fcntl.h +++ b/include/asm-sparc/fcntl.h | |||
@@ -16,6 +16,7 @@ | |||
16 | #define O_LARGEFILE 0x40000 | 16 | #define O_LARGEFILE 0x40000 |
17 | #define O_DIRECT 0x100000 /* direct disk access hint */ | 17 | #define O_DIRECT 0x100000 /* direct disk access hint */ |
18 | #define O_NOATIME 0x200000 | 18 | #define O_NOATIME 0x200000 |
19 | #define O_CLOEXEC 0x400000 | ||
19 | 20 | ||
20 | #define F_GETOWN 5 /* for sockets. */ | 21 | #define F_GETOWN 5 /* for sockets. */ |
21 | #define F_SETOWN 6 /* for sockets. */ | 22 | #define F_SETOWN 6 /* for sockets. */ |
@@ -31,6 +32,5 @@ | |||
31 | #define __ARCH_FLOCK_PAD short __unused; | 32 | #define __ARCH_FLOCK_PAD short __unused; |
32 | #define __ARCH_FLOCK64_PAD short __unused; | 33 | #define __ARCH_FLOCK64_PAD short __unused; |
33 | 34 | ||
34 | #include <asm-generic/fcntl.h> | ||
35 | 35 | ||
36 | #endif | 36 | #endif |
diff --git a/include/asm-sparc/floppy.h b/include/asm-sparc/floppy.h index 28ce2b9c3da8..acd06d8ff70a 100644 --- a/include/asm-sparc/floppy.h +++ b/include/asm-sparc/floppy.h | |||
@@ -48,7 +48,7 @@ struct sun_flpy_controller { | |||
48 | 48 | ||
49 | /* You'll only ever find one controller on a SparcStation anyways. */ | 49 | /* You'll only ever find one controller on a SparcStation anyways. */ |
50 | static struct sun_flpy_controller *sun_fdc = NULL; | 50 | static struct sun_flpy_controller *sun_fdc = NULL; |
51 | volatile unsigned char *fdc_status; | 51 | extern volatile unsigned char *fdc_status; |
52 | 52 | ||
53 | struct sun_floppy_ops { | 53 | struct sun_floppy_ops { |
54 | unsigned char (*fd_inb)(int port); | 54 | unsigned char (*fd_inb)(int port); |
@@ -225,13 +225,13 @@ static void sun_82077_fd_outb(unsigned char value, int port) | |||
225 | * underruns. If non-zero, doing_pdma encodes the direction of | 225 | * underruns. If non-zero, doing_pdma encodes the direction of |
226 | * the transfer for debugging. 1=read 2=write | 226 | * the transfer for debugging. 1=read 2=write |
227 | */ | 227 | */ |
228 | char *pdma_vaddr; | 228 | extern char *pdma_vaddr; |
229 | unsigned long pdma_size; | 229 | extern unsigned long pdma_size; |
230 | volatile int doing_pdma = 0; | 230 | extern volatile int doing_pdma; |
231 | 231 | ||
232 | /* This is software state */ | 232 | /* This is software state */ |
233 | char *pdma_base = NULL; | 233 | extern char *pdma_base; |
234 | unsigned long pdma_areasize; | 234 | extern unsigned long pdma_areasize; |
235 | 235 | ||
236 | /* Common routines to all controller types on the Sparc. */ | 236 | /* Common routines to all controller types on the Sparc. */ |
237 | static __inline__ void virtual_dma_init(void) | 237 | static __inline__ void virtual_dma_init(void) |
@@ -281,7 +281,8 @@ static __inline__ void sun_fd_enable_dma(void) | |||
281 | } | 281 | } |
282 | 282 | ||
283 | /* Our low-level entry point in arch/sparc/kernel/entry.S */ | 283 | /* Our low-level entry point in arch/sparc/kernel/entry.S */ |
284 | irqreturn_t floppy_hardint(int irq, void *unused); | 284 | extern int sparc_floppy_request_irq(int irq, unsigned long flags, |
285 | irqreturn_t (*irq_handler)(int irq, void *)); | ||
285 | 286 | ||
286 | static int sun_fd_request_irq(void) | 287 | static int sun_fd_request_irq(void) |
287 | { | 288 | { |
@@ -290,8 +291,9 @@ static int sun_fd_request_irq(void) | |||
290 | 291 | ||
291 | if(!once) { | 292 | if(!once) { |
292 | once = 1; | 293 | once = 1; |
293 | error = request_fast_irq(FLOPPY_IRQ, floppy_hardint, | 294 | error = sparc_floppy_request_irq(FLOPPY_IRQ, |
294 | IRQF_DISABLED, "floppy"); | 295 | IRQF_DISABLED, |
296 | floppy_interrupt); | ||
295 | return ((error == 0) ? 0 : -1); | 297 | return ((error == 0) ? 0 : -1); |
296 | } else return 0; | 298 | } else return 0; |
297 | } | 299 | } |
diff --git a/include/asm-sparc/irq.h b/include/asm-sparc/irq.h index 61fb99643afd..fe205cc444b8 100644 --- a/include/asm-sparc/irq.h +++ b/include/asm-sparc/irq.h | |||
@@ -1,7 +1,6 @@ | |||
1 | /* $Id: irq.h,v 1.32 2000/08/26 02:42:28 anton Exp $ | 1 | /* irq.h: IRQ registers on the Sparc. |
2 | * irq.h: IRQ registers on the Sparc. | ||
3 | * | 2 | * |
4 | * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu) | 3 | * Copyright (C) 1995, 2007 David S. Miller (davem@davemloft.net) |
5 | */ | 4 | */ |
6 | 5 | ||
7 | #ifndef _SPARC_IRQ_H | 6 | #ifndef _SPARC_IRQ_H |
@@ -13,6 +12,4 @@ | |||
13 | 12 | ||
14 | #define irq_canonicalize(irq) (irq) | 13 | #define irq_canonicalize(irq) (irq) |
15 | 14 | ||
16 | extern int request_fast_irq(unsigned int irq, irq_handler_t handler, unsigned long flags, __const__ char *devname); | ||
17 | |||
18 | #endif | 15 | #endif |
diff --git a/include/asm-sparc64/dma-mapping.h b/include/asm-sparc64/dma-mapping.h index a72a5f271f31..1fc655452b81 100644 --- a/include/asm-sparc64/dma-mapping.h +++ b/include/asm-sparc64/dma-mapping.h | |||
@@ -108,6 +108,25 @@ static inline void dma_sync_single_for_device(struct device *dev, | |||
108 | dma_ops->sync_single_for_device(dev, dma_handle, size, direction); | 108 | dma_ops->sync_single_for_device(dev, dma_handle, size, direction); |
109 | } | 109 | } |
110 | 110 | ||
111 | static inline void dma_sync_single_range_for_cpu(struct device *dev, | ||
112 | dma_addr_t dma_handle, | ||
113 | unsigned long offset, | ||
114 | size_t size, | ||
115 | enum dma_data_direction direction) | ||
116 | { | ||
117 | dma_sync_single_for_cpu(dev, dma_handle+offset, size, direction); | ||
118 | } | ||
119 | |||
120 | static inline void dma_sync_single_range_for_device(struct device *dev, | ||
121 | dma_addr_t dma_handle, | ||
122 | unsigned long offset, | ||
123 | size_t size, | ||
124 | enum dma_data_direction direction) | ||
125 | { | ||
126 | dma_sync_single_for_device(dev, dma_handle+offset, size, direction); | ||
127 | } | ||
128 | |||
129 | |||
111 | static inline void dma_sync_sg_for_cpu(struct device *dev, | 130 | static inline void dma_sync_sg_for_cpu(struct device *dev, |
112 | struct scatterlist *sg, int nelems, | 131 | struct scatterlist *sg, int nelems, |
113 | enum dma_data_direction direction) | 132 | enum dma_data_direction direction) |
diff --git a/include/asm-sparc64/fcntl.h b/include/asm-sparc64/fcntl.h index b2aecf0054bd..111f6b3b8925 100644 --- a/include/asm-sparc64/fcntl.h +++ b/include/asm-sparc64/fcntl.h | |||
@@ -16,7 +16,7 @@ | |||
16 | #define O_LARGEFILE 0x40000 | 16 | #define O_LARGEFILE 0x40000 |
17 | #define O_DIRECT 0x100000 /* direct disk access hint */ | 17 | #define O_DIRECT 0x100000 /* direct disk access hint */ |
18 | #define O_NOATIME 0x200000 | 18 | #define O_NOATIME 0x200000 |
19 | 19 | #define O_CLOEXEC 0x400000 | |
20 | 20 | ||
21 | #define F_GETOWN 5 /* for sockets. */ | 21 | #define F_GETOWN 5 /* for sockets. */ |
22 | #define F_SETOWN 6 /* for sockets. */ | 22 | #define F_SETOWN 6 /* for sockets. */ |
diff --git a/include/net/sctp/sctp.h b/include/net/sctp/sctp.h index 16baef4dab7e..d529045c1679 100644 --- a/include/net/sctp/sctp.h +++ b/include/net/sctp/sctp.h | |||
@@ -190,6 +190,16 @@ void sctp_assocs_proc_exit(void); | |||
190 | 190 | ||
191 | 191 | ||
192 | /* | 192 | /* |
193 | * Module global variables | ||
194 | */ | ||
195 | |||
196 | /* | ||
197 | * sctp/protocol.c | ||
198 | */ | ||
199 | extern struct kmem_cache *sctp_chunk_cachep __read_mostly; | ||
200 | extern struct kmem_cache *sctp_bucket_cachep __read_mostly; | ||
201 | |||
202 | /* | ||
193 | * Section: Macros, externs, and inlines | 203 | * Section: Macros, externs, and inlines |
194 | */ | 204 | */ |
195 | 205 | ||
diff --git a/include/net/tcp.h b/include/net/tcp.h index c209361ab74a..185c7ecce4cc 100644 --- a/include/net/tcp.h +++ b/include/net/tcp.h | |||
@@ -281,7 +281,7 @@ extern int tcp_v4_remember_stamp(struct sock *sk); | |||
281 | 281 | ||
282 | extern int tcp_v4_tw_remember_stamp(struct inet_timewait_sock *tw); | 282 | extern int tcp_v4_tw_remember_stamp(struct inet_timewait_sock *tw); |
283 | 283 | ||
284 | extern int tcp_sendmsg(struct kiocb *iocb, struct sock *sk, | 284 | extern int tcp_sendmsg(struct kiocb *iocb, struct socket *sock, |
285 | struct msghdr *msg, size_t size); | 285 | struct msghdr *msg, size_t size); |
286 | extern ssize_t tcp_sendpage(struct socket *sock, struct page *page, int offset, size_t size, int flags); | 286 | extern ssize_t tcp_sendpage(struct socket *sock, struct page *page, int offset, size_t size, int flags); |
287 | 287 | ||
diff --git a/kernel/exit.c b/kernel/exit.c index 464c2b172f07..9578c1ae19ca 100644 --- a/kernel/exit.c +++ b/kernel/exit.c | |||
@@ -813,7 +813,7 @@ static void exit_notify(struct task_struct *tsk) | |||
813 | __kill_pgrp_info(SIGCONT, SEND_SIG_PRIV, pgrp); | 813 | __kill_pgrp_info(SIGCONT, SEND_SIG_PRIV, pgrp); |
814 | } | 814 | } |
815 | 815 | ||
816 | /* Let father know we died | 816 | /* Let father know we died |
817 | * | 817 | * |
818 | * Thread signals are configurable, but you aren't going to use | 818 | * Thread signals are configurable, but you aren't going to use |
819 | * that to send signals to arbitary processes. | 819 | * that to send signals to arbitary processes. |
@@ -826,9 +826,7 @@ static void exit_notify(struct task_struct *tsk) | |||
826 | * If our self_exec id doesn't match our parent_exec_id then | 826 | * If our self_exec id doesn't match our parent_exec_id then |
827 | * we have changed execution domain as these two values started | 827 | * we have changed execution domain as these two values started |
828 | * the same after a fork. | 828 | * the same after a fork. |
829 | * | ||
830 | */ | 829 | */ |
831 | |||
832 | if (tsk->exit_signal != SIGCHLD && tsk->exit_signal != -1 && | 830 | if (tsk->exit_signal != SIGCHLD && tsk->exit_signal != -1 && |
833 | ( tsk->parent_exec_id != t->self_exec_id || | 831 | ( tsk->parent_exec_id != t->self_exec_id || |
834 | tsk->self_exec_id != tsk->parent_exec_id) | 832 | tsk->self_exec_id != tsk->parent_exec_id) |
@@ -848,9 +846,7 @@ static void exit_notify(struct task_struct *tsk) | |||
848 | } | 846 | } |
849 | 847 | ||
850 | state = EXIT_ZOMBIE; | 848 | state = EXIT_ZOMBIE; |
851 | if (tsk->exit_signal == -1 && | 849 | if (tsk->exit_signal == -1 && likely(!tsk->ptrace)) |
852 | (likely(tsk->ptrace == 0) || | ||
853 | unlikely(tsk->parent->signal->flags & SIGNAL_GROUP_EXIT))) | ||
854 | state = EXIT_DEAD; | 850 | state = EXIT_DEAD; |
855 | tsk->exit_state = state; | 851 | tsk->exit_state = state; |
856 | 852 | ||
diff --git a/kernel/printk.c b/kernel/printk.c index 051d27e36a6c..bd2cd062878d 100644 --- a/kernel/printk.c +++ b/kernel/printk.c | |||
@@ -732,7 +732,7 @@ int __init add_preferred_console(char *name, int idx, char *options) | |||
732 | return 0; | 732 | return 0; |
733 | } | 733 | } |
734 | 734 | ||
735 | int __init update_console_cmdline(char *name, int idx, char *name_new, int idx_new, char *options) | 735 | int update_console_cmdline(char *name, int idx, char *name_new, int idx_new, char *options) |
736 | { | 736 | { |
737 | struct console_cmdline *c; | 737 | struct console_cmdline *c; |
738 | int i; | 738 | int i; |
diff --git a/kernel/signal.c b/kernel/signal.c index ef8156a6aad5..b27c01a66448 100644 --- a/kernel/signal.c +++ b/kernel/signal.c | |||
@@ -1561,10 +1561,6 @@ static inline int may_ptrace_stop(void) | |||
1561 | (current->ptrace & PT_ATTACHED))) | 1561 | (current->ptrace & PT_ATTACHED))) |
1562 | return 0; | 1562 | return 0; |
1563 | 1563 | ||
1564 | if (unlikely(current->signal == current->parent->signal) && | ||
1565 | unlikely(current->signal->flags & SIGNAL_GROUP_EXIT)) | ||
1566 | return 0; | ||
1567 | |||
1568 | /* | 1564 | /* |
1569 | * Are we in the middle of do_coredump? | 1565 | * Are we in the middle of do_coredump? |
1570 | * If so and our tracer is also part of the coredump stopping | 1566 | * If so and our tracer is also part of the coredump stopping |
diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c index 06c08e5740fb..e68103475cca 100644 --- a/net/ipv4/af_inet.c +++ b/net/ipv4/af_inet.c | |||
@@ -831,7 +831,7 @@ const struct proto_ops inet_stream_ops = { | |||
831 | .shutdown = inet_shutdown, | 831 | .shutdown = inet_shutdown, |
832 | .setsockopt = sock_common_setsockopt, | 832 | .setsockopt = sock_common_setsockopt, |
833 | .getsockopt = sock_common_getsockopt, | 833 | .getsockopt = sock_common_getsockopt, |
834 | .sendmsg = inet_sendmsg, | 834 | .sendmsg = tcp_sendmsg, |
835 | .recvmsg = sock_common_recvmsg, | 835 | .recvmsg = sock_common_recvmsg, |
836 | .mmap = sock_no_mmap, | 836 | .mmap = sock_no_mmap, |
837 | .sendpage = tcp_sendpage, | 837 | .sendpage = tcp_sendpage, |
diff --git a/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4_compat.c b/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4_compat.c index 27c7918e442a..b3dd5de9a258 100644 --- a/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4_compat.c +++ b/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4_compat.c | |||
@@ -294,15 +294,14 @@ static int exp_open(struct inode *inode, struct file *file) | |||
294 | struct ct_expect_iter_state *st; | 294 | struct ct_expect_iter_state *st; |
295 | int ret; | 295 | int ret; |
296 | 296 | ||
297 | st = kmalloc(sizeof(struct ct_expect_iter_state), GFP_KERNEL); | 297 | st = kzalloc(sizeof(struct ct_expect_iter_state), GFP_KERNEL); |
298 | if (st == NULL) | 298 | if (!st) |
299 | return -ENOMEM; | 299 | return -ENOMEM; |
300 | ret = seq_open(file, &exp_seq_ops); | 300 | ret = seq_open(file, &exp_seq_ops); |
301 | if (ret) | 301 | if (ret) |
302 | goto out_free; | 302 | goto out_free; |
303 | seq = file->private_data; | 303 | seq = file->private_data; |
304 | seq->private = st; | 304 | seq->private = st; |
305 | memset(st, 0, sizeof(struct ct_expect_iter_state)); | ||
306 | return ret; | 305 | return ret; |
307 | out_free: | 306 | out_free: |
308 | kfree(st); | 307 | kfree(st); |
diff --git a/net/ipv4/raw.c b/net/ipv4/raw.c index 24d7c9f31918..c6d71526f625 100644 --- a/net/ipv4/raw.c +++ b/net/ipv4/raw.c | |||
@@ -900,8 +900,9 @@ static int raw_seq_open(struct inode *inode, struct file *file) | |||
900 | { | 900 | { |
901 | struct seq_file *seq; | 901 | struct seq_file *seq; |
902 | int rc = -ENOMEM; | 902 | int rc = -ENOMEM; |
903 | struct raw_iter_state *s = kmalloc(sizeof(*s), GFP_KERNEL); | 903 | struct raw_iter_state *s; |
904 | 904 | ||
905 | s = kzalloc(sizeof(*s), GFP_KERNEL); | ||
905 | if (!s) | 906 | if (!s) |
906 | goto out; | 907 | goto out; |
907 | rc = seq_open(file, &raw_seq_ops); | 908 | rc = seq_open(file, &raw_seq_ops); |
@@ -910,7 +911,6 @@ static int raw_seq_open(struct inode *inode, struct file *file) | |||
910 | 911 | ||
911 | seq = file->private_data; | 912 | seq = file->private_data; |
912 | seq->private = s; | 913 | seq->private = s; |
913 | memset(s, 0, sizeof(*s)); | ||
914 | out: | 914 | out: |
915 | return rc; | 915 | return rc; |
916 | out_kfree: | 916 | out_kfree: |
diff --git a/net/ipv4/route.c b/net/ipv4/route.c index df42b7fb3268..c7ca94bd152c 100644 --- a/net/ipv4/route.c +++ b/net/ipv4/route.c | |||
@@ -374,8 +374,9 @@ static int rt_cache_seq_open(struct inode *inode, struct file *file) | |||
374 | { | 374 | { |
375 | struct seq_file *seq; | 375 | struct seq_file *seq; |
376 | int rc = -ENOMEM; | 376 | int rc = -ENOMEM; |
377 | struct rt_cache_iter_state *s = kmalloc(sizeof(*s), GFP_KERNEL); | 377 | struct rt_cache_iter_state *s; |
378 | 378 | ||
379 | s = kzalloc(sizeof(*s), GFP_KERNEL); | ||
379 | if (!s) | 380 | if (!s) |
380 | goto out; | 381 | goto out; |
381 | rc = seq_open(file, &rt_cache_seq_ops); | 382 | rc = seq_open(file, &rt_cache_seq_ops); |
@@ -383,7 +384,6 @@ static int rt_cache_seq_open(struct inode *inode, struct file *file) | |||
383 | goto out_kfree; | 384 | goto out_kfree; |
384 | seq = file->private_data; | 385 | seq = file->private_data; |
385 | seq->private = s; | 386 | seq->private = s; |
386 | memset(s, 0, sizeof(*s)); | ||
387 | out: | 387 | out: |
388 | return rc; | 388 | return rc; |
389 | out_kfree: | 389 | out_kfree: |
diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c index da4c0b6ab79a..7e740112b238 100644 --- a/net/ipv4/tcp.c +++ b/net/ipv4/tcp.c | |||
@@ -658,9 +658,10 @@ static inline int select_size(struct sock *sk) | |||
658 | return tmp; | 658 | return tmp; |
659 | } | 659 | } |
660 | 660 | ||
661 | int tcp_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg, | 661 | int tcp_sendmsg(struct kiocb *iocb, struct socket *sock, struct msghdr *msg, |
662 | size_t size) | 662 | size_t size) |
663 | { | 663 | { |
664 | struct sock *sk = sock->sk; | ||
664 | struct iovec *iov; | 665 | struct iovec *iov; |
665 | struct tcp_sock *tp = tcp_sk(sk); | 666 | struct tcp_sock *tp = tcp_sk(sk); |
666 | struct sk_buff *skb; | 667 | struct sk_buff *skb; |
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c index 378ca8a086a3..f030435e0eb4 100644 --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c | |||
@@ -102,11 +102,14 @@ int sysctl_tcp_abc __read_mostly; | |||
102 | #define FLAG_DATA_LOST 0x80 /* SACK detected data lossage. */ | 102 | #define FLAG_DATA_LOST 0x80 /* SACK detected data lossage. */ |
103 | #define FLAG_SLOWPATH 0x100 /* Do not skip RFC checks for window update.*/ | 103 | #define FLAG_SLOWPATH 0x100 /* Do not skip RFC checks for window update.*/ |
104 | #define FLAG_ONLY_ORIG_SACKED 0x200 /* SACKs only non-rexmit sent before RTO */ | 104 | #define FLAG_ONLY_ORIG_SACKED 0x200 /* SACKs only non-rexmit sent before RTO */ |
105 | #define FLAG_SND_UNA_ADVANCED 0x400 /* Snd_una was changed (!= FLAG_DATA_ACKED) */ | ||
106 | #define FLAG_DSACKING_ACK 0x800 /* SACK blocks contained DSACK info */ | ||
105 | 107 | ||
106 | #define FLAG_ACKED (FLAG_DATA_ACKED|FLAG_SYN_ACKED) | 108 | #define FLAG_ACKED (FLAG_DATA_ACKED|FLAG_SYN_ACKED) |
107 | #define FLAG_NOT_DUP (FLAG_DATA|FLAG_WIN_UPDATE|FLAG_ACKED) | 109 | #define FLAG_NOT_DUP (FLAG_DATA|FLAG_WIN_UPDATE|FLAG_ACKED) |
108 | #define FLAG_CA_ALERT (FLAG_DATA_SACKED|FLAG_ECE) | 110 | #define FLAG_CA_ALERT (FLAG_DATA_SACKED|FLAG_ECE) |
109 | #define FLAG_FORWARD_PROGRESS (FLAG_ACKED|FLAG_DATA_SACKED) | 111 | #define FLAG_FORWARD_PROGRESS (FLAG_ACKED|FLAG_DATA_SACKED) |
112 | #define FLAG_ANY_PROGRESS (FLAG_FORWARD_PROGRESS|FLAG_SND_UNA_ADVANCED) | ||
110 | 113 | ||
111 | #define IsReno(tp) ((tp)->rx_opt.sack_ok == 0) | 114 | #define IsReno(tp) ((tp)->rx_opt.sack_ok == 0) |
112 | #define IsFack(tp) ((tp)->rx_opt.sack_ok & 2) | 115 | #define IsFack(tp) ((tp)->rx_opt.sack_ok & 2) |
@@ -964,12 +967,14 @@ tcp_sacktag_write_queue(struct sock *sk, struct sk_buff *ack_skb, u32 prior_snd_ | |||
964 | 967 | ||
965 | /* Check for D-SACK. */ | 968 | /* Check for D-SACK. */ |
966 | if (before(ntohl(sp[0].start_seq), TCP_SKB_CB(ack_skb)->ack_seq)) { | 969 | if (before(ntohl(sp[0].start_seq), TCP_SKB_CB(ack_skb)->ack_seq)) { |
970 | flag |= FLAG_DSACKING_ACK; | ||
967 | found_dup_sack = 1; | 971 | found_dup_sack = 1; |
968 | tp->rx_opt.sack_ok |= 4; | 972 | tp->rx_opt.sack_ok |= 4; |
969 | NET_INC_STATS_BH(LINUX_MIB_TCPDSACKRECV); | 973 | NET_INC_STATS_BH(LINUX_MIB_TCPDSACKRECV); |
970 | } else if (num_sacks > 1 && | 974 | } else if (num_sacks > 1 && |
971 | !after(ntohl(sp[0].end_seq), ntohl(sp[1].end_seq)) && | 975 | !after(ntohl(sp[0].end_seq), ntohl(sp[1].end_seq)) && |
972 | !before(ntohl(sp[0].start_seq), ntohl(sp[1].start_seq))) { | 976 | !before(ntohl(sp[0].start_seq), ntohl(sp[1].start_seq))) { |
977 | flag |= FLAG_DSACKING_ACK; | ||
973 | found_dup_sack = 1; | 978 | found_dup_sack = 1; |
974 | tp->rx_opt.sack_ok |= 4; | 979 | tp->rx_opt.sack_ok |= 4; |
975 | NET_INC_STATS_BH(LINUX_MIB_TCPDSACKOFORECV); | 980 | NET_INC_STATS_BH(LINUX_MIB_TCPDSACKOFORECV); |
@@ -1856,7 +1861,7 @@ static void tcp_cwnd_down(struct sock *sk, int flag) | |||
1856 | struct tcp_sock *tp = tcp_sk(sk); | 1861 | struct tcp_sock *tp = tcp_sk(sk); |
1857 | int decr = tp->snd_cwnd_cnt + 1; | 1862 | int decr = tp->snd_cwnd_cnt + 1; |
1858 | 1863 | ||
1859 | if ((flag&FLAG_FORWARD_PROGRESS) || | 1864 | if ((flag&(FLAG_ANY_PROGRESS|FLAG_DSACKING_ACK)) || |
1860 | (IsReno(tp) && !(flag&FLAG_NOT_DUP))) { | 1865 | (IsReno(tp) && !(flag&FLAG_NOT_DUP))) { |
1861 | tp->snd_cwnd_cnt = decr&1; | 1866 | tp->snd_cwnd_cnt = decr&1; |
1862 | decr >>= 1; | 1867 | decr >>= 1; |
@@ -2107,15 +2112,13 @@ static void tcp_mtup_probe_success(struct sock *sk, struct sk_buff *skb) | |||
2107 | * tcp_xmit_retransmit_queue(). | 2112 | * tcp_xmit_retransmit_queue(). |
2108 | */ | 2113 | */ |
2109 | static void | 2114 | static void |
2110 | tcp_fastretrans_alert(struct sock *sk, u32 prior_snd_una, | 2115 | tcp_fastretrans_alert(struct sock *sk, int prior_packets, int flag) |
2111 | int prior_packets, int flag) | ||
2112 | { | 2116 | { |
2113 | struct inet_connection_sock *icsk = inet_csk(sk); | 2117 | struct inet_connection_sock *icsk = inet_csk(sk); |
2114 | struct tcp_sock *tp = tcp_sk(sk); | 2118 | struct tcp_sock *tp = tcp_sk(sk); |
2115 | int is_dupack = (tp->snd_una == prior_snd_una && | 2119 | int is_dupack = !(flag&(FLAG_SND_UNA_ADVANCED|FLAG_NOT_DUP)); |
2116 | (!(flag&FLAG_NOT_DUP) || | 2120 | int do_lost = is_dupack || ((flag&FLAG_DATA_SACKED) && |
2117 | ((flag&FLAG_DATA_SACKED) && | 2121 | (tp->fackets_out > tp->reordering)); |
2118 | (tp->fackets_out > tp->reordering)))); | ||
2119 | 2122 | ||
2120 | /* Some technical things: | 2123 | /* Some technical things: |
2121 | * 1. Reno does not count dupacks (sacked_out) automatically. */ | 2124 | * 1. Reno does not count dupacks (sacked_out) automatically. */ |
@@ -2192,14 +2195,14 @@ tcp_fastretrans_alert(struct sock *sk, u32 prior_snd_una, | |||
2192 | /* F. Process state. */ | 2195 | /* F. Process state. */ |
2193 | switch (icsk->icsk_ca_state) { | 2196 | switch (icsk->icsk_ca_state) { |
2194 | case TCP_CA_Recovery: | 2197 | case TCP_CA_Recovery: |
2195 | if (prior_snd_una == tp->snd_una) { | 2198 | if (!(flag & FLAG_SND_UNA_ADVANCED)) { |
2196 | if (IsReno(tp) && is_dupack) | 2199 | if (IsReno(tp) && is_dupack) |
2197 | tcp_add_reno_sack(sk); | 2200 | tcp_add_reno_sack(sk); |
2198 | } else { | 2201 | } else { |
2199 | int acked = prior_packets - tp->packets_out; | 2202 | int acked = prior_packets - tp->packets_out; |
2200 | if (IsReno(tp)) | 2203 | if (IsReno(tp)) |
2201 | tcp_remove_reno_sacks(sk, acked); | 2204 | tcp_remove_reno_sacks(sk, acked); |
2202 | is_dupack = tcp_try_undo_partial(sk, acked); | 2205 | do_lost = tcp_try_undo_partial(sk, acked); |
2203 | } | 2206 | } |
2204 | break; | 2207 | break; |
2205 | case TCP_CA_Loss: | 2208 | case TCP_CA_Loss: |
@@ -2215,7 +2218,7 @@ tcp_fastretrans_alert(struct sock *sk, u32 prior_snd_una, | |||
2215 | /* Loss is undone; fall through to processing in Open state. */ | 2218 | /* Loss is undone; fall through to processing in Open state. */ |
2216 | default: | 2219 | default: |
2217 | if (IsReno(tp)) { | 2220 | if (IsReno(tp)) { |
2218 | if (tp->snd_una != prior_snd_una) | 2221 | if (flag & FLAG_SND_UNA_ADVANCED) |
2219 | tcp_reset_reno_sack(tp); | 2222 | tcp_reset_reno_sack(tp); |
2220 | if (is_dupack) | 2223 | if (is_dupack) |
2221 | tcp_add_reno_sack(sk); | 2224 | tcp_add_reno_sack(sk); |
@@ -2264,7 +2267,7 @@ tcp_fastretrans_alert(struct sock *sk, u32 prior_snd_una, | |||
2264 | tcp_set_ca_state(sk, TCP_CA_Recovery); | 2267 | tcp_set_ca_state(sk, TCP_CA_Recovery); |
2265 | } | 2268 | } |
2266 | 2269 | ||
2267 | if (is_dupack || tcp_head_timedout(sk)) | 2270 | if (do_lost || tcp_head_timedout(sk)) |
2268 | tcp_update_scoreboard(sk); | 2271 | tcp_update_scoreboard(sk); |
2269 | tcp_cwnd_down(sk, flag); | 2272 | tcp_cwnd_down(sk, flag); |
2270 | tcp_xmit_retransmit_queue(sk); | 2273 | tcp_xmit_retransmit_queue(sk); |
@@ -2684,7 +2687,7 @@ static void tcp_undo_spur_to_response(struct sock *sk, int flag) | |||
2684 | * to prove that the RTO is indeed spurious. It transfers the control | 2687 | * to prove that the RTO is indeed spurious. It transfers the control |
2685 | * from F-RTO to the conventional RTO recovery | 2688 | * from F-RTO to the conventional RTO recovery |
2686 | */ | 2689 | */ |
2687 | static int tcp_process_frto(struct sock *sk, u32 prior_snd_una, int flag) | 2690 | static int tcp_process_frto(struct sock *sk, int flag) |
2688 | { | 2691 | { |
2689 | struct tcp_sock *tp = tcp_sk(sk); | 2692 | struct tcp_sock *tp = tcp_sk(sk); |
2690 | 2693 | ||
@@ -2704,8 +2707,7 @@ static int tcp_process_frto(struct sock *sk, u32 prior_snd_una, int flag) | |||
2704 | * ACK isn't duplicate nor advances window, e.g., opposite dir | 2707 | * ACK isn't duplicate nor advances window, e.g., opposite dir |
2705 | * data, winupdate | 2708 | * data, winupdate |
2706 | */ | 2709 | */ |
2707 | if ((tp->snd_una == prior_snd_una) && (flag&FLAG_NOT_DUP) && | 2710 | if (!(flag&FLAG_ANY_PROGRESS) && (flag&FLAG_NOT_DUP)) |
2708 | !(flag&FLAG_FORWARD_PROGRESS)) | ||
2709 | return 1; | 2711 | return 1; |
2710 | 2712 | ||
2711 | if (!(flag&FLAG_DATA_ACKED)) { | 2713 | if (!(flag&FLAG_DATA_ACKED)) { |
@@ -2785,6 +2787,9 @@ static int tcp_ack(struct sock *sk, struct sk_buff *skb, int flag) | |||
2785 | if (before(ack, prior_snd_una)) | 2787 | if (before(ack, prior_snd_una)) |
2786 | goto old_ack; | 2788 | goto old_ack; |
2787 | 2789 | ||
2790 | if (after(ack, prior_snd_una)) | ||
2791 | flag |= FLAG_SND_UNA_ADVANCED; | ||
2792 | |||
2788 | if (sysctl_tcp_abc) { | 2793 | if (sysctl_tcp_abc) { |
2789 | if (icsk->icsk_ca_state < TCP_CA_CWR) | 2794 | if (icsk->icsk_ca_state < TCP_CA_CWR) |
2790 | tp->bytes_acked += ack - prior_snd_una; | 2795 | tp->bytes_acked += ack - prior_snd_una; |
@@ -2837,14 +2842,14 @@ static int tcp_ack(struct sock *sk, struct sk_buff *skb, int flag) | |||
2837 | flag |= tcp_clean_rtx_queue(sk, &seq_rtt); | 2842 | flag |= tcp_clean_rtx_queue(sk, &seq_rtt); |
2838 | 2843 | ||
2839 | if (tp->frto_counter) | 2844 | if (tp->frto_counter) |
2840 | frto_cwnd = tcp_process_frto(sk, prior_snd_una, flag); | 2845 | frto_cwnd = tcp_process_frto(sk, flag); |
2841 | 2846 | ||
2842 | if (tcp_ack_is_dubious(sk, flag)) { | 2847 | if (tcp_ack_is_dubious(sk, flag)) { |
2843 | /* Advance CWND, if state allows this. */ | 2848 | /* Advance CWND, if state allows this. */ |
2844 | if ((flag & FLAG_DATA_ACKED) && !frto_cwnd && | 2849 | if ((flag & FLAG_DATA_ACKED) && !frto_cwnd && |
2845 | tcp_may_raise_cwnd(sk, flag)) | 2850 | tcp_may_raise_cwnd(sk, flag)) |
2846 | tcp_cong_avoid(sk, ack, prior_in_flight, 0); | 2851 | tcp_cong_avoid(sk, ack, prior_in_flight, 0); |
2847 | tcp_fastretrans_alert(sk, prior_snd_una, prior_packets, flag); | 2852 | tcp_fastretrans_alert(sk, prior_packets, flag); |
2848 | } else { | 2853 | } else { |
2849 | if ((flag & FLAG_DATA_ACKED) && !frto_cwnd) | 2854 | if ((flag & FLAG_DATA_ACKED) && !frto_cwnd) |
2850 | tcp_cong_avoid(sk, ack, prior_in_flight, 1); | 2855 | tcp_cong_avoid(sk, ack, prior_in_flight, 1); |
diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c index 3f5f7423b95c..9c94627c8c7e 100644 --- a/net/ipv4/tcp_ipv4.c +++ b/net/ipv4/tcp_ipv4.c | |||
@@ -2425,7 +2425,6 @@ struct proto tcp_prot = { | |||
2425 | .shutdown = tcp_shutdown, | 2425 | .shutdown = tcp_shutdown, |
2426 | .setsockopt = tcp_setsockopt, | 2426 | .setsockopt = tcp_setsockopt, |
2427 | .getsockopt = tcp_getsockopt, | 2427 | .getsockopt = tcp_getsockopt, |
2428 | .sendmsg = tcp_sendmsg, | ||
2429 | .recvmsg = tcp_recvmsg, | 2428 | .recvmsg = tcp_recvmsg, |
2430 | .backlog_rcv = tcp_v4_do_rcv, | 2429 | .backlog_rcv = tcp_v4_do_rcv, |
2431 | .hash = tcp_v4_hash, | 2430 | .hash = tcp_v4_hash, |
diff --git a/net/ipv6/af_inet6.c b/net/ipv6/af_inet6.c index eed09373a45d..b5f96372ad73 100644 --- a/net/ipv6/af_inet6.c +++ b/net/ipv6/af_inet6.c | |||
@@ -484,7 +484,7 @@ const struct proto_ops inet6_stream_ops = { | |||
484 | .shutdown = inet_shutdown, /* ok */ | 484 | .shutdown = inet_shutdown, /* ok */ |
485 | .setsockopt = sock_common_setsockopt, /* ok */ | 485 | .setsockopt = sock_common_setsockopt, /* ok */ |
486 | .getsockopt = sock_common_getsockopt, /* ok */ | 486 | .getsockopt = sock_common_getsockopt, /* ok */ |
487 | .sendmsg = inet_sendmsg, /* ok */ | 487 | .sendmsg = tcp_sendmsg, /* ok */ |
488 | .recvmsg = sock_common_recvmsg, /* ok */ | 488 | .recvmsg = sock_common_recvmsg, /* ok */ |
489 | .mmap = sock_no_mmap, | 489 | .mmap = sock_no_mmap, |
490 | .sendpage = tcp_sendpage, | 490 | .sendpage = tcp_sendpage, |
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c index f10f3689d671..cbdb78487915 100644 --- a/net/ipv6/tcp_ipv6.c +++ b/net/ipv6/tcp_ipv6.c | |||
@@ -2115,7 +2115,6 @@ struct proto tcpv6_prot = { | |||
2115 | .shutdown = tcp_shutdown, | 2115 | .shutdown = tcp_shutdown, |
2116 | .setsockopt = tcp_setsockopt, | 2116 | .setsockopt = tcp_setsockopt, |
2117 | .getsockopt = tcp_getsockopt, | 2117 | .getsockopt = tcp_getsockopt, |
2118 | .sendmsg = tcp_sendmsg, | ||
2119 | .recvmsg = tcp_recvmsg, | 2118 | .recvmsg = tcp_recvmsg, |
2120 | .backlog_rcv = tcp_v6_do_rcv, | 2119 | .backlog_rcv = tcp_v6_do_rcv, |
2121 | .hash = tcp_v6_hash, | 2120 | .hash = tcp_v6_hash, |
diff --git a/net/key/af_key.c b/net/key/af_key.c index 7b0a95abe934..5502df115a63 100644 --- a/net/key/af_key.c +++ b/net/key/af_key.c | |||
@@ -1206,6 +1206,9 @@ static struct xfrm_state * pfkey_msg2xfrm_state(struct sadb_msg *hdr, | |||
1206 | x->sel.prefixlen_s = addr->sadb_address_prefixlen; | 1206 | x->sel.prefixlen_s = addr->sadb_address_prefixlen; |
1207 | } | 1207 | } |
1208 | 1208 | ||
1209 | if (!x->sel.family) | ||
1210 | x->sel.family = x->props.family; | ||
1211 | |||
1209 | if (ext_hdrs[SADB_X_EXT_NAT_T_TYPE-1]) { | 1212 | if (ext_hdrs[SADB_X_EXT_NAT_T_TYPE-1]) { |
1210 | struct sadb_x_nat_t_type* n_type; | 1213 | struct sadb_x_nat_t_type* n_type; |
1211 | struct xfrm_encap_tmpl *natt; | 1214 | struct xfrm_encap_tmpl *natt; |
diff --git a/net/netfilter/nf_conntrack_expect.c b/net/netfilter/nf_conntrack_expect.c index eb6695dcd73b..3ac64e25f10c 100644 --- a/net/netfilter/nf_conntrack_expect.c +++ b/net/netfilter/nf_conntrack_expect.c | |||
@@ -477,15 +477,14 @@ static int exp_open(struct inode *inode, struct file *file) | |||
477 | struct ct_expect_iter_state *st; | 477 | struct ct_expect_iter_state *st; |
478 | int ret; | 478 | int ret; |
479 | 479 | ||
480 | st = kmalloc(sizeof(struct ct_expect_iter_state), GFP_KERNEL); | 480 | st = kzalloc(sizeof(struct ct_expect_iter_state), GFP_KERNEL); |
481 | if (st == NULL) | 481 | if (!st) |
482 | return -ENOMEM; | 482 | return -ENOMEM; |
483 | ret = seq_open(file, &exp_seq_ops); | 483 | ret = seq_open(file, &exp_seq_ops); |
484 | if (ret) | 484 | if (ret) |
485 | goto out_free; | 485 | goto out_free; |
486 | seq = file->private_data; | 486 | seq = file->private_data; |
487 | seq->private = st; | 487 | seq->private = st; |
488 | memset(st, 0, sizeof(struct ct_expect_iter_state)); | ||
489 | return ret; | 488 | return ret; |
490 | out_free: | 489 | out_free: |
491 | kfree(st); | 490 | kfree(st); |
diff --git a/net/sctp/input.c b/net/sctp/input.c index d57ff7f3c576..47e56017f4ce 100644 --- a/net/sctp/input.c +++ b/net/sctp/input.c | |||
@@ -590,7 +590,7 @@ out_unlock: | |||
590 | * Return 0 - If further processing is needed. | 590 | * Return 0 - If further processing is needed. |
591 | * Return 1 - If the packet can be discarded right away. | 591 | * Return 1 - If the packet can be discarded right away. |
592 | */ | 592 | */ |
593 | int sctp_rcv_ootb(struct sk_buff *skb) | 593 | static int sctp_rcv_ootb(struct sk_buff *skb) |
594 | { | 594 | { |
595 | sctp_chunkhdr_t *ch; | 595 | sctp_chunkhdr_t *ch; |
596 | __u8 *ch_end; | 596 | __u8 *ch_end; |
diff --git a/net/sctp/ipv6.c b/net/sctp/ipv6.c index 2c29394fd92e..f8aa23dda1c1 100644 --- a/net/sctp/ipv6.c +++ b/net/sctp/ipv6.c | |||
@@ -641,6 +641,8 @@ static struct sock *sctp_v6_create_accept_sk(struct sock *sk, | |||
641 | newsctp6sk = (struct sctp6_sock *)newsk; | 641 | newsctp6sk = (struct sctp6_sock *)newsk; |
642 | inet_sk(newsk)->pinet6 = &newsctp6sk->inet6; | 642 | inet_sk(newsk)->pinet6 = &newsctp6sk->inet6; |
643 | 643 | ||
644 | sctp_sk(newsk)->v4mapped = sctp_sk(sk)->v4mapped; | ||
645 | |||
644 | newinet = inet_sk(newsk); | 646 | newinet = inet_sk(newsk); |
645 | newnp = inet6_sk(newsk); | 647 | newnp = inet6_sk(newsk); |
646 | 648 | ||
diff --git a/net/sctp/sm_make_chunk.c b/net/sctp/sm_make_chunk.c index 8d18f570c2e6..51c4d7fef1d2 100644 --- a/net/sctp/sm_make_chunk.c +++ b/net/sctp/sm_make_chunk.c | |||
@@ -65,8 +65,6 @@ | |||
65 | #include <net/sctp/sctp.h> | 65 | #include <net/sctp/sctp.h> |
66 | #include <net/sctp/sm.h> | 66 | #include <net/sctp/sm.h> |
67 | 67 | ||
68 | extern struct kmem_cache *sctp_chunk_cachep; | ||
69 | |||
70 | SCTP_STATIC | 68 | SCTP_STATIC |
71 | struct sctp_chunk *sctp_make_chunk(const struct sctp_association *asoc, | 69 | struct sctp_chunk *sctp_make_chunk(const struct sctp_association *asoc, |
72 | __u8 type, __u8 flags, int paylen); | 70 | __u8 type, __u8 flags, int paylen); |
@@ -115,15 +113,12 @@ void sctp_init_cause(struct sctp_chunk *chunk, __be16 cause_code, | |||
115 | const void *payload, size_t paylen) | 113 | const void *payload, size_t paylen) |
116 | { | 114 | { |
117 | sctp_errhdr_t err; | 115 | sctp_errhdr_t err; |
118 | int padlen; | ||
119 | __u16 len; | 116 | __u16 len; |
120 | 117 | ||
121 | /* Cause code constants are now defined in network order. */ | 118 | /* Cause code constants are now defined in network order. */ |
122 | err.cause = cause_code; | 119 | err.cause = cause_code; |
123 | len = sizeof(sctp_errhdr_t) + paylen; | 120 | len = sizeof(sctp_errhdr_t) + paylen; |
124 | padlen = len % 4; | ||
125 | err.length = htons(len); | 121 | err.length = htons(len); |
126 | len += padlen; | ||
127 | chunk->subh.err_hdr = sctp_addto_chunk(chunk, sizeof(sctp_errhdr_t), &err); | 122 | chunk->subh.err_hdr = sctp_addto_chunk(chunk, sizeof(sctp_errhdr_t), &err); |
128 | sctp_addto_chunk(chunk, paylen, payload); | 123 | sctp_addto_chunk(chunk, paylen, payload); |
129 | } | 124 | } |
@@ -1454,7 +1449,6 @@ no_hmac: | |||
1454 | do_gettimeofday(&tv); | 1449 | do_gettimeofday(&tv); |
1455 | 1450 | ||
1456 | if (!asoc && tv_lt(bear_cookie->expiration, tv)) { | 1451 | if (!asoc && tv_lt(bear_cookie->expiration, tv)) { |
1457 | __u16 len; | ||
1458 | /* | 1452 | /* |
1459 | * Section 3.3.10.3 Stale Cookie Error (3) | 1453 | * Section 3.3.10.3 Stale Cookie Error (3) |
1460 | * | 1454 | * |
diff --git a/net/sctp/sm_statefuns.c b/net/sctp/sm_statefuns.c index fd2dfdd7d7fd..71cad56dd73f 100644 --- a/net/sctp/sm_statefuns.c +++ b/net/sctp/sm_statefuns.c | |||
@@ -97,6 +97,13 @@ static sctp_disposition_t sctp_stop_t1_and_abort(sctp_cmd_seq_t *commands, | |||
97 | const struct sctp_association *asoc, | 97 | const struct sctp_association *asoc, |
98 | struct sctp_transport *transport); | 98 | struct sctp_transport *transport); |
99 | 99 | ||
100 | static sctp_disposition_t sctp_sf_abort_violation( | ||
101 | const struct sctp_association *asoc, | ||
102 | void *arg, | ||
103 | sctp_cmd_seq_t *commands, | ||
104 | const __u8 *payload, | ||
105 | const size_t paylen); | ||
106 | |||
100 | static sctp_disposition_t sctp_sf_violation_chunklen( | 107 | static sctp_disposition_t sctp_sf_violation_chunklen( |
101 | const struct sctp_endpoint *ep, | 108 | const struct sctp_endpoint *ep, |
102 | const struct sctp_association *asoc, | 109 | const struct sctp_association *asoc, |
@@ -104,6 +111,13 @@ static sctp_disposition_t sctp_sf_violation_chunklen( | |||
104 | void *arg, | 111 | void *arg, |
105 | sctp_cmd_seq_t *commands); | 112 | sctp_cmd_seq_t *commands); |
106 | 113 | ||
114 | static sctp_disposition_t sctp_sf_violation_ctsn( | ||
115 | const struct sctp_endpoint *ep, | ||
116 | const struct sctp_association *asoc, | ||
117 | const sctp_subtype_t type, | ||
118 | void *arg, | ||
119 | sctp_cmd_seq_t *commands); | ||
120 | |||
107 | /* Small helper function that checks if the chunk length | 121 | /* Small helper function that checks if the chunk length |
108 | * is of the appropriate length. The 'required_length' argument | 122 | * is of the appropriate length. The 'required_length' argument |
109 | * is set to be the size of a specific chunk we are testing. | 123 | * is set to be the size of a specific chunk we are testing. |
@@ -2880,6 +2894,13 @@ sctp_disposition_t sctp_sf_eat_sack_6_2(const struct sctp_endpoint *ep, | |||
2880 | return SCTP_DISPOSITION_DISCARD; | 2894 | return SCTP_DISPOSITION_DISCARD; |
2881 | } | 2895 | } |
2882 | 2896 | ||
2897 | /* If Cumulative TSN Ack beyond the max tsn currently | ||
2898 | * send, terminating the association and respond to the | ||
2899 | * sender with an ABORT. | ||
2900 | */ | ||
2901 | if (!TSN_lt(ctsn, asoc->next_tsn)) | ||
2902 | return sctp_sf_violation_ctsn(ep, asoc, type, arg, commands); | ||
2903 | |||
2883 | /* Return this SACK for further processing. */ | 2904 | /* Return this SACK for further processing. */ |
2884 | sctp_add_cmd_sf(commands, SCTP_CMD_PROCESS_SACK, SCTP_SACKH(sackh)); | 2905 | sctp_add_cmd_sf(commands, SCTP_CMD_PROCESS_SACK, SCTP_SACKH(sackh)); |
2885 | 2906 | ||
@@ -3691,40 +3712,21 @@ sctp_disposition_t sctp_sf_violation(const struct sctp_endpoint *ep, | |||
3691 | return SCTP_DISPOSITION_VIOLATION; | 3712 | return SCTP_DISPOSITION_VIOLATION; |
3692 | } | 3713 | } |
3693 | 3714 | ||
3694 | |||
3695 | /* | 3715 | /* |
3696 | * Handle a protocol violation when the chunk length is invalid. | 3716 | * Common function to handle a protocol violation. |
3697 | * "Invalid" length is identified as smaller then the minimal length a | ||
3698 | * given chunk can be. For example, a SACK chunk has invalid length | ||
3699 | * if it's length is set to be smaller then the size of sctp_sack_chunk_t. | ||
3700 | * | ||
3701 | * We inform the other end by sending an ABORT with a Protocol Violation | ||
3702 | * error code. | ||
3703 | * | ||
3704 | * Section: Not specified | ||
3705 | * Verification Tag: Nothing to do | ||
3706 | * Inputs | ||
3707 | * (endpoint, asoc, chunk) | ||
3708 | * | ||
3709 | * Outputs | ||
3710 | * (reply_msg, msg_up, counters) | ||
3711 | * | ||
3712 | * Generate an ABORT chunk and terminate the association. | ||
3713 | */ | 3717 | */ |
3714 | static sctp_disposition_t sctp_sf_violation_chunklen( | 3718 | static sctp_disposition_t sctp_sf_abort_violation( |
3715 | const struct sctp_endpoint *ep, | ||
3716 | const struct sctp_association *asoc, | 3719 | const struct sctp_association *asoc, |
3717 | const sctp_subtype_t type, | ||
3718 | void *arg, | 3720 | void *arg, |
3719 | sctp_cmd_seq_t *commands) | 3721 | sctp_cmd_seq_t *commands, |
3722 | const __u8 *payload, | ||
3723 | const size_t paylen) | ||
3720 | { | 3724 | { |
3721 | struct sctp_chunk *chunk = arg; | 3725 | struct sctp_chunk *chunk = arg; |
3722 | struct sctp_chunk *abort = NULL; | 3726 | struct sctp_chunk *abort = NULL; |
3723 | char err_str[]="The following chunk had invalid length:"; | ||
3724 | 3727 | ||
3725 | /* Make the abort chunk. */ | 3728 | /* Make the abort chunk. */ |
3726 | abort = sctp_make_abort_violation(asoc, chunk, err_str, | 3729 | abort = sctp_make_abort_violation(asoc, chunk, payload, paylen); |
3727 | sizeof(err_str)); | ||
3728 | if (!abort) | 3730 | if (!abort) |
3729 | goto nomem; | 3731 | goto nomem; |
3730 | 3732 | ||
@@ -3756,6 +3758,57 @@ nomem: | |||
3756 | return SCTP_DISPOSITION_NOMEM; | 3758 | return SCTP_DISPOSITION_NOMEM; |
3757 | } | 3759 | } |
3758 | 3760 | ||
3761 | /* | ||
3762 | * Handle a protocol violation when the chunk length is invalid. | ||
3763 | * "Invalid" length is identified as smaller then the minimal length a | ||
3764 | * given chunk can be. For example, a SACK chunk has invalid length | ||
3765 | * if it's length is set to be smaller then the size of sctp_sack_chunk_t. | ||
3766 | * | ||
3767 | * We inform the other end by sending an ABORT with a Protocol Violation | ||
3768 | * error code. | ||
3769 | * | ||
3770 | * Section: Not specified | ||
3771 | * Verification Tag: Nothing to do | ||
3772 | * Inputs | ||
3773 | * (endpoint, asoc, chunk) | ||
3774 | * | ||
3775 | * Outputs | ||
3776 | * (reply_msg, msg_up, counters) | ||
3777 | * | ||
3778 | * Generate an ABORT chunk and terminate the association. | ||
3779 | */ | ||
3780 | static sctp_disposition_t sctp_sf_violation_chunklen( | ||
3781 | const struct sctp_endpoint *ep, | ||
3782 | const struct sctp_association *asoc, | ||
3783 | const sctp_subtype_t type, | ||
3784 | void *arg, | ||
3785 | sctp_cmd_seq_t *commands) | ||
3786 | { | ||
3787 | char err_str[]="The following chunk had invalid length:"; | ||
3788 | |||
3789 | return sctp_sf_abort_violation(asoc, arg, commands, err_str, | ||
3790 | sizeof(err_str)); | ||
3791 | } | ||
3792 | |||
3793 | /* Handle a protocol violation when the peer trying to advance the | ||
3794 | * cumulative tsn ack to a point beyond the max tsn currently sent. | ||
3795 | * | ||
3796 | * We inform the other end by sending an ABORT with a Protocol Violation | ||
3797 | * error code. | ||
3798 | */ | ||
3799 | static sctp_disposition_t sctp_sf_violation_ctsn( | ||
3800 | const struct sctp_endpoint *ep, | ||
3801 | const struct sctp_association *asoc, | ||
3802 | const sctp_subtype_t type, | ||
3803 | void *arg, | ||
3804 | sctp_cmd_seq_t *commands) | ||
3805 | { | ||
3806 | char err_str[]="The cumulative tsn ack beyond the max tsn currently sent:"; | ||
3807 | |||
3808 | return sctp_sf_abort_violation(asoc, arg, commands, err_str, | ||
3809 | sizeof(err_str)); | ||
3810 | } | ||
3811 | |||
3759 | /*************************************************************************** | 3812 | /*************************************************************************** |
3760 | * These are the state functions for handling primitive (Section 10) events. | 3813 | * These are the state functions for handling primitive (Section 10) events. |
3761 | ***************************************************************************/ | 3814 | ***************************************************************************/ |
diff --git a/net/sctp/socket.c b/net/sctp/socket.c index ee88f2ea5101..01c6364245b7 100644 --- a/net/sctp/socket.c +++ b/net/sctp/socket.c | |||
@@ -107,8 +107,6 @@ static void sctp_sock_migrate(struct sock *, struct sock *, | |||
107 | struct sctp_association *, sctp_socket_type_t); | 107 | struct sctp_association *, sctp_socket_type_t); |
108 | static char *sctp_hmac_alg = SCTP_COOKIE_HMAC_ALG; | 108 | static char *sctp_hmac_alg = SCTP_COOKIE_HMAC_ALG; |
109 | 109 | ||
110 | extern struct kmem_cache *sctp_bucket_cachep; | ||
111 | |||
112 | /* Get the sndbuf space available at the time on the association. */ | 110 | /* Get the sndbuf space available at the time on the association. */ |
113 | static inline int sctp_wspace(struct sctp_association *asoc) | 111 | static inline int sctp_wspace(struct sctp_association *asoc) |
114 | { | 112 | { |
@@ -433,7 +431,7 @@ out: | |||
433 | * | 431 | * |
434 | * Only sctp_setsockopt_bindx() is supposed to call this function. | 432 | * Only sctp_setsockopt_bindx() is supposed to call this function. |
435 | */ | 433 | */ |
436 | int sctp_bindx_add(struct sock *sk, struct sockaddr *addrs, int addrcnt) | 434 | static int sctp_bindx_add(struct sock *sk, struct sockaddr *addrs, int addrcnt) |
437 | { | 435 | { |
438 | int cnt; | 436 | int cnt; |
439 | int retval = 0; | 437 | int retval = 0; |
@@ -602,7 +600,7 @@ out: | |||
602 | * | 600 | * |
603 | * Only sctp_setsockopt_bindx() is supposed to call this function. | 601 | * Only sctp_setsockopt_bindx() is supposed to call this function. |
604 | */ | 602 | */ |
605 | int sctp_bindx_rem(struct sock *sk, struct sockaddr *addrs, int addrcnt) | 603 | static int sctp_bindx_rem(struct sock *sk, struct sockaddr *addrs, int addrcnt) |
606 | { | 604 | { |
607 | struct sctp_sock *sp = sctp_sk(sk); | 605 | struct sctp_sock *sp = sctp_sk(sk); |
608 | struct sctp_endpoint *ep = sp->ep; | 606 | struct sctp_endpoint *ep = sp->ep; |
@@ -977,7 +975,7 @@ static int __sctp_connect(struct sock* sk, | |||
977 | int err = 0; | 975 | int err = 0; |
978 | int addrcnt = 0; | 976 | int addrcnt = 0; |
979 | int walk_size = 0; | 977 | int walk_size = 0; |
980 | union sctp_addr *sa_addr; | 978 | union sctp_addr *sa_addr = NULL; |
981 | void *addr_buf; | 979 | void *addr_buf; |
982 | unsigned short port; | 980 | unsigned short port; |
983 | unsigned int f_flags = 0; | 981 | unsigned int f_flags = 0; |
@@ -1011,7 +1009,10 @@ static int __sctp_connect(struct sock* sk, | |||
1011 | goto out_free; | 1009 | goto out_free; |
1012 | } | 1010 | } |
1013 | 1011 | ||
1014 | err = sctp_verify_addr(sk, sa_addr, af->sockaddr_len); | 1012 | /* Save current address so we can work with it */ |
1013 | memcpy(&to, sa_addr, af->sockaddr_len); | ||
1014 | |||
1015 | err = sctp_verify_addr(sk, &to, af->sockaddr_len); | ||
1015 | if (err) | 1016 | if (err) |
1016 | goto out_free; | 1017 | goto out_free; |
1017 | 1018 | ||
@@ -1021,12 +1022,11 @@ static int __sctp_connect(struct sock* sk, | |||
1021 | if (asoc && asoc->peer.port && asoc->peer.port != port) | 1022 | if (asoc && asoc->peer.port && asoc->peer.port != port) |
1022 | goto out_free; | 1023 | goto out_free; |
1023 | 1024 | ||
1024 | memcpy(&to, sa_addr, af->sockaddr_len); | ||
1025 | 1025 | ||
1026 | /* Check if there already is a matching association on the | 1026 | /* Check if there already is a matching association on the |
1027 | * endpoint (other than the one created here). | 1027 | * endpoint (other than the one created here). |
1028 | */ | 1028 | */ |
1029 | asoc2 = sctp_endpoint_lookup_assoc(ep, sa_addr, &transport); | 1029 | asoc2 = sctp_endpoint_lookup_assoc(ep, &to, &transport); |
1030 | if (asoc2 && asoc2 != asoc) { | 1030 | if (asoc2 && asoc2 != asoc) { |
1031 | if (asoc2->state >= SCTP_STATE_ESTABLISHED) | 1031 | if (asoc2->state >= SCTP_STATE_ESTABLISHED) |
1032 | err = -EISCONN; | 1032 | err = -EISCONN; |
@@ -1039,7 +1039,7 @@ static int __sctp_connect(struct sock* sk, | |||
1039 | * make sure that there is no peeled-off association matching | 1039 | * make sure that there is no peeled-off association matching |
1040 | * the peer address even on another socket. | 1040 | * the peer address even on another socket. |
1041 | */ | 1041 | */ |
1042 | if (sctp_endpoint_is_peeled_off(ep, sa_addr)) { | 1042 | if (sctp_endpoint_is_peeled_off(ep, &to)) { |
1043 | err = -EADDRNOTAVAIL; | 1043 | err = -EADDRNOTAVAIL; |
1044 | goto out_free; | 1044 | goto out_free; |
1045 | } | 1045 | } |
@@ -1070,7 +1070,7 @@ static int __sctp_connect(struct sock* sk, | |||
1070 | } | 1070 | } |
1071 | } | 1071 | } |
1072 | 1072 | ||
1073 | scope = sctp_scope(sa_addr); | 1073 | scope = sctp_scope(&to); |
1074 | asoc = sctp_association_new(ep, sk, scope, GFP_KERNEL); | 1074 | asoc = sctp_association_new(ep, sk, scope, GFP_KERNEL); |
1075 | if (!asoc) { | 1075 | if (!asoc) { |
1076 | err = -ENOMEM; | 1076 | err = -ENOMEM; |
@@ -1079,7 +1079,7 @@ static int __sctp_connect(struct sock* sk, | |||
1079 | } | 1079 | } |
1080 | 1080 | ||
1081 | /* Prime the peer's transport structures. */ | 1081 | /* Prime the peer's transport structures. */ |
1082 | transport = sctp_assoc_add_peer(asoc, sa_addr, GFP_KERNEL, | 1082 | transport = sctp_assoc_add_peer(asoc, &to, GFP_KERNEL, |
1083 | SCTP_UNKNOWN); | 1083 | SCTP_UNKNOWN); |
1084 | if (!transport) { | 1084 | if (!transport) { |
1085 | err = -ENOMEM; | 1085 | err = -ENOMEM; |
@@ -1103,8 +1103,8 @@ static int __sctp_connect(struct sock* sk, | |||
1103 | 1103 | ||
1104 | /* Initialize sk's dport and daddr for getpeername() */ | 1104 | /* Initialize sk's dport and daddr for getpeername() */ |
1105 | inet_sk(sk)->dport = htons(asoc->peer.port); | 1105 | inet_sk(sk)->dport = htons(asoc->peer.port); |
1106 | af = sctp_get_af_specific(to.sa.sa_family); | 1106 | af = sctp_get_af_specific(sa_addr->sa.sa_family); |
1107 | af->to_sk_daddr(&to, sk); | 1107 | af->to_sk_daddr(sa_addr, sk); |
1108 | sk->sk_err = 0; | 1108 | sk->sk_err = 0; |
1109 | 1109 | ||
1110 | /* in-kernel sockets don't generally have a file allocated to them | 1110 | /* in-kernel sockets don't generally have a file allocated to them |
@@ -1531,7 +1531,6 @@ SCTP_STATIC int sctp_sendmsg(struct kiocb *iocb, struct sock *sk, | |||
1531 | goto out_unlock; | 1531 | goto out_unlock; |
1532 | } | 1532 | } |
1533 | if (sinfo_flags & SCTP_ABORT) { | 1533 | if (sinfo_flags & SCTP_ABORT) { |
1534 | struct sctp_chunk *chunk; | ||
1535 | 1534 | ||
1536 | chunk = sctp_make_abort_user(asoc, msg, msg_len); | 1535 | chunk = sctp_make_abort_user(asoc, msg, msg_len); |
1537 | if (!chunk) { | 1536 | if (!chunk) { |
@@ -4353,7 +4352,7 @@ static int sctp_getsockopt_local_addrs(struct sock *sk, int len, | |||
4353 | space_left, &bytes_copied); | 4352 | space_left, &bytes_copied); |
4354 | if (cnt < 0) { | 4353 | if (cnt < 0) { |
4355 | err = cnt; | 4354 | err = cnt; |
4356 | goto error; | 4355 | goto error_lock; |
4357 | } | 4356 | } |
4358 | goto copy_getaddrs; | 4357 | goto copy_getaddrs; |
4359 | } | 4358 | } |
@@ -4367,7 +4366,7 @@ static int sctp_getsockopt_local_addrs(struct sock *sk, int len, | |||
4367 | addrlen = sctp_get_af_specific(temp.sa.sa_family)->sockaddr_len; | 4366 | addrlen = sctp_get_af_specific(temp.sa.sa_family)->sockaddr_len; |
4368 | if (space_left < addrlen) { | 4367 | if (space_left < addrlen) { |
4369 | err = -ENOMEM; /*fixme: right error?*/ | 4368 | err = -ENOMEM; /*fixme: right error?*/ |
4370 | goto error; | 4369 | goto error_lock; |
4371 | } | 4370 | } |
4372 | memcpy(buf, &temp, addrlen); | 4371 | memcpy(buf, &temp, addrlen); |
4373 | buf += addrlen; | 4372 | buf += addrlen; |
@@ -4381,15 +4380,21 @@ copy_getaddrs: | |||
4381 | 4380 | ||
4382 | if (copy_to_user(to, addrs, bytes_copied)) { | 4381 | if (copy_to_user(to, addrs, bytes_copied)) { |
4383 | err = -EFAULT; | 4382 | err = -EFAULT; |
4384 | goto error; | 4383 | goto out; |
4385 | } | 4384 | } |
4386 | if (put_user(cnt, &((struct sctp_getaddrs __user *)optval)->addr_num)) { | 4385 | if (put_user(cnt, &((struct sctp_getaddrs __user *)optval)->addr_num)) { |
4387 | err = -EFAULT; | 4386 | err = -EFAULT; |
4388 | goto error; | 4387 | goto out; |
4389 | } | 4388 | } |
4390 | if (put_user(bytes_copied, optlen)) | 4389 | if (put_user(bytes_copied, optlen)) |
4391 | err = -EFAULT; | 4390 | err = -EFAULT; |
4392 | error: | 4391 | |
4392 | goto out; | ||
4393 | |||
4394 | error_lock: | ||
4395 | sctp_read_unlock(addr_lock); | ||
4396 | |||
4397 | out: | ||
4393 | kfree(addrs); | 4398 | kfree(addrs); |
4394 | return err; | 4399 | return err; |
4395 | } | 4400 | } |
@@ -5964,7 +5969,7 @@ static int sctp_wait_for_accept(struct sock *sk, long timeo) | |||
5964 | return err; | 5969 | return err; |
5965 | } | 5970 | } |
5966 | 5971 | ||
5967 | void sctp_wait_for_close(struct sock *sk, long timeout) | 5972 | static void sctp_wait_for_close(struct sock *sk, long timeout) |
5968 | { | 5973 | { |
5969 | DEFINE_WAIT(wait); | 5974 | DEFINE_WAIT(wait); |
5970 | 5975 | ||
diff --git a/net/sctp/tsnmap.c b/net/sctp/tsnmap.c index d3192a1babcc..1ff0daade304 100644 --- a/net/sctp/tsnmap.c +++ b/net/sctp/tsnmap.c | |||
@@ -161,7 +161,7 @@ SCTP_STATIC int sctp_tsnmap_next_gap_ack(const struct sctp_tsnmap *map, | |||
161 | __u16 *start, __u16 *end) | 161 | __u16 *start, __u16 *end) |
162 | { | 162 | { |
163 | int started, ended; | 163 | int started, ended; |
164 | __u16 _start, _end, offset; | 164 | __u16 start_, end_, offset; |
165 | 165 | ||
166 | /* We haven't found a gap yet. */ | 166 | /* We haven't found a gap yet. */ |
167 | started = ended = 0; | 167 | started = ended = 0; |
@@ -175,7 +175,7 @@ SCTP_STATIC int sctp_tsnmap_next_gap_ack(const struct sctp_tsnmap *map, | |||
175 | 175 | ||
176 | offset = iter->start - map->base_tsn; | 176 | offset = iter->start - map->base_tsn; |
177 | sctp_tsnmap_find_gap_ack(map->tsn_map, offset, map->len, 0, | 177 | sctp_tsnmap_find_gap_ack(map->tsn_map, offset, map->len, 0, |
178 | &started, &_start, &ended, &_end); | 178 | &started, &start_, &ended, &end_); |
179 | } | 179 | } |
180 | 180 | ||
181 | /* Do we need to check the overflow map? */ | 181 | /* Do we need to check the overflow map? */ |
@@ -193,8 +193,8 @@ SCTP_STATIC int sctp_tsnmap_next_gap_ack(const struct sctp_tsnmap *map, | |||
193 | offset, | 193 | offset, |
194 | map->len, | 194 | map->len, |
195 | map->len, | 195 | map->len, |
196 | &started, &_start, | 196 | &started, &start_, |
197 | &ended, &_end); | 197 | &ended, &end_); |
198 | } | 198 | } |
199 | 199 | ||
200 | /* The Gap Ack Block happens to end at the end of the | 200 | /* The Gap Ack Block happens to end at the end of the |
@@ -202,7 +202,7 @@ SCTP_STATIC int sctp_tsnmap_next_gap_ack(const struct sctp_tsnmap *map, | |||
202 | */ | 202 | */ |
203 | if (started && !ended) { | 203 | if (started && !ended) { |
204 | ended++; | 204 | ended++; |
205 | _end = map->len + map->len - 1; | 205 | end_ = map->len + map->len - 1; |
206 | } | 206 | } |
207 | 207 | ||
208 | /* If we found a Gap Ack Block, return the start and end and | 208 | /* If we found a Gap Ack Block, return the start and end and |
@@ -215,8 +215,8 @@ SCTP_STATIC int sctp_tsnmap_next_gap_ack(const struct sctp_tsnmap *map, | |||
215 | int gap = map->cumulative_tsn_ack_point - | 215 | int gap = map->cumulative_tsn_ack_point - |
216 | map->base_tsn; | 216 | map->base_tsn; |
217 | 217 | ||
218 | *start = _start - gap; | 218 | *start = start_ - gap; |
219 | *end = _end - gap; | 219 | *end = end_ - gap; |
220 | 220 | ||
221 | /* Move the iterator forward. */ | 221 | /* Move the iterator forward. */ |
222 | iter->start = map->cumulative_tsn_ack_point + *end + 1; | 222 | iter->start = map->cumulative_tsn_ack_point + *end + 1; |
diff --git a/net/tipc/link.c b/net/tipc/link.c index 1d674e0848fa..1b17fecee747 100644 --- a/net/tipc/link.c +++ b/net/tipc/link.c | |||
@@ -2383,10 +2383,10 @@ void tipc_link_changeover(struct link *l_ptr) | |||
2383 | struct tipc_msg *msg = buf_msg(crs); | 2383 | struct tipc_msg *msg = buf_msg(crs); |
2384 | 2384 | ||
2385 | if ((msg_user(msg) == MSG_BUNDLER) && split_bundles) { | 2385 | if ((msg_user(msg) == MSG_BUNDLER) && split_bundles) { |
2386 | u32 msgcount = msg_msgcnt(msg); | ||
2387 | struct tipc_msg *m = msg_get_wrapped(msg); | 2386 | struct tipc_msg *m = msg_get_wrapped(msg); |
2388 | unchar* pos = (unchar*)m; | 2387 | unchar* pos = (unchar*)m; |
2389 | 2388 | ||
2389 | msgcount = msg_msgcnt(msg); | ||
2390 | while (msgcount--) { | 2390 | while (msgcount--) { |
2391 | msg_set_seqno(m,msg_seqno(msg)); | 2391 | msg_set_seqno(m,msg_seqno(msg)); |
2392 | tipc_link_tunnel(l_ptr, &tunnel_hdr, m, | 2392 | tipc_link_tunnel(l_ptr, &tunnel_hdr, m, |
diff --git a/net/tipc/name_table.c b/net/tipc/name_table.c index d8473eefcd23..ac7dfdda7973 100644 --- a/net/tipc/name_table.c +++ b/net/tipc/name_table.c | |||
@@ -501,7 +501,7 @@ end_node: | |||
501 | * sequence overlapping with the requested sequence | 501 | * sequence overlapping with the requested sequence |
502 | */ | 502 | */ |
503 | 503 | ||
504 | void tipc_nameseq_subscribe(struct name_seq *nseq, struct subscription *s) | 504 | static void tipc_nameseq_subscribe(struct name_seq *nseq, struct subscription *s) |
505 | { | 505 | { |
506 | struct sub_seq *sseq = nseq->sseqs; | 506 | struct sub_seq *sseq = nseq->sseqs; |
507 | 507 | ||
diff --git a/net/tipc/node.c b/net/tipc/node.c index e2e452a62ba1..598f4d3a0098 100644 --- a/net/tipc/node.c +++ b/net/tipc/node.c | |||
@@ -241,8 +241,6 @@ struct node *tipc_node_attach_link(struct link *l_ptr) | |||
241 | char addr_string[16]; | 241 | char addr_string[16]; |
242 | 242 | ||
243 | if (n_ptr->link_cnt >= 2) { | 243 | if (n_ptr->link_cnt >= 2) { |
244 | char addr_string[16]; | ||
245 | |||
246 | err("Attempt to create third link to %s\n", | 244 | err("Attempt to create third link to %s\n", |
247 | addr_string_fill(addr_string, n_ptr->addr)); | 245 | addr_string_fill(addr_string, n_ptr->addr)); |
248 | return NULL; | 246 | return NULL; |
diff --git a/net/wanrouter/wanmain.c b/net/wanrouter/wanmain.c index 849cc06bd914..9ab31a3ce3ad 100644 --- a/net/wanrouter/wanmain.c +++ b/net/wanrouter/wanmain.c | |||
@@ -46,7 +46,6 @@ | |||
46 | #include <linux/capability.h> | 46 | #include <linux/capability.h> |
47 | #include <linux/errno.h> /* return codes */ | 47 | #include <linux/errno.h> /* return codes */ |
48 | #include <linux/kernel.h> | 48 | #include <linux/kernel.h> |
49 | #include <linux/init.h> | ||
50 | #include <linux/module.h> /* support for loadable modules */ | 49 | #include <linux/module.h> /* support for loadable modules */ |
51 | #include <linux/slab.h> /* kmalloc(), kfree() */ | 50 | #include <linux/slab.h> /* kmalloc(), kfree() */ |
52 | #include <linux/mm.h> | 51 | #include <linux/mm.h> |
diff --git a/sound/sparc/cs4231.c b/sound/sparc/cs4231.c index dca0344cc1bc..f2950cab74a6 100644 --- a/sound/sparc/cs4231.c +++ b/sound/sparc/cs4231.c | |||
@@ -74,7 +74,6 @@ struct cs4231_dma_control { | |||
74 | void (*enable)(struct cs4231_dma_control *dma_cont, int on); | 74 | void (*enable)(struct cs4231_dma_control *dma_cont, int on); |
75 | int (*request)(struct cs4231_dma_control *dma_cont, dma_addr_t bus_addr, size_t len); | 75 | int (*request)(struct cs4231_dma_control *dma_cont, dma_addr_t bus_addr, size_t len); |
76 | unsigned int (*address)(struct cs4231_dma_control *dma_cont); | 76 | unsigned int (*address)(struct cs4231_dma_control *dma_cont); |
77 | void (*reset)(struct snd_cs4231 *chip); | ||
78 | void (*preallocate)(struct snd_cs4231 *chip, struct snd_pcm *pcm); | 77 | void (*preallocate)(struct snd_cs4231 *chip, struct snd_pcm *pcm); |
79 | #ifdef EBUS_SUPPORT | 78 | #ifdef EBUS_SUPPORT |
80 | struct ebus_dma_info ebus_info; | 79 | struct ebus_dma_info ebus_info; |
@@ -1214,10 +1213,6 @@ static int __init snd_cs4231_probe(struct snd_cs4231 *chip) | |||
1214 | 1213 | ||
1215 | spin_lock_irqsave(&chip->lock, flags); | 1214 | spin_lock_irqsave(&chip->lock, flags); |
1216 | 1215 | ||
1217 | |||
1218 | /* Reset DMA engine (sbus only). */ | ||
1219 | chip->p_dma.reset(chip); | ||
1220 | |||
1221 | __cs4231_readb(chip, CS4231P(chip, STATUS)); /* clear any pendings IRQ */ | 1216 | __cs4231_readb(chip, CS4231P(chip, STATUS)); /* clear any pendings IRQ */ |
1222 | __cs4231_writeb(chip, 0, CS4231P(chip, STATUS)); | 1217 | __cs4231_writeb(chip, 0, CS4231P(chip, STATUS)); |
1223 | mb(); | 1218 | mb(); |
@@ -1861,14 +1856,13 @@ static void sbus_dma_enable(struct cs4231_dma_control *dma_cont, int on) | |||
1861 | if (!on) { | 1856 | if (!on) { |
1862 | sbus_writel(0, base->regs + base->dir + APCNC); | 1857 | sbus_writel(0, base->regs + base->dir + APCNC); |
1863 | sbus_writel(0, base->regs + base->dir + APCNVA); | 1858 | sbus_writel(0, base->regs + base->dir + APCNVA); |
1864 | sbus_writel(0, base->regs + base->dir + APCC); | 1859 | if ( base->dir == APC_PLAY ) { |
1865 | sbus_writel(0, base->regs + base->dir + APCVA); | 1860 | sbus_writel(0, base->regs + base->dir + APCC); |
1861 | sbus_writel(0, base->regs + base->dir + APCVA); | ||
1862 | } | ||
1866 | 1863 | ||
1867 | /* ACK any APC interrupts. */ | 1864 | udelay(1200); |
1868 | csr = sbus_readl(base->regs + APCCSR); | ||
1869 | sbus_writel(csr, base->regs + APCCSR); | ||
1870 | } | 1865 | } |
1871 | udelay(1000); | ||
1872 | csr = sbus_readl(base->regs + APCCSR); | 1866 | csr = sbus_readl(base->regs + APCCSR); |
1873 | shift = 0; | 1867 | shift = 0; |
1874 | if ( base->dir == APC_PLAY ) | 1868 | if ( base->dir == APC_PLAY ) |
@@ -1894,23 +1888,6 @@ static unsigned int sbus_dma_addr(struct cs4231_dma_control *dma_cont) | |||
1894 | return sbus_readl(base->regs + base->dir + APCVA); | 1888 | return sbus_readl(base->regs + base->dir + APCVA); |
1895 | } | 1889 | } |
1896 | 1890 | ||
1897 | static void sbus_dma_reset(struct snd_cs4231 *chip) | ||
1898 | { | ||
1899 | sbus_writel(APC_CHIP_RESET, chip->port + APCCSR); | ||
1900 | sbus_writel(0x00, chip->port + APCCSR); | ||
1901 | sbus_writel(sbus_readl(chip->port + APCCSR) | APC_CDC_RESET, | ||
1902 | chip->port + APCCSR); | ||
1903 | |||
1904 | udelay(20); | ||
1905 | |||
1906 | sbus_writel(sbus_readl(chip->port + APCCSR) & ~APC_CDC_RESET, | ||
1907 | chip->port + APCCSR); | ||
1908 | sbus_writel(sbus_readl(chip->port + APCCSR) | (APC_XINT_ENA | | ||
1909 | APC_XINT_PENA | | ||
1910 | APC_XINT_CENA), | ||
1911 | chip->port + APCCSR); | ||
1912 | } | ||
1913 | |||
1914 | static void sbus_dma_preallocate(struct snd_cs4231 *chip, struct snd_pcm *pcm) | 1891 | static void sbus_dma_preallocate(struct snd_cs4231 *chip, struct snd_pcm *pcm) |
1915 | { | 1892 | { |
1916 | snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_SBUS, | 1893 | snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_SBUS, |
@@ -1986,14 +1963,12 @@ static int __init snd_cs4231_sbus_create(struct snd_card *card, | |||
1986 | chip->p_dma.enable = sbus_dma_enable; | 1963 | chip->p_dma.enable = sbus_dma_enable; |
1987 | chip->p_dma.request = sbus_dma_request; | 1964 | chip->p_dma.request = sbus_dma_request; |
1988 | chip->p_dma.address = sbus_dma_addr; | 1965 | chip->p_dma.address = sbus_dma_addr; |
1989 | chip->p_dma.reset = sbus_dma_reset; | ||
1990 | chip->p_dma.preallocate = sbus_dma_preallocate; | 1966 | chip->p_dma.preallocate = sbus_dma_preallocate; |
1991 | 1967 | ||
1992 | chip->c_dma.prepare = sbus_dma_prepare; | 1968 | chip->c_dma.prepare = sbus_dma_prepare; |
1993 | chip->c_dma.enable = sbus_dma_enable; | 1969 | chip->c_dma.enable = sbus_dma_enable; |
1994 | chip->c_dma.request = sbus_dma_request; | 1970 | chip->c_dma.request = sbus_dma_request; |
1995 | chip->c_dma.address = sbus_dma_addr; | 1971 | chip->c_dma.address = sbus_dma_addr; |
1996 | chip->c_dma.reset = sbus_dma_reset; | ||
1997 | chip->c_dma.preallocate = sbus_dma_preallocate; | 1972 | chip->c_dma.preallocate = sbus_dma_preallocate; |
1998 | 1973 | ||
1999 | if (request_irq(sdev->irqs[0], snd_cs4231_sbus_interrupt, | 1974 | if (request_irq(sdev->irqs[0], snd_cs4231_sbus_interrupt, |
@@ -2087,11 +2062,6 @@ static unsigned int _ebus_dma_addr(struct cs4231_dma_control *dma_cont) | |||
2087 | return ebus_dma_addr(&dma_cont->ebus_info); | 2062 | return ebus_dma_addr(&dma_cont->ebus_info); |
2088 | } | 2063 | } |
2089 | 2064 | ||
2090 | static void _ebus_dma_reset(struct snd_cs4231 *chip) | ||
2091 | { | ||
2092 | return; | ||
2093 | } | ||
2094 | |||
2095 | static void _ebus_dma_preallocate(struct snd_cs4231 *chip, struct snd_pcm *pcm) | 2065 | static void _ebus_dma_preallocate(struct snd_cs4231 *chip, struct snd_pcm *pcm) |
2096 | { | 2066 | { |
2097 | snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV, | 2067 | snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV, |
@@ -2171,14 +2141,12 @@ static int __init snd_cs4231_ebus_create(struct snd_card *card, | |||
2171 | chip->p_dma.enable = _ebus_dma_enable; | 2141 | chip->p_dma.enable = _ebus_dma_enable; |
2172 | chip->p_dma.request = _ebus_dma_request; | 2142 | chip->p_dma.request = _ebus_dma_request; |
2173 | chip->p_dma.address = _ebus_dma_addr; | 2143 | chip->p_dma.address = _ebus_dma_addr; |
2174 | chip->p_dma.reset = _ebus_dma_reset; | ||
2175 | chip->p_dma.preallocate = _ebus_dma_preallocate; | 2144 | chip->p_dma.preallocate = _ebus_dma_preallocate; |
2176 | 2145 | ||
2177 | chip->c_dma.prepare = _ebus_dma_prepare; | 2146 | chip->c_dma.prepare = _ebus_dma_prepare; |
2178 | chip->c_dma.enable = _ebus_dma_enable; | 2147 | chip->c_dma.enable = _ebus_dma_enable; |
2179 | chip->c_dma.request = _ebus_dma_request; | 2148 | chip->c_dma.request = _ebus_dma_request; |
2180 | chip->c_dma.address = _ebus_dma_addr; | 2149 | chip->c_dma.address = _ebus_dma_addr; |
2181 | chip->c_dma.reset = _ebus_dma_reset; | ||
2182 | chip->c_dma.preallocate = _ebus_dma_preallocate; | 2150 | chip->c_dma.preallocate = _ebus_dma_preallocate; |
2183 | 2151 | ||
2184 | chip->port = ioremap(edev->resource[0].start, 0x10); | 2152 | chip->port = ioremap(edev->resource[0].start, 0x10); |