aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--MAINTAINERS6
-rw-r--r--arch/i386/kernel/syscall_table.S1
-rw-r--r--arch/powerpc/platforms/powermac/setup.c12
-rw-r--r--drivers/char/tpm/tpm_tis.c4
-rw-r--r--drivers/i2c/busses/scx200_acb.c2
-rw-r--r--drivers/infiniband/hw/mthca/mthca_srq.c41
-rw-r--r--drivers/input/touchscreen/ads7846.c53
-rw-r--r--drivers/md/md.c4
-rw-r--r--drivers/net/irda/Kconfig20
-rw-r--r--drivers/spi/spi_s3c24xx.c4
-rw-r--r--fs/affs/namei.c3
-rw-r--r--include/asm-alpha/termbits.h1
-rw-r--r--include/asm-powerpc/termbits.h1
-rw-r--r--net/core/dev.c20
-rw-r--r--net/ipv6/route.c16
15 files changed, 109 insertions, 79 deletions
diff --git a/MAINTAINERS b/MAINTAINERS
index bd10b2af2223..92d696874965 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1899,6 +1899,12 @@ M: James.Bottomley@HansenPartnership.com
1899L: linux-scsi@vger.kernel.org 1899L: linux-scsi@vger.kernel.org
1900S: Maintained 1900S: Maintained
1901 1901
1902NETEM NETWORK EMULATOR
1903P: Stephen Hemminger
1904M: shemminger@osdl.org
1905L: netem@osdl.org
1906S: Maintained
1907
1902NETFILTER/IPTABLES/IPCHAINS 1908NETFILTER/IPTABLES/IPCHAINS
1903P: Rusty Russell 1909P: Rusty Russell
1904P: Marc Boucher 1910P: Marc Boucher
diff --git a/arch/i386/kernel/syscall_table.S b/arch/i386/kernel/syscall_table.S
index f48bef15b4f0..af56987f69b0 100644
--- a/arch/i386/kernel/syscall_table.S
+++ b/arch/i386/kernel/syscall_table.S
@@ -315,3 +315,4 @@ ENTRY(sys_call_table)
315 .long sys_splice 315 .long sys_splice
316 .long sys_sync_file_range 316 .long sys_sync_file_range
317 .long sys_tee /* 315 */ 317 .long sys_tee /* 315 */
318 .long sys_vmsplice
diff --git a/arch/powerpc/platforms/powermac/setup.c b/arch/powerpc/platforms/powermac/setup.c
index 4d15e396655c..b9200fb07815 100644
--- a/arch/powerpc/platforms/powermac/setup.c
+++ b/arch/powerpc/platforms/powermac/setup.c
@@ -463,11 +463,23 @@ static int pmac_pm_finish(suspend_state_t state)
463 return 0; 463 return 0;
464} 464}
465 465
466static int pmac_pm_valid(suspend_state_t state)
467{
468 switch (state) {
469 case PM_SUSPEND_DISK:
470 return 1;
471 /* can't do any other states via generic mechanism yet */
472 default:
473 return 0;
474 }
475}
476
466static struct pm_ops pmac_pm_ops = { 477static struct pm_ops pmac_pm_ops = {
467 .pm_disk_mode = PM_DISK_SHUTDOWN, 478 .pm_disk_mode = PM_DISK_SHUTDOWN,
468 .prepare = pmac_pm_prepare, 479 .prepare = pmac_pm_prepare,
469 .enter = pmac_pm_enter, 480 .enter = pmac_pm_enter,
470 .finish = pmac_pm_finish, 481 .finish = pmac_pm_finish,
482 .valid = pmac_pm_valid,
471}; 483};
472 484
473#endif /* CONFIG_SOFTWARE_SUSPEND */ 485#endif /* CONFIG_SOFTWARE_SUSPEND */
diff --git a/drivers/char/tpm/tpm_tis.c b/drivers/char/tpm/tpm_tis.c
index f621168f38ae..8ea70625f7ea 100644
--- a/drivers/char/tpm/tpm_tis.c
+++ b/drivers/char/tpm/tpm_tis.c
@@ -457,10 +457,6 @@ static int __devinit tpm_tis_pnp_init(struct pnp_dev *pnp_dev,
457 } 457 }
458 458
459 vendor = ioread32(chip->vendor.iobase + TPM_DID_VID(0)); 459 vendor = ioread32(chip->vendor.iobase + TPM_DID_VID(0));
460 if ((vendor & 0xFFFF) == 0xFFFF) {
461 rc = -ENODEV;
462 goto out_err;
463 }
464 460
465 /* Default timeouts */ 461 /* Default timeouts */
466 chip->vendor.timeout_a = msecs_to_jiffies(TIS_SHORT_TIMEOUT); 462 chip->vendor.timeout_a = msecs_to_jiffies(TIS_SHORT_TIMEOUT);
diff --git a/drivers/i2c/busses/scx200_acb.c b/drivers/i2c/busses/scx200_acb.c
index a140e4536a4e..766cc969c4d0 100644
--- a/drivers/i2c/busses/scx200_acb.c
+++ b/drivers/i2c/busses/scx200_acb.c
@@ -491,7 +491,7 @@ static struct pci_device_id divil_pci[] = {
491 491
492#define MSR_LBAR_SMB 0x5140000B 492#define MSR_LBAR_SMB 0x5140000B
493 493
494static int scx200_add_cs553x(void) 494static __init int scx200_add_cs553x(void)
495{ 495{
496 u32 low, hi; 496 u32 low, hi;
497 u32 smb_base; 497 u32 smb_base;
diff --git a/drivers/infiniband/hw/mthca/mthca_srq.c b/drivers/infiniband/hw/mthca/mthca_srq.c
index 1ea433291fa7..b292fefa3b41 100644
--- a/drivers/infiniband/hw/mthca/mthca_srq.c
+++ b/drivers/infiniband/hw/mthca/mthca_srq.c
@@ -490,26 +490,7 @@ int mthca_tavor_post_srq_recv(struct ib_srq *ibsrq, struct ib_recv_wr *wr,
490 490
491 first_ind = srq->first_free; 491 first_ind = srq->first_free;
492 492
493 for (nreq = 0; wr; ++nreq, wr = wr->next) { 493 for (nreq = 0; wr; wr = wr->next) {
494 if (unlikely(nreq == MTHCA_TAVOR_MAX_WQES_PER_RECV_DB)) {
495 nreq = 0;
496
497 doorbell[0] = cpu_to_be32(first_ind << srq->wqe_shift);
498 doorbell[1] = cpu_to_be32(srq->srqn << 8);
499
500 /*
501 * Make sure that descriptors are written
502 * before doorbell is rung.
503 */
504 wmb();
505
506 mthca_write64(doorbell,
507 dev->kar + MTHCA_RECEIVE_DOORBELL,
508 MTHCA_GET_DOORBELL_LOCK(&dev->doorbell_lock));
509
510 first_ind = srq->first_free;
511 }
512
513 ind = srq->first_free; 494 ind = srq->first_free;
514 495
515 if (ind < 0) { 496 if (ind < 0) {
@@ -569,6 +550,26 @@ int mthca_tavor_post_srq_recv(struct ib_srq *ibsrq, struct ib_recv_wr *wr,
569 550
570 srq->wrid[ind] = wr->wr_id; 551 srq->wrid[ind] = wr->wr_id;
571 srq->first_free = next_ind; 552 srq->first_free = next_ind;
553
554 ++nreq;
555 if (unlikely(nreq == MTHCA_TAVOR_MAX_WQES_PER_RECV_DB)) {
556 nreq = 0;
557
558 doorbell[0] = cpu_to_be32(first_ind << srq->wqe_shift);
559 doorbell[1] = cpu_to_be32(srq->srqn << 8);
560
561 /*
562 * Make sure that descriptors are written
563 * before doorbell is rung.
564 */
565 wmb();
566
567 mthca_write64(doorbell,
568 dev->kar + MTHCA_RECEIVE_DOORBELL,
569 MTHCA_GET_DOORBELL_LOCK(&dev->doorbell_lock));
570
571 first_ind = srq->first_free;
572 }
572 } 573 }
573 574
574 if (likely(nreq)) { 575 if (likely(nreq)) {
diff --git a/drivers/input/touchscreen/ads7846.c b/drivers/input/touchscreen/ads7846.c
index 1494175ac6fe..161afddd0f44 100644
--- a/drivers/input/touchscreen/ads7846.c
+++ b/drivers/input/touchscreen/ads7846.c
@@ -36,13 +36,10 @@
36 36
37 37
38/* 38/*
39 * This code has been tested on an ads7846 / N770 device. 39 * This code has been heavily tested on a Nokia 770, and lightly
40 * tested on other ads7846 devices (OSK/Mistral, Lubbock).
40 * Support for ads7843 and ads7845 has only been stubbed in. 41 * Support for ads7843 and ads7845 has only been stubbed in.
41 * 42 *
42 * Not yet done: How accurate are the temperature and voltage
43 * readings? (System-specific calibration should support
44 * accuracy of 0.3 degrees C; otherwise it's 2.0 degrees.)
45 *
46 * IRQ handling needs a workaround because of a shortcoming in handling 43 * IRQ handling needs a workaround because of a shortcoming in handling
47 * edge triggered IRQs on some platforms like the OMAP1/2. These 44 * edge triggered IRQs on some platforms like the OMAP1/2. These
48 * platforms don't handle the ARM lazy IRQ disabling properly, thus we 45 * platforms don't handle the ARM lazy IRQ disabling properly, thus we
@@ -248,10 +245,13 @@ static int ads7846_read12_ser(struct device *dev, unsigned command)
248 245
249 if (req->msg.status) 246 if (req->msg.status)
250 status = req->msg.status; 247 status = req->msg.status;
248
249 /* on-wire is a must-ignore bit, a BE12 value, then padding */
251 sample = be16_to_cpu(req->sample); 250 sample = be16_to_cpu(req->sample);
252 sample = sample >> 4; 251 sample = sample >> 3;
253 kfree(req); 252 sample &= 0x0fff;
254 253
254 kfree(req);
255 return status ? status : sample; 255 return status ? status : sample;
256} 256}
257 257
@@ -336,13 +336,13 @@ static void ads7846_rx(void *ads)
336 u16 x, y, z1, z2; 336 u16 x, y, z1, z2;
337 unsigned long flags; 337 unsigned long flags;
338 338
339 /* adjust: 12 bit samples (left aligned), built from 339 /* adjust: on-wire is a must-ignore bit, a BE12 value, then padding;
340 * two 8 bit values writen msb-first. 340 * built from two 8 bit values written msb-first.
341 */ 341 */
342 x = be16_to_cpu(ts->tc.x) >> 4; 342 x = (be16_to_cpu(ts->tc.x) >> 3) & 0x0fff;
343 y = be16_to_cpu(ts->tc.y) >> 4; 343 y = (be16_to_cpu(ts->tc.y) >> 3) & 0x0fff;
344 z1 = be16_to_cpu(ts->tc.z1) >> 4; 344 z1 = (be16_to_cpu(ts->tc.z1) >> 3) & 0x0fff;
345 z2 = be16_to_cpu(ts->tc.z2) >> 4; 345 z2 = (be16_to_cpu(ts->tc.z2) >> 3) & 0x0fff;
346 346
347 /* range filtering */ 347 /* range filtering */
348 if (x == MAX_12BIT) 348 if (x == MAX_12BIT)
@@ -420,7 +420,7 @@ static void ads7846_debounce(void *ads)
420 420
421 m = &ts->msg[ts->msg_idx]; 421 m = &ts->msg[ts->msg_idx];
422 t = list_entry(m->transfers.prev, struct spi_transfer, transfer_list); 422 t = list_entry(m->transfers.prev, struct spi_transfer, transfer_list);
423 val = (*(u16 *)t->rx_buf) >> 3; 423 val = (be16_to_cpu(*(__be16 *)t->rx_buf) >> 3) & 0x0fff;
424 if (!ts->read_cnt || (abs(ts->last_read - val) > ts->debounce_tol)) { 424 if (!ts->read_cnt || (abs(ts->last_read - val) > ts->debounce_tol)) {
425 /* Repeat it, if this was the first read or the read 425 /* Repeat it, if this was the first read or the read
426 * wasn't consistent enough. */ 426 * wasn't consistent enough. */
@@ -469,7 +469,7 @@ static void ads7846_timer(unsigned long handle)
469 spin_lock_irq(&ts->lock); 469 spin_lock_irq(&ts->lock);
470 470
471 if (unlikely(ts->msg_idx && !ts->pendown)) { 471 if (unlikely(ts->msg_idx && !ts->pendown)) {
472 /* measurment cycle ended */ 472 /* measurement cycle ended */
473 if (!device_suspended(&ts->spi->dev)) { 473 if (!device_suspended(&ts->spi->dev)) {
474 ts->irq_disabled = 0; 474 ts->irq_disabled = 0;
475 enable_irq(ts->spi->irq); 475 enable_irq(ts->spi->irq);
@@ -495,11 +495,10 @@ static irqreturn_t ads7846_irq(int irq, void *handle, struct pt_regs *regs)
495 spin_lock_irqsave(&ts->lock, flags); 495 spin_lock_irqsave(&ts->lock, flags);
496 if (likely(ts->get_pendown_state())) { 496 if (likely(ts->get_pendown_state())) {
497 if (!ts->irq_disabled) { 497 if (!ts->irq_disabled) {
498 /* REVISIT irq logic for many ARM chips has cloned a 498 /* The ARM do_simple_IRQ() dispatcher doesn't act
499 * bug wherein disabling an irq in its handler won't 499 * like the other dispatchers: it will report IRQs
500 * work;(it's disabled lazily, and too late to work. 500 * even after they've been disabled. We work around
501 * until all their irq logic is fixed, we must shadow 501 * that here. (The "generic irq" framework may help...)
502 * that state here.
503 */ 502 */
504 ts->irq_disabled = 1; 503 ts->irq_disabled = 1;
505 disable_irq(ts->spi->irq); 504 disable_irq(ts->spi->irq);
@@ -609,16 +608,20 @@ static int __devinit ads7846_probe(struct spi_device *spi)
609 return -EINVAL; 608 return -EINVAL;
610 } 609 }
611 610
611 /* REVISIT when the irq can be triggered active-low, or if for some
612 * reason the touchscreen isn't hooked up, we don't need to access
613 * the pendown state.
614 */
612 if (pdata->get_pendown_state == NULL) { 615 if (pdata->get_pendown_state == NULL) {
613 dev_dbg(&spi->dev, "no get_pendown_state function?\n"); 616 dev_dbg(&spi->dev, "no get_pendown_state function?\n");
614 return -EINVAL; 617 return -EINVAL;
615 } 618 }
616 619
617 /* We'd set the wordsize to 12 bits ... except that some controllers 620 /* We'd set TX wordsize 8 bits and RX wordsize to 13 bits ... except
618 * will then treat the 8 bit command words as 12 bits (and drop the 621 * that even if the hardware can do that, the SPI controller driver
619 * four MSBs of the 12 bit result). Result: inputs must be shifted 622 * may not. So we stick to very-portable 8 bit words, both RX and TX.
620 * to discard the four garbage LSBs.
621 */ 623 */
624 spi->bits_per_word = 8;
622 625
623 ts = kzalloc(sizeof(struct ads7846), GFP_KERNEL); 626 ts = kzalloc(sizeof(struct ads7846), GFP_KERNEL);
624 input_dev = input_allocate_device(); 627 input_dev = input_allocate_device();
@@ -772,7 +775,7 @@ static int __devinit ads7846_probe(struct spi_device *spi)
772 775
773 if (request_irq(spi->irq, ads7846_irq, 776 if (request_irq(spi->irq, ads7846_irq,
774 SA_SAMPLE_RANDOM | SA_TRIGGER_FALLING, 777 SA_SAMPLE_RANDOM | SA_TRIGGER_FALLING,
775 spi->dev.bus_id, ts)) { 778 spi->dev.driver->name, ts)) {
776 dev_dbg(&spi->dev, "irq %d busy?\n", spi->irq); 779 dev_dbg(&spi->dev, "irq %d busy?\n", spi->irq);
777 err = -EBUSY; 780 err = -EBUSY;
778 goto err_free_mem; 781 goto err_free_mem;
diff --git a/drivers/md/md.c b/drivers/md/md.c
index 3ca3cfb03a7e..ec802913f977 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -5028,8 +5028,10 @@ static int md_notify_reboot(struct notifier_block *this,
5028 printk(KERN_INFO "md: stopping all md devices.\n"); 5028 printk(KERN_INFO "md: stopping all md devices.\n");
5029 5029
5030 ITERATE_MDDEV(mddev,tmp) 5030 ITERATE_MDDEV(mddev,tmp)
5031 if (mddev_trylock(mddev)) 5031 if (mddev_trylock(mddev)) {
5032 do_md_stop (mddev, 1); 5032 do_md_stop (mddev, 1);
5033 mddev_unlock(mddev);
5034 }
5033 /* 5035 /*
5034 * certain more exotic SCSI devices are known to be 5036 * certain more exotic SCSI devices are known to be
5035 * volatile wrt too early system reboots. While the 5037 * volatile wrt too early system reboots. While the
diff --git a/drivers/net/irda/Kconfig b/drivers/net/irda/Kconfig
index 5e6d00752990..cff8598aa800 100644
--- a/drivers/net/irda/Kconfig
+++ b/drivers/net/irda/Kconfig
@@ -33,7 +33,7 @@ config DONGLE
33 33
34config ESI_DONGLE 34config ESI_DONGLE
35 tristate "ESI JetEye PC dongle" 35 tristate "ESI JetEye PC dongle"
36 depends on DONGLE && IRDA 36 depends on IRTTY_SIR && DONGLE && IRDA
37 help 37 help
38 Say Y here if you want to build support for the Extended Systems 38 Say Y here if you want to build support for the Extended Systems
39 JetEye PC dongle. To compile it as a module, choose M here. The ESI 39 JetEye PC dongle. To compile it as a module, choose M here. The ESI
@@ -44,7 +44,7 @@ config ESI_DONGLE
44 44
45config ACTISYS_DONGLE 45config ACTISYS_DONGLE
46 tristate "ACTiSYS IR-220L and IR220L+ dongle" 46 tristate "ACTiSYS IR-220L and IR220L+ dongle"
47 depends on DONGLE && IRDA 47 depends on IRTTY_SIR && DONGLE && IRDA
48 help 48 help
49 Say Y here if you want to build support for the ACTiSYS IR-220L and 49 Say Y here if you want to build support for the ACTiSYS IR-220L and
50 IR220L+ dongles. To compile it as a module, choose M here. The 50 IR220L+ dongles. To compile it as a module, choose M here. The
@@ -55,7 +55,7 @@ config ACTISYS_DONGLE
55 55
56config TEKRAM_DONGLE 56config TEKRAM_DONGLE
57 tristate "Tekram IrMate 210B dongle" 57 tristate "Tekram IrMate 210B dongle"
58 depends on DONGLE && IRDA 58 depends on IRTTY_SIR && DONGLE && IRDA
59 help 59 help
60 Say Y here if you want to build support for the Tekram IrMate 210B 60 Say Y here if you want to build support for the Tekram IrMate 210B
61 dongle. To compile it as a module, choose M here. The Tekram dongle 61 dongle. To compile it as a module, choose M here. The Tekram dongle
@@ -66,7 +66,7 @@ config TEKRAM_DONGLE
66 66
67config TOIM3232_DONGLE 67config TOIM3232_DONGLE
68 tristate "TOIM3232 IrDa dongle" 68 tristate "TOIM3232 IrDa dongle"
69 depends on DONGLE && IRDA 69 depends on IRTTY_SIR && DONGLE && IRDA
70 help 70 help
71 Say Y here if you want to build support for the Vishay/Temic 71 Say Y here if you want to build support for the Vishay/Temic
72 TOIM3232 and TOIM4232 based dongles. 72 TOIM3232 and TOIM4232 based dongles.
@@ -74,7 +74,7 @@ config TOIM3232_DONGLE
74 74
75config LITELINK_DONGLE 75config LITELINK_DONGLE
76 tristate "Parallax LiteLink dongle" 76 tristate "Parallax LiteLink dongle"
77 depends on DONGLE && IRDA 77 depends on IRTTY_SIR && DONGLE && IRDA
78 help 78 help
79 Say Y here if you want to build support for the Parallax Litelink 79 Say Y here if you want to build support for the Parallax Litelink
80 dongle. To compile it as a module, choose M here. The Parallax 80 dongle. To compile it as a module, choose M here. The Parallax
@@ -85,7 +85,7 @@ config LITELINK_DONGLE
85 85
86config MA600_DONGLE 86config MA600_DONGLE
87 tristate "Mobile Action MA600 dongle" 87 tristate "Mobile Action MA600 dongle"
88 depends on DONGLE && IRDA && EXPERIMENTAL 88 depends on IRTTY_SIR && DONGLE && IRDA && EXPERIMENTAL
89 help 89 help
90 Say Y here if you want to build support for the Mobile Action MA600 90 Say Y here if you want to build support for the Mobile Action MA600
91 dongle. To compile it as a module, choose M here. The MA600 dongle 91 dongle. To compile it as a module, choose M here. The MA600 dongle
@@ -98,7 +98,7 @@ config MA600_DONGLE
98 98
99config GIRBIL_DONGLE 99config GIRBIL_DONGLE
100 tristate "Greenwich GIrBIL dongle" 100 tristate "Greenwich GIrBIL dongle"
101 depends on DONGLE && IRDA && EXPERIMENTAL 101 depends on IRTTY_SIR && DONGLE && IRDA && EXPERIMENTAL
102 help 102 help
103 Say Y here if you want to build support for the Greenwich GIrBIL 103 Say Y here if you want to build support for the Greenwich GIrBIL
104 dongle. If you want to compile it as a module, choose M here. 104 dongle. If you want to compile it as a module, choose M here.
@@ -109,7 +109,7 @@ config GIRBIL_DONGLE
109 109
110config MCP2120_DONGLE 110config MCP2120_DONGLE
111 tristate "Microchip MCP2120" 111 tristate "Microchip MCP2120"
112 depends on DONGLE && IRDA && EXPERIMENTAL 112 depends on IRTTY_SIR && DONGLE && IRDA && EXPERIMENTAL
113 help 113 help
114 Say Y here if you want to build support for the Microchip MCP2120 114 Say Y here if you want to build support for the Microchip MCP2120
115 dongle. If you want to compile it as a module, choose M here. 115 dongle. If you want to compile it as a module, choose M here.
@@ -123,7 +123,7 @@ config MCP2120_DONGLE
123 123
124config OLD_BELKIN_DONGLE 124config OLD_BELKIN_DONGLE
125 tristate "Old Belkin dongle" 125 tristate "Old Belkin dongle"
126 depends on DONGLE && IRDA && EXPERIMENTAL 126 depends on IRTTY_SIR && DONGLE && IRDA && EXPERIMENTAL
127 help 127 help
128 Say Y here if you want to build support for the Adaptec Airport 1000 128 Say Y here if you want to build support for the Adaptec Airport 1000
129 and 2000 dongles. If you want to compile it as a module, choose 129 and 2000 dongles. If you want to compile it as a module, choose
@@ -132,7 +132,7 @@ config OLD_BELKIN_DONGLE
132 132
133config ACT200L_DONGLE 133config ACT200L_DONGLE
134 tristate "ACTiSYS IR-200L dongle" 134 tristate "ACTiSYS IR-200L dongle"
135 depends on DONGLE && IRDA && EXPERIMENTAL 135 depends on IRTTY_SIR && DONGLE && IRDA && EXPERIMENTAL
136 help 136 help
137 Say Y here if you want to build support for the ACTiSYS IR-200L 137 Say Y here if you want to build support for the ACTiSYS IR-200L
138 dongle. If you want to compile it as a module, choose M here. 138 dongle. If you want to compile it as a module, choose M here.
diff --git a/drivers/spi/spi_s3c24xx.c b/drivers/spi/spi_s3c24xx.c
index 9de4b5a04d70..5fc14563ee3a 100644
--- a/drivers/spi/spi_s3c24xx.c
+++ b/drivers/spi/spi_s3c24xx.c
@@ -405,7 +405,7 @@ static int s3c24xx_spi_remove(struct platform_device *dev)
405 405
406static int s3c24xx_spi_suspend(struct platform_device *pdev, pm_message_t msg) 406static int s3c24xx_spi_suspend(struct platform_device *pdev, pm_message_t msg)
407{ 407{
408 struct s3c24xx_spi *hw = platform_get_drvdata(dev); 408 struct s3c24xx_spi *hw = platform_get_drvdata(pdev);
409 409
410 clk_disable(hw->clk); 410 clk_disable(hw->clk);
411 return 0; 411 return 0;
@@ -413,7 +413,7 @@ static int s3c24xx_spi_suspend(struct platform_device *pdev, pm_message_t msg)
413 413
414static int s3c24xx_spi_resume(struct platform_device *pdev) 414static int s3c24xx_spi_resume(struct platform_device *pdev)
415{ 415{
416 struct s3c24xx_spi *hw = platform_get_drvdata(dev); 416 struct s3c24xx_spi *hw = platform_get_drvdata(pdev);
417 417
418 clk_enable(hw->clk); 418 clk_enable(hw->clk);
419 return 0; 419 return 0;
diff --git a/fs/affs/namei.c b/fs/affs/namei.c
index d4c2d636c479..a42143ca0169 100644
--- a/fs/affs/namei.c
+++ b/fs/affs/namei.c
@@ -416,10 +416,9 @@ affs_rename(struct inode *old_dir, struct dentry *old_dentry,
416 return retval; 416 return retval;
417 } 417 }
418 418
419 retval = -EIO;
420 bh = affs_bread(sb, old_dentry->d_inode->i_ino); 419 bh = affs_bread(sb, old_dentry->d_inode->i_ino);
421 if (!bh) 420 if (!bh)
422 goto done; 421 return -EIO;
423 422
424 /* Remove header from its parent directory. */ 423 /* Remove header from its parent directory. */
425 affs_lock_dir(old_dir); 424 affs_lock_dir(old_dir);
diff --git a/include/asm-alpha/termbits.h b/include/asm-alpha/termbits.h
index f4837fa29420..5541101b58ae 100644
--- a/include/asm-alpha/termbits.h
+++ b/include/asm-alpha/termbits.h
@@ -148,6 +148,7 @@ struct termios {
148#define HUPCL 00040000 148#define HUPCL 00040000
149 149
150#define CLOCAL 00100000 150#define CLOCAL 00100000
151#define CMSPAR 010000000000 /* mark or space (stick) parity */
151#define CRTSCTS 020000000000 /* flow control */ 152#define CRTSCTS 020000000000 /* flow control */
152 153
153/* c_lflag bits */ 154/* c_lflag bits */
diff --git a/include/asm-powerpc/termbits.h b/include/asm-powerpc/termbits.h
index ebf6055481dc..6d533b07aaf5 100644
--- a/include/asm-powerpc/termbits.h
+++ b/include/asm-powerpc/termbits.h
@@ -153,6 +153,7 @@ struct termios {
153#define HUPCL 00040000 153#define HUPCL 00040000
154 154
155#define CLOCAL 00100000 155#define CLOCAL 00100000
156#define CMSPAR 010000000000 /* mark or space (stick) parity */
156#define CRTSCTS 020000000000 /* flow control */ 157#define CRTSCTS 020000000000 /* flow control */
157 158
158/* c_lflag bits */ 159/* c_lflag bits */
diff --git a/net/core/dev.c b/net/core/dev.c
index 2dce673a039b..4fba549caf29 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -127,7 +127,7 @@
127 * sure which should go first, but I bet it won't make much 127 * sure which should go first, but I bet it won't make much
128 * difference if we are running VLANs. The good news is that 128 * difference if we are running VLANs. The good news is that
129 * this protocol won't be in the list unless compiled in, so 129 * this protocol won't be in the list unless compiled in, so
130 * the average user (w/out VLANs) will not be adversly affected. 130 * the average user (w/out VLANs) will not be adversely affected.
131 * --BLG 131 * --BLG
132 * 132 *
133 * 0800 IP 133 * 0800 IP
@@ -149,7 +149,7 @@ static struct list_head ptype_base[16]; /* 16 way hashed list */
149static struct list_head ptype_all; /* Taps */ 149static struct list_head ptype_all; /* Taps */
150 150
151/* 151/*
152 * The @dev_base list is protected by @dev_base_lock and the rtln 152 * The @dev_base list is protected by @dev_base_lock and the rtnl
153 * semaphore. 153 * semaphore.
154 * 154 *
155 * Pure readers hold dev_base_lock for reading. 155 * Pure readers hold dev_base_lock for reading.
@@ -641,10 +641,12 @@ int dev_valid_name(const char *name)
641 * @name: name format string 641 * @name: name format string
642 * 642 *
643 * Passed a format string - eg "lt%d" it will try and find a suitable 643 * Passed a format string - eg "lt%d" it will try and find a suitable
644 * id. Not efficient for many devices, not called a lot. The caller 644 * id. It scans list of devices to build up a free map, then chooses
645 * must hold the dev_base or rtnl lock while allocating the name and 645 * the first empty slot. The caller must hold the dev_base or rtnl lock
646 * adding the device in order to avoid duplicates. Returns the number 646 * while allocating the name and adding the device in order to avoid
647 * of the unit assigned or a negative errno code. 647 * duplicates.
648 * Limited to bits_per_byte * page size devices (ie 32K on most platforms).
649 * Returns the number of the unit assigned or a negative errno code.
648 */ 650 */
649 651
650int dev_alloc_name(struct net_device *dev, const char *name) 652int dev_alloc_name(struct net_device *dev, const char *name)
@@ -744,7 +746,7 @@ int dev_change_name(struct net_device *dev, char *newname)
744} 746}
745 747
746/** 748/**
747 * netdev_features_change - device changes fatures 749 * netdev_features_change - device changes features
748 * @dev: device to cause notification 750 * @dev: device to cause notification
749 * 751 *
750 * Called to indicate a device has changed features. 752 * Called to indicate a device has changed features.
@@ -2196,7 +2198,7 @@ int netdev_set_master(struct net_device *slave, struct net_device *master)
2196 * @dev: device 2198 * @dev: device
2197 * @inc: modifier 2199 * @inc: modifier
2198 * 2200 *
2199 * Add or remove promsicuity from a device. While the count in the device 2201 * Add or remove promiscuity from a device. While the count in the device
2200 * remains above zero the interface remains promiscuous. Once it hits zero 2202 * remains above zero the interface remains promiscuous. Once it hits zero
2201 * the device reverts back to normal filtering operation. A negative inc 2203 * the device reverts back to normal filtering operation. A negative inc
2202 * value is used to drop promiscuity on the device. 2204 * value is used to drop promiscuity on the device.
@@ -3122,7 +3124,7 @@ EXPORT_SYMBOL(alloc_netdev);
3122void free_netdev(struct net_device *dev) 3124void free_netdev(struct net_device *dev)
3123{ 3125{
3124#ifdef CONFIG_SYSFS 3126#ifdef CONFIG_SYSFS
3125 /* Compatiablity with error handling in drivers */ 3127 /* Compatibility with error handling in drivers */
3126 if (dev->reg_state == NETREG_UNINITIALIZED) { 3128 if (dev->reg_state == NETREG_UNINITIALIZED) {
3127 kfree((char *)dev - dev->padded); 3129 kfree((char *)dev - dev->padded);
3128 return; 3130 return;
diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index 0190e39096b9..8a777932786d 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -280,10 +280,13 @@ static int inline rt6_check_neigh(struct rt6_info *rt)
280{ 280{
281 struct neighbour *neigh = rt->rt6i_nexthop; 281 struct neighbour *neigh = rt->rt6i_nexthop;
282 int m = 0; 282 int m = 0;
283 if (neigh) { 283 if (rt->rt6i_flags & RTF_NONEXTHOP ||
284 !(rt->rt6i_flags & RTF_GATEWAY))
285 m = 1;
286 else if (neigh) {
284 read_lock_bh(&neigh->lock); 287 read_lock_bh(&neigh->lock);
285 if (neigh->nud_state & NUD_VALID) 288 if (neigh->nud_state & NUD_VALID)
286 m = 1; 289 m = 2;
287 read_unlock_bh(&neigh->lock); 290 read_unlock_bh(&neigh->lock);
288 } 291 }
289 return m; 292 return m;
@@ -292,15 +295,18 @@ static int inline rt6_check_neigh(struct rt6_info *rt)
292static int rt6_score_route(struct rt6_info *rt, int oif, 295static int rt6_score_route(struct rt6_info *rt, int oif,
293 int strict) 296 int strict)
294{ 297{
295 int m = rt6_check_dev(rt, oif); 298 int m, n;
299
300 m = rt6_check_dev(rt, oif);
296 if (!m && (strict & RT6_SELECT_F_IFACE)) 301 if (!m && (strict & RT6_SELECT_F_IFACE))
297 return -1; 302 return -1;
298#ifdef CONFIG_IPV6_ROUTER_PREF 303#ifdef CONFIG_IPV6_ROUTER_PREF
299 m |= IPV6_DECODE_PREF(IPV6_EXTRACT_PREF(rt->rt6i_flags)) << 2; 304 m |= IPV6_DECODE_PREF(IPV6_EXTRACT_PREF(rt->rt6i_flags)) << 2;
300#endif 305#endif
301 if (rt6_check_neigh(rt)) 306 n = rt6_check_neigh(rt);
307 if (n > 1)
302 m |= 16; 308 m |= 16;
303 else if (strict & RT6_SELECT_F_REACHABLE) 309 else if (!n && strict & RT6_SELECT_F_REACHABLE)
304 return -1; 310 return -1;
305 return m; 311 return m;
306} 312}