/[linux-patches]/genpatches-2.6/trunk/2.6.16/1001_linux-2.6.16.2.patch
Gentoo

Contents of /genpatches-2.6/trunk/2.6.16/1001_linux-2.6.16.2.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 368 - (show annotations) (download) (as text)
Tue Apr 11 11:36:02 2006 UTC (14 years, 6 months ago) by dsd
File MIME type: text/x-diff
File size: 21471 byte(s)
Linux 2.6.16.2 thanks to Marko Steinberger in bug #129176
1 diff --git a/arch/i386/kernel/cpu/cpufreq/Kconfig b/arch/i386/kernel/cpu/cpufreq/Kconfig
2 index 26892d2..16f2e35 100644
3 --- a/arch/i386/kernel/cpu/cpufreq/Kconfig
4 +++ b/arch/i386/kernel/cpu/cpufreq/Kconfig
5 @@ -203,6 +203,7 @@ config X86_LONGRUN
6 config X86_LONGHAUL
7 tristate "VIA Cyrix III Longhaul"
8 select CPU_FREQ_TABLE
9 + depends on BROKEN
10 help
11 This adds the CPUFreq driver for VIA Samuel/CyrixIII,
12 VIA Cyrix Samuel/C3, VIA Cyrix Ezra and VIA Cyrix Ezra-T
13 diff --git a/arch/i386/kernel/cpu/cpufreq/p4-clockmod.c b/arch/i386/kernel/cpu/cpufreq/p4-clockmod.c
14 index cc73a7a..ebe1848 100644
15 --- a/arch/i386/kernel/cpu/cpufreq/p4-clockmod.c
16 +++ b/arch/i386/kernel/cpu/cpufreq/p4-clockmod.c
17 @@ -244,7 +244,7 @@ static int cpufreq_p4_cpu_init(struct cp
18 for (i=1; (p4clockmod_table[i].frequency != CPUFREQ_TABLE_END); i++) {
19 if ((i<2) && (has_N44_O17_errata[policy->cpu]))
20 p4clockmod_table[i].frequency = CPUFREQ_ENTRY_INVALID;
21 - else if (has_N60_errata[policy->cpu] && p4clockmod_table[i].frequency < 2000000)
22 + else if (has_N60_errata[policy->cpu] && ((stock_freq * i)/8) < 2000000)
23 p4clockmod_table[i].frequency = CPUFREQ_ENTRY_INVALID;
24 else
25 p4clockmod_table[i].frequency = (stock_freq * i)/8;
26 diff --git a/arch/powerpc/kernel/pci_64.c b/arch/powerpc/kernel/pci_64.c
27 index ba92bab..4c4449b 100644
28 --- a/arch/powerpc/kernel/pci_64.c
29 +++ b/arch/powerpc/kernel/pci_64.c
30 @@ -78,6 +78,7 @@ int global_phb_number; /* Global phb co
31
32 /* Cached ISA bridge dev. */
33 struct pci_dev *ppc64_isabridge_dev = NULL;
34 +EXPORT_SYMBOL_GPL(ppc64_isabridge_dev);
35
36 static void fixup_broken_pcnet32(struct pci_dev* dev)
37 {
38 diff --git a/drivers/base/node.c b/drivers/base/node.c
39 index 16c513a..c80c3ae 100644
40 --- a/drivers/base/node.c
41 +++ b/drivers/base/node.c
42 @@ -106,7 +106,7 @@ static ssize_t node_read_numastat(struct
43 other_node = 0;
44 for (i = 0; i < MAX_NR_ZONES; i++) {
45 struct zone *z = &pg->node_zones[i];
46 - for (cpu = 0; cpu < NR_CPUS; cpu++) {
47 + for_each_online_cpu(cpu) {
48 struct per_cpu_pageset *ps = zone_pcp(z,cpu);
49 numa_hit += ps->numa_hit;
50 numa_miss += ps->numa_miss;
51 diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig
52 index 05ba410..8b72a61 100644
53 --- a/drivers/char/Kconfig
54 +++ b/drivers/char/Kconfig
55 @@ -187,6 +187,7 @@ config MOXA_SMARTIO
56 config ISI
57 tristate "Multi-Tech multiport card support (EXPERIMENTAL)"
58 depends on SERIAL_NONSTANDARD
59 + select FW_LOADER
60 help
61 This is a driver for the Multi-Tech cards which provide several
62 serial ports. The driver is experimental and can currently only be
63 diff --git a/drivers/char/tlclk.c b/drivers/char/tlclk.c
64 index 4c27218..2546637 100644
65 --- a/drivers/char/tlclk.c
66 +++ b/drivers/char/tlclk.c
67 @@ -767,6 +767,7 @@ static int __init tlclk_init(void)
68 printk(KERN_ERR "tlclk: can't get major %d.\n", tlclk_major);
69 return ret;
70 }
71 + tlclk_major = ret;
72 alarm_events = kzalloc( sizeof(struct tlclk_alarms), GFP_KERNEL);
73 if (!alarm_events)
74 goto out1;
75 diff --git a/drivers/ieee1394/sbp2.c b/drivers/ieee1394/sbp2.c
76 index eca92eb..d83248e 100644
77 --- a/drivers/ieee1394/sbp2.c
78 +++ b/drivers/ieee1394/sbp2.c
79 @@ -495,22 +495,17 @@ static struct sbp2_command_info *sbp2uti
80 /*
81 * This function finds the sbp2_command for a given outstanding SCpnt.
82 * Only looks at the inuse list.
83 + * Must be called with scsi_id->sbp2_command_orb_lock held.
84 */
85 -static struct sbp2_command_info *sbp2util_find_command_for_SCpnt(struct scsi_id_instance_data *scsi_id, void *SCpnt)
86 +static struct sbp2_command_info *sbp2util_find_command_for_SCpnt(
87 + struct scsi_id_instance_data *scsi_id, void *SCpnt)
88 {
89 struct sbp2_command_info *command;
90 - unsigned long flags;
91
92 - spin_lock_irqsave(&scsi_id->sbp2_command_orb_lock, flags);
93 - if (!list_empty(&scsi_id->sbp2_command_orb_inuse)) {
94 - list_for_each_entry(command, &scsi_id->sbp2_command_orb_inuse, list) {
95 - if (command->Current_SCpnt == SCpnt) {
96 - spin_unlock_irqrestore(&scsi_id->sbp2_command_orb_lock, flags);
97 + if (!list_empty(&scsi_id->sbp2_command_orb_inuse))
98 + list_for_each_entry(command, &scsi_id->sbp2_command_orb_inuse, list)
99 + if (command->Current_SCpnt == SCpnt)
100 return command;
101 - }
102 - }
103 - }
104 - spin_unlock_irqrestore(&scsi_id->sbp2_command_orb_lock, flags);
105 return NULL;
106 }
107
108 @@ -579,17 +574,15 @@ static void sbp2util_free_command_dma(st
109
110 /*
111 * This function moves a command to the completed orb list.
112 + * Must be called with scsi_id->sbp2_command_orb_lock held.
113 */
114 -static void sbp2util_mark_command_completed(struct scsi_id_instance_data *scsi_id,
115 - struct sbp2_command_info *command)
116 +static void sbp2util_mark_command_completed(
117 + struct scsi_id_instance_data *scsi_id,
118 + struct sbp2_command_info *command)
119 {
120 - unsigned long flags;
121 -
122 - spin_lock_irqsave(&scsi_id->sbp2_command_orb_lock, flags);
123 list_del(&command->list);
124 sbp2util_free_command_dma(command);
125 list_add_tail(&command->list, &scsi_id->sbp2_command_orb_completed);
126 - spin_unlock_irqrestore(&scsi_id->sbp2_command_orb_lock, flags);
127 }
128
129 /*
130 @@ -2177,7 +2170,9 @@ static int sbp2_handle_status_write(stru
131 * Matched status with command, now grab scsi command pointers and check status
132 */
133 SCpnt = command->Current_SCpnt;
134 + spin_lock_irqsave(&scsi_id->sbp2_command_orb_lock, flags);
135 sbp2util_mark_command_completed(scsi_id, command);
136 + spin_unlock_irqrestore(&scsi_id->sbp2_command_orb_lock, flags);
137
138 if (SCpnt) {
139
140 @@ -2513,6 +2508,7 @@ static int sbp2scsi_abort(struct scsi_cm
141 (struct scsi_id_instance_data *)SCpnt->device->host->hostdata[0];
142 struct sbp2scsi_host_info *hi = scsi_id->hi;
143 struct sbp2_command_info *command;
144 + unsigned long flags;
145
146 SBP2_ERR("aborting sbp2 command");
147 scsi_print_command(SCpnt);
148 @@ -2523,6 +2519,7 @@ static int sbp2scsi_abort(struct scsi_cm
149 * Right now, just return any matching command structures
150 * to the free pool.
151 */
152 + spin_lock_irqsave(&scsi_id->sbp2_command_orb_lock, flags);
153 command = sbp2util_find_command_for_SCpnt(scsi_id, SCpnt);
154 if (command) {
155 SBP2_DEBUG("Found command to abort");
156 @@ -2540,6 +2537,7 @@ static int sbp2scsi_abort(struct scsi_cm
157 command->Current_done(command->Current_SCpnt);
158 }
159 }
160 + spin_unlock_irqrestore(&scsi_id->sbp2_command_orb_lock, flags);
161
162 /*
163 * Initiate a fetch agent reset.
164 diff --git a/drivers/net/irda/irda-usb.c b/drivers/net/irda/irda-usb.c
165 index 8936058..6e2ec56 100644
166 --- a/drivers/net/irda/irda-usb.c
167 +++ b/drivers/net/irda/irda-usb.c
168 @@ -740,7 +740,7 @@ static void irda_usb_receive(struct urb
169 struct sk_buff *newskb;
170 struct sk_buff *dataskb;
171 struct urb *next_urb;
172 - int docopy;
173 + unsigned int len, docopy;
174
175 IRDA_DEBUG(2, "%s(), len=%d\n", __FUNCTION__, urb->actual_length);
176
177 @@ -851,10 +851,11 @@ static void irda_usb_receive(struct urb
178 dataskb->dev = self->netdev;
179 dataskb->mac.raw = dataskb->data;
180 dataskb->protocol = htons(ETH_P_IRDA);
181 + len = dataskb->len;
182 netif_rx(dataskb);
183
184 /* Keep stats up to date */
185 - self->stats.rx_bytes += dataskb->len;
186 + self->stats.rx_bytes += len;
187 self->stats.rx_packets++;
188 self->netdev->last_rx = jiffies;
189
190 diff --git a/drivers/net/wireless/Kconfig b/drivers/net/wireless/Kconfig
191 index ef85d76..8101657 100644
192 --- a/drivers/net/wireless/Kconfig
193 +++ b/drivers/net/wireless/Kconfig
194 @@ -239,7 +239,8 @@ config IPW2200_DEBUG
195
196 config AIRO
197 tristate "Cisco/Aironet 34X/35X/4500/4800 ISA and PCI cards"
198 - depends on NET_RADIO && ISA_DMA_API && CRYPTO && (PCI || BROKEN)
199 + depends on NET_RADIO && ISA_DMA_API && (PCI || BROKEN)
200 + select CRYPTO
201 ---help---
202 This is the standard Linux driver to support Cisco/Aironet ISA and
203 PCI 802.11 wireless cards.
204 @@ -374,6 +375,7 @@ config PCMCIA_HERMES
205 config PCMCIA_SPECTRUM
206 tristate "Symbol Spectrum24 Trilogy PCMCIA card support"
207 depends on NET_RADIO && PCMCIA && HERMES
208 + select FW_LOADER
209 ---help---
210
211 This is a driver for 802.11b cards using RAM-loadable Symbol
212 @@ -387,6 +389,7 @@ config PCMCIA_SPECTRUM
213 config AIRO_CS
214 tristate "Cisco/Aironet 34X/35X/4500/4800 PCMCIA cards"
215 depends on NET_RADIO && PCMCIA && (BROKEN || !M32R)
216 + select CRYPTO
217 ---help---
218 This is the standard Linux driver to support Cisco/Aironet PCMCIA
219 802.11 wireless cards. This driver is the same as the Aironet
220 diff --git a/drivers/net/wireless/hostap/hostap_80211_tx.c b/drivers/net/wireless/hostap/hostap_80211_tx.c
221 index 4a85e63..5f398bd 100644
222 --- a/drivers/net/wireless/hostap/hostap_80211_tx.c
223 +++ b/drivers/net/wireless/hostap/hostap_80211_tx.c
224 @@ -469,7 +469,7 @@ int hostap_master_start_xmit(struct sk_b
225 }
226
227 if (local->ieee_802_1x && meta->ethertype == ETH_P_PAE && tx.crypt &&
228 - !(fc & IEEE80211_FCTL_VERS)) {
229 + !(fc & IEEE80211_FCTL_PROTECTED)) {
230 no_encrypt = 1;
231 PDEBUG(DEBUG_EXTRA2, "%s: TX: IEEE 802.1X - passing "
232 "unencrypted EAPOL frame\n", dev->name);
233 diff --git a/drivers/net/wireless/ipw2200.c b/drivers/net/wireless/ipw2200.c
234 index 287676a..aa6f3a4 100644
235 --- a/drivers/net/wireless/ipw2200.c
236 +++ b/drivers/net/wireless/ipw2200.c
237 @@ -9956,9 +9956,8 @@ static int ipw_ethtool_set_eeprom(struct
238 return -EINVAL;
239 down(&p->sem);
240 memcpy(&p->eeprom[eeprom->offset], bytes, eeprom->len);
241 - for (i = IPW_EEPROM_DATA;
242 - i < IPW_EEPROM_DATA + IPW_EEPROM_IMAGE_SIZE; i++)
243 - ipw_write8(p, i, p->eeprom[i]);
244 + for (i = 0; i < IPW_EEPROM_IMAGE_SIZE; i++)
245 + ipw_write8(p, i + IPW_EEPROM_DATA, p->eeprom[i]);
246 up(&p->sem);
247 return 0;
248 }
249 diff --git a/drivers/pcmcia/ds.c b/drivers/pcmcia/ds.c
250 index bb96ce1..a4333a8 100644
251 --- a/drivers/pcmcia/ds.c
252 +++ b/drivers/pcmcia/ds.c
253 @@ -546,7 +546,7 @@ static int pcmcia_device_query(struct pc
254 tmp = vers1->str + vers1->ofs[i];
255
256 length = strlen(tmp) + 1;
257 - if ((length < 3) || (length > 255))
258 + if ((length < 2) || (length > 255))
259 continue;
260
261 p_dev->prod_id[i] = kmalloc(sizeof(char) * length,
262 diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c
263 index 7135e54..96cabeb 100644
264 --- a/drivers/usb/core/message.c
265 +++ b/drivers/usb/core/message.c
266 @@ -1388,11 +1388,13 @@ free_interfaces:
267 if (dev->state != USB_STATE_ADDRESS)
268 usb_disable_device (dev, 1); // Skip ep0
269
270 - i = dev->bus_mA - cp->desc.bMaxPower * 2;
271 - if (i < 0)
272 - dev_warn(&dev->dev, "new config #%d exceeds power "
273 - "limit by %dmA\n",
274 - configuration, -i);
275 + if (cp) {
276 + i = dev->bus_mA - cp->desc.bMaxPower * 2;
277 + if (i < 0)
278 + dev_warn(&dev->dev, "new config #%d exceeds power "
279 + "limit by %dmA\n",
280 + configuration, -i);
281 + }
282
283 if ((ret = usb_control_msg(dev, usb_sndctrlpipe(dev, 0),
284 USB_REQ_SET_CONFIGURATION, 0, configuration, 0,
285 diff --git a/drivers/usb/host/ehci-sched.c b/drivers/usb/host/ehci-sched.c
286 index ebcca97..88419c6 100644
287 --- a/drivers/usb/host/ehci-sched.c
288 +++ b/drivers/usb/host/ehci-sched.c
289 @@ -707,6 +707,7 @@ iso_stream_init (
290 } else {
291 u32 addr;
292 int think_time;
293 + int hs_transfers;
294
295 addr = dev->ttport << 24;
296 if (!ehci_is_TDI(ehci)
297 @@ -719,6 +720,7 @@ iso_stream_init (
298 think_time = dev->tt ? dev->tt->think_time : 0;
299 stream->tt_usecs = NS_TO_US (think_time + usb_calc_bus_time (
300 dev->speed, is_input, 1, maxp));
301 + hs_transfers = max (1u, (maxp + 187) / 188);
302 if (is_input) {
303 u32 tmp;
304
305 @@ -727,12 +729,11 @@ iso_stream_init (
306 stream->usecs = HS_USECS_ISO (1);
307 stream->raw_mask = 1;
308
309 - /* pessimistic c-mask */
310 - tmp = usb_calc_bus_time (USB_SPEED_FULL, 1, 0, maxp)
311 - / (125 * 1000);
312 - stream->raw_mask |= 3 << (tmp + 9);
313 + /* c-mask as specified in USB 2.0 11.18.4 3.c */
314 + tmp = (1 << (hs_transfers + 2)) - 1;
315 + stream->raw_mask |= tmp << (8 + 2);
316 } else
317 - stream->raw_mask = smask_out [maxp / 188];
318 + stream->raw_mask = smask_out [hs_transfers - 1];
319 bandwidth = stream->usecs + stream->c_usecs;
320 bandwidth /= 1 << (interval + 2);
321
322 diff --git a/drivers/video/cfbimgblt.c b/drivers/video/cfbimgblt.c
323 index 910e233..8ba6152 100644
324 --- a/drivers/video/cfbimgblt.c
325 +++ b/drivers/video/cfbimgblt.c
326 @@ -169,7 +169,7 @@ static inline void slow_imageblit(const
327
328 while (j--) {
329 l--;
330 - color = (*s & 1 << (FB_BIT_NR(l))) ? fgcolor : bgcolor;
331 + color = (*s & (1 << l)) ? fgcolor : bgcolor;
332 val |= FB_SHIFT_HIGH(color, shift);
333
334 /* Did the bitshift spill bits to the next long? */
335 diff --git a/fs/nfsd/nfs3proc.c b/fs/nfsd/nfs3proc.c
336 index 6d2dfed..f61142a 100644
337 --- a/fs/nfsd/nfs3proc.c
338 +++ b/fs/nfsd/nfs3proc.c
339 @@ -682,7 +682,7 @@ static struct svc_procedure nfsd_proced
340 PROC(lookup, dirop, dirop, fhandle2, RC_NOCACHE, ST+FH+pAT+pAT),
341 PROC(access, access, access, fhandle, RC_NOCACHE, ST+pAT+1),
342 PROC(readlink, readlink, readlink, fhandle, RC_NOCACHE, ST+pAT+1+NFS3_MAXPATHLEN/4),
343 - PROC(read, read, read, fhandle, RC_NOCACHE, ST+pAT+4+NFSSVC_MAXBLKSIZE),
344 + PROC(read, read, read, fhandle, RC_NOCACHE, ST+pAT+4+NFSSVC_MAXBLKSIZE/4),
345 PROC(write, write, write, fhandle, RC_REPLBUFF, ST+WC+4),
346 PROC(create, create, create, fhandle2, RC_REPLBUFF, ST+(1+FH+pAT)+WC),
347 PROC(mkdir, mkdir, create, fhandle2, RC_REPLBUFF, ST+(1+FH+pAT)+WC),
348 diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c
349 index 6d63f1d..ca8a4c4 100644
350 --- a/fs/nfsd/nfs4proc.c
351 +++ b/fs/nfsd/nfs4proc.c
352 @@ -975,7 +975,7 @@ struct nfsd4_voidargs { int dummy; };
353 */
354 static struct svc_procedure nfsd_procedures4[2] = {
355 PROC(null, void, void, void, RC_NOCACHE, 1),
356 - PROC(compound, compound, compound, compound, RC_NOCACHE, NFSD_BUFSIZE)
357 + PROC(compound, compound, compound, compound, RC_NOCACHE, NFSD_BUFSIZE/4)
358 };
359
360 struct svc_version nfsd_version4 = {
361 diff --git a/fs/nfsd/nfsproc.c b/fs/nfsd/nfsproc.c
362 index 3e6b75c..06cd0db 100644
363 --- a/fs/nfsd/nfsproc.c
364 +++ b/fs/nfsd/nfsproc.c
365 @@ -553,7 +553,7 @@ static struct svc_procedure nfsd_proced
366 PROC(none, void, void, none, RC_NOCACHE, ST),
367 PROC(lookup, diropargs, diropres, fhandle, RC_NOCACHE, ST+FH+AT),
368 PROC(readlink, readlinkargs, readlinkres, none, RC_NOCACHE, ST+1+NFS_MAXPATHLEN/4),
369 - PROC(read, readargs, readres, fhandle, RC_NOCACHE, ST+AT+1+NFSSVC_MAXBLKSIZE),
370 + PROC(read, readargs, readres, fhandle, RC_NOCACHE, ST+AT+1+NFSSVC_MAXBLKSIZE/4),
371 PROC(none, void, void, none, RC_NOCACHE, ST),
372 PROC(write, writeargs, attrstat, fhandle, RC_REPLBUFF, ST+AT),
373 PROC(create, createargs, diropres, fhandle, RC_REPLBUFF, ST+FH+AT),
374 diff --git a/fs/proc/vmcore.c b/fs/proc/vmcore.c
375 index 4063fb3..164a7d0 100644
376 --- a/fs/proc/vmcore.c
377 +++ b/fs/proc/vmcore.c
378 @@ -103,8 +103,8 @@ static ssize_t read_vmcore(struct file *
379 size_t buflen, loff_t *fpos)
380 {
381 ssize_t acc = 0, tmp;
382 - size_t tsz, nr_bytes;
383 - u64 start;
384 + size_t tsz;
385 + u64 start, nr_bytes;
386 struct vmcore *curr_m = NULL;
387
388 if (buflen == 0 || *fpos >= vmcore_size)
389 diff --git a/fs/sysfs/file.c b/fs/sysfs/file.c
390 index d0e3d84..2ecc58c 100644
391 --- a/fs/sysfs/file.c
392 +++ b/fs/sysfs/file.c
393 @@ -183,7 +183,7 @@ fill_write_buffer(struct sysfs_buffer *
394 return -ENOMEM;
395
396 if (count >= PAGE_SIZE)
397 - count = PAGE_SIZE;
398 + count = PAGE_SIZE - 1;
399 error = copy_from_user(buffer->page,buf,count);
400 buffer->needs_read_fill = 1;
401 return error ? -EFAULT : count;
402 diff --git a/include/asm-powerpc/floppy.h b/include/asm-powerpc/floppy.h
403 index e258778..608164c 100644
404 --- a/include/asm-powerpc/floppy.h
405 +++ b/include/asm-powerpc/floppy.h
406 @@ -35,6 +35,7 @@
407 #ifdef CONFIG_PCI
408
409 #include <linux/pci.h>
410 +#include <asm/ppc-pci.h> /* for ppc64_isabridge_dev */
411
412 #define fd_dma_setup(addr,size,mode,io) powerpc_fd_dma_setup(addr,size,mode,io)
413
414 @@ -52,12 +53,12 @@ static __inline__ int powerpc_fd_dma_set
415 if (bus_addr
416 && (addr != prev_addr || size != prev_size || dir != prev_dir)) {
417 /* different from last time -- unmap prev */
418 - pci_unmap_single(NULL, bus_addr, prev_size, prev_dir);
419 + pci_unmap_single(ppc64_isabridge_dev, bus_addr, prev_size, prev_dir);
420 bus_addr = 0;
421 }
422
423 if (!bus_addr) /* need to map it */
424 - bus_addr = pci_map_single(NULL, addr, size, dir);
425 + bus_addr = pci_map_single(ppc64_isabridge_dev, addr, size, dir);
426
427 /* remember this one as prev */
428 prev_addr = addr;
429 diff --git a/include/linux/fb.h b/include/linux/fb.h
430 index 2cb19e6..2fdd8ae 100644
431 --- a/include/linux/fb.h
432 +++ b/include/linux/fb.h
433 @@ -839,12 +839,10 @@ struct fb_info {
434 #define FB_LEFT_POS(bpp) (32 - bpp)
435 #define FB_SHIFT_HIGH(val, bits) ((val) >> (bits))
436 #define FB_SHIFT_LOW(val, bits) ((val) << (bits))
437 -#define FB_BIT_NR(b) (7 - (b))
438 #else
439 #define FB_LEFT_POS(bpp) (0)
440 #define FB_SHIFT_HIGH(val, bits) ((val) << (bits))
441 #define FB_SHIFT_LOW(val, bits) ((val) >> (bits))
442 -#define FB_BIT_NR(b) (b)
443 #endif
444
445 /*
446 diff --git a/include/linux/proc_fs.h b/include/linux/proc_fs.h
447 index aa6322d..6c1e347 100644
448 --- a/include/linux/proc_fs.h
449 +++ b/include/linux/proc_fs.h
450 @@ -78,7 +78,7 @@ struct kcore_list {
451 struct vmcore {
452 struct list_head list;
453 unsigned long long paddr;
454 - unsigned long size;
455 + unsigned long long size;
456 loff_t offset;
457 };
458
459 diff --git a/kernel/exec_domain.c b/kernel/exec_domain.c
460 index 867d6db..c01cead 100644
461 --- a/kernel/exec_domain.c
462 +++ b/kernel/exec_domain.c
463 @@ -140,6 +140,7 @@ __set_personality(u_long personality)
464 ep = lookup_exec_domain(personality);
465 if (ep == current_thread_info()->exec_domain) {
466 current->personality = personality;
467 + module_put(ep->module);
468 return 0;
469 }
470
471 diff --git a/kernel/fork.c b/kernel/fork.c
472 index b373322..9d4e0d8 100644
473 --- a/kernel/fork.c
474 +++ b/kernel/fork.c
475 @@ -720,7 +720,7 @@ out_release:
476 free_fdset (new_fdt->open_fds, new_fdt->max_fdset);
477 free_fd_array(new_fdt->fd, new_fdt->max_fds);
478 kmem_cache_free(files_cachep, newf);
479 - goto out;
480 + return NULL;
481 }
482
483 static int copy_files(unsigned long clone_flags, struct task_struct * tsk)
484 diff --git a/net/ipv4/fib_trie.c b/net/ipv4/fib_trie.c
485 index e320b32..24009be 100644
486 --- a/net/ipv4/fib_trie.c
487 +++ b/net/ipv4/fib_trie.c
488 @@ -314,11 +314,6 @@ static void __leaf_free_rcu(struct rcu_h
489 kfree(container_of(head, struct leaf, rcu));
490 }
491
492 -static inline void free_leaf(struct leaf *leaf)
493 -{
494 - call_rcu(&leaf->rcu, __leaf_free_rcu);
495 -}
496 -
497 static void __leaf_info_free_rcu(struct rcu_head *head)
498 {
499 kfree(container_of(head, struct leaf_info, rcu));
500 @@ -357,7 +352,12 @@ static void __tnode_free_rcu(struct rcu_
501
502 static inline void tnode_free(struct tnode *tn)
503 {
504 - call_rcu(&tn->rcu, __tnode_free_rcu);
505 + if(IS_LEAF(tn)) {
506 + struct leaf *l = (struct leaf *) tn;
507 + call_rcu_bh(&l->rcu, __leaf_free_rcu);
508 + }
509 + else
510 + call_rcu(&tn->rcu, __tnode_free_rcu);
511 }
512
513 static struct leaf *leaf_new(void)
514 diff --git a/net/ipv4/netfilter/ip_conntrack_netlink.c b/net/ipv4/netfilter/ip_conntrack_netlink.c
515 index e0b5926..d4e6d0a 100644
516 --- a/net/ipv4/netfilter/ip_conntrack_netlink.c
517 +++ b/net/ipv4/netfilter/ip_conntrack_netlink.c
518 @@ -1619,7 +1619,7 @@ static void __exit ctnetlink_exit(void)
519 printk("ctnetlink: unregistering from nfnetlink.\n");
520
521 #ifdef CONFIG_IP_NF_CONNTRACK_EVENTS
522 - ip_conntrack_unregister_notifier(&ctnl_notifier_exp);
523 + ip_conntrack_expect_unregister_notifier(&ctnl_notifier_exp);
524 ip_conntrack_unregister_notifier(&ctnl_notifier);
525 #endif
526
527 diff --git a/net/netfilter/nf_conntrack_netlink.c b/net/netfilter/nf_conntrack_netlink.c
528 index 9ff3463..40edeef 100644
529 --- a/net/netfilter/nf_conntrack_netlink.c
530 +++ b/net/netfilter/nf_conntrack_netlink.c
531 @@ -1641,7 +1641,7 @@ static void __exit ctnetlink_exit(void)
532 printk("ctnetlink: unregistering from nfnetlink.\n");
533
534 #ifdef CONFIG_NF_CONNTRACK_EVENTS
535 - nf_conntrack_unregister_notifier(&ctnl_notifier_exp);
536 + nf_conntrack_expect_unregister_notifier(&ctnl_notifier_exp);
537 nf_conntrack_unregister_notifier(&ctnl_notifier);
538 #endif
539
540 diff --git a/sound/isa/opti9xx/opti92x-ad1848.c b/sound/isa/opti9xx/opti92x-ad1848.c
541 index 63d96be..65b28cb 100644
542 --- a/sound/isa/opti9xx/opti92x-ad1848.c
543 +++ b/sound/isa/opti9xx/opti92x-ad1848.c
544 @@ -2088,9 +2088,11 @@ static int __init alsa_card_opti9xx_init
545 int error;
546 struct platform_device *device;
547
548 +#ifdef CONFIG_PNP
549 pnp_register_card_driver(&opti9xx_pnpc_driver);
550 if (snd_opti9xx_pnp_is_probed)
551 return 0;
552 +#endif
553 if (! is_isapnp_selected()) {
554 error = platform_driver_register(&snd_opti9xx_driver);
555 if (error < 0)
556 @@ -2102,7 +2104,9 @@ static int __init alsa_card_opti9xx_init
557 }
558 platform_driver_unregister(&snd_opti9xx_driver);
559 }
560 +#ifdef CONFIG_PNP
561 pnp_unregister_card_driver(&opti9xx_pnpc_driver);
562 +#endif
563 #ifdef MODULE
564 printk(KERN_ERR "no OPTi " CHIP_NAME " soundcard found\n");
565 #endif
566 @@ -2115,7 +2119,9 @@ static void __exit alsa_card_opti9xx_exi
567 platform_device_unregister(snd_opti9xx_platform_device);
568 platform_driver_unregister(&snd_opti9xx_driver);
569 }
570 +#ifdef CONFIG_PNP
571 pnp_unregister_card_driver(&opti9xx_pnpc_driver);
572 +#endif
573 }
574
575 module_init(alsa_card_opti9xx_init)
576 diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
577 index b767552..d5cd3a1 100644
578 --- a/sound/pci/hda/patch_realtek.c
579 +++ b/sound/pci/hda/patch_realtek.c
580 @@ -2948,6 +2948,8 @@ static struct hda_board_config alc260_cf
581 { .modelname = "basic", .config = ALC260_BASIC },
582 { .pci_subvendor = 0x104d, .pci_subdevice = 0x81bb,
583 .config = ALC260_BASIC }, /* Sony VAIO */
584 + { .pci_subvendor = 0x152d, .pci_subdevice = 0x0729,
585 + .config = ALC260_BASIC }, /* CTL Travel Master U553W */
586 { .modelname = "hp", .config = ALC260_HP },
587 { .pci_subvendor = 0x103c, .pci_subdevice = 0x3010, .config = ALC260_HP },
588 { .pci_subvendor = 0x103c, .pci_subdevice = 0x3011, .config = ALC260_HP },

  ViewVC Help
Powered by ViewVC 1.1.20