diff --git a/[refs] b/[refs] index 5d4865390af3..d4aec4e48ddb 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 94d40b699f0b9fb1b1da3b6abcd31d37c9aa2c22 +refs/heads/master: ecc51b6d5ca04bb6346c9ad6b37d6ca8bace12b3 diff --git a/trunk/Documentation/arm/00-INDEX b/trunk/Documentation/arm/00-INDEX index 2c6a3b38967e..d753fe59a248 100644 --- a/trunk/Documentation/arm/00-INDEX +++ b/trunk/Documentation/arm/00-INDEX @@ -16,7 +16,5 @@ empeg - Empeg documentation mem_alignment - alignment abort handler documentation -memory.txt - - description of the virtual memory layout nwfpe - NWFPE floating point emulator documentation diff --git a/trunk/arch/arm/kernel/ptrace.c b/trunk/arch/arm/kernel/ptrace.c index 2b84f78d7b0f..9a340e790da5 100644 --- a/trunk/arch/arm/kernel/ptrace.c +++ b/trunk/arch/arm/kernel/ptrace.c @@ -242,15 +242,6 @@ get_branch_address(struct task_struct *child, unsigned long pc, unsigned long in */ long aluop1, aluop2, ccbit; - if ((insn & 0x0fffffd0) == 0x012fff10) { - /* - * bx or blx - */ - alt = get_user_reg(child, insn & 15); - break; - } - - if ((insn & 0xf000) != 0xf000) break; diff --git a/trunk/arch/sparc/Makefile b/trunk/arch/sparc/Makefile index 4cdbb2d59ed0..dea48f6cff38 100644 --- a/trunk/arch/sparc/Makefile +++ b/trunk/arch/sparc/Makefile @@ -34,7 +34,7 @@ libs-y += arch/sparc/prom/ arch/sparc/lib/ # Renaming is done to avoid confusing pattern matching rules in 2.5.45 (multy-) INIT_Y := $(patsubst %/, %/built-in.o, $(init-y)) CORE_Y := $(core-y) -CORE_Y += kernel/ mm/ fs/ ipc/ security/ crypto/ block/ +CORE_Y += kernel/ mm/ fs/ ipc/ security/ crypto/ CORE_Y := $(patsubst %/, %/built-in.o, $(CORE_Y)) DRIVERS_Y := $(patsubst %/, %/built-in.o, $(drivers-y)) NET_Y := $(patsubst %/, %/built-in.o, $(net-y)) diff --git a/trunk/arch/sparc/lib/atomic32.c b/trunk/arch/sparc/lib/atomic32.c index de84f8534bac..cb3cf0f22822 100644 --- a/trunk/arch/sparc/lib/atomic32.c +++ b/trunk/arch/sparc/lib/atomic32.c @@ -66,6 +66,7 @@ int atomic_add_unless(atomic_t *v, int a, int u) return ret != u; } +static inline void atomic_clear_mask(unsigned long mask, unsigned long *addr) /* Atomic operations are already serializing */ void atomic_set(atomic_t *v, int i) { diff --git a/trunk/drivers/char/watchdog/mpcore_wdt.c b/trunk/drivers/char/watchdog/mpcore_wdt.c index b4d843489881..9defcf861b67 100644 --- a/trunk/drivers/char/watchdog/mpcore_wdt.c +++ b/trunk/drivers/char/watchdog/mpcore_wdt.c @@ -180,6 +180,10 @@ static ssize_t mpcore_wdt_write(struct file *file, const char *data, size_t len, { struct mpcore_wdt *wdt = file->private_data; + /* Can't seek (pwrite) on this device */ + if (ppos != &file->f_pos) + return -ESPIPE; + /* * Refresh the timer. */ diff --git a/trunk/drivers/mmc/mmc.c b/trunk/drivers/mmc/mmc.c index b586a83a9b4c..d336a1d65dc7 100644 --- a/trunk/drivers/mmc/mmc.c +++ b/trunk/drivers/mmc/mmc.c @@ -932,9 +932,8 @@ static void mmc_read_scrs(struct mmc_host *host) sg_init_one(&sg, (u8*)card->raw_scr, 8); - mmc_wait_for_req(host, &mrq); - - if (cmd.error != MMC_ERR_NONE || data.error != MMC_ERR_NONE) { + err = mmc_wait_for_req(host, &mrq); + if (err != MMC_ERR_NONE) { mmc_card_set_dead(card); continue; } diff --git a/trunk/drivers/serial/8250_pci.c b/trunk/drivers/serial/8250_pci.c index 8adca0ce267f..8d92adfbb8bd 100644 --- a/trunk/drivers/serial/8250_pci.c +++ b/trunk/drivers/serial/8250_pci.c @@ -516,7 +516,7 @@ pci_timedia_setup(struct serial_private *priv, struct pciserial_board *board, break; case 3: offset = board->uart_offset; - /* FALLTHROUGH */ + bar = 1; case 4: /* BAR 2 */ case 5: /* BAR 3 */ case 6: /* BAR 4 */ diff --git a/trunk/drivers/video/bw2.c b/trunk/drivers/video/bw2.c index 9248fe1fbb1a..d3728f60961e 100644 --- a/trunk/drivers/video/bw2.c +++ b/trunk/drivers/video/bw2.c @@ -121,6 +121,7 @@ struct bw2_par { unsigned long fbsize; struct sbus_dev *sdev; + struct list_head list; }; /** diff --git a/trunk/drivers/video/cg14.c b/trunk/drivers/video/cg14.c index a56147102abb..1bed50f2a276 100644 --- a/trunk/drivers/video/cg14.c +++ b/trunk/drivers/video/cg14.c @@ -206,6 +206,7 @@ struct cg14_par { int mode; int ramsize; struct sbus_dev *sdev; + struct list_head list; }; static void __cg14_reset(struct cg14_par *par) diff --git a/trunk/drivers/video/cg3.c b/trunk/drivers/video/cg3.c index 9fcd89608ed7..a1354e7e0513 100644 --- a/trunk/drivers/video/cg3.c +++ b/trunk/drivers/video/cg3.c @@ -124,6 +124,7 @@ struct cg3_par { unsigned long fbsize; struct sbus_dev *sdev; + struct list_head list; }; /** diff --git a/trunk/drivers/video/cg6.c b/trunk/drivers/video/cg6.c index 050835e39aa3..9debe642fd2f 100644 --- a/trunk/drivers/video/cg6.c +++ b/trunk/drivers/video/cg6.c @@ -265,6 +265,7 @@ struct cg6_par { unsigned long fbsize; struct sbus_dev *sdev; + struct list_head list; }; static int cg6_sync(struct fb_info *info) @@ -611,7 +612,7 @@ static void cg6_chip_init(struct fb_info *info) struct cg6_par *par = (struct cg6_par *) info->par; struct cg6_tec __iomem *tec = par->tec; struct cg6_fbc __iomem *fbc = par->fbc; - u32 rev, conf, mode; + u32 rev, conf, mode, tmp; int i; /* Turn off stuff in the Transform Engine. */ diff --git a/trunk/drivers/video/ffb.c b/trunk/drivers/video/ffb.c index c4870d559afc..2584daec7bbf 100644 --- a/trunk/drivers/video/ffb.c +++ b/trunk/drivers/video/ffb.c @@ -359,6 +359,7 @@ struct ffb_par { int prom_parent_node; int dac_rev; int board_type; + struct list_head list; }; static void FFBFifo(struct ffb_par *par, int n) diff --git a/trunk/drivers/video/leo.c b/trunk/drivers/video/leo.c index 494287f8f8bf..376d4a171ec7 100644 --- a/trunk/drivers/video/leo.c +++ b/trunk/drivers/video/leo.c @@ -197,6 +197,7 @@ struct leo_par { unsigned long fbsize; struct sbus_dev *sdev; + struct list_head list; }; static void leo_wait(struct leo_lx_krn __iomem *lx_krn) diff --git a/trunk/drivers/video/p9100.c b/trunk/drivers/video/p9100.c index b251e754e16c..18bcda23d2cf 100644 --- a/trunk/drivers/video/p9100.c +++ b/trunk/drivers/video/p9100.c @@ -140,6 +140,7 @@ struct p9100_par { unsigned long fbsize; struct sbus_dev *sdev; + struct list_head list; }; /** diff --git a/trunk/drivers/video/tcx.c b/trunk/drivers/video/tcx.c index 2b27b4474001..fe4f63f3849d 100644 --- a/trunk/drivers/video/tcx.c +++ b/trunk/drivers/video/tcx.c @@ -125,6 +125,7 @@ struct tcx_par { int lowdepth; struct sbus_dev *sdev; + struct list_head list; }; /* Reset control plane so that WID is 8-bit plane. */ @@ -443,7 +444,7 @@ static void tcx_init_one(struct sbus_dev *sdev) tcx_reset(&all->info); - tcx_blank(FB_BLANK_UNBLANK, &all->info); + tcx_blank(0, &all->info); if (fb_alloc_cmap(&all->info.cmap, 256, 0)) { printk(KERN_ERR "tcx: Could not allocate color map.\n"); diff --git a/trunk/include/asm-arm/arch-pxa/irq.h b/trunk/include/asm-arm/arch-pxa/irq.h index 48c60f5eff6a..d770e4b37ae1 100644 --- a/trunk/include/asm-arm/arch-pxa/irq.h +++ b/trunk/include/asm-arm/arch-pxa/irq.h @@ -12,3 +12,8 @@ #define fixup_irq(x) (x) +/* + * This prototype is required for cascading of multiplexed interrupts. + * Since it doesn't exist elsewhere, we'll put it here for now. + */ +extern void do_IRQ(int irq, struct pt_regs *regs); diff --git a/trunk/include/asm-arm/io.h b/trunk/include/asm-arm/io.h index 0cf4d4f99600..ae69db4a1010 100644 --- a/trunk/include/asm-arm/io.h +++ b/trunk/include/asm-arm/io.h @@ -42,9 +42,9 @@ extern void __raw_writesb(void __iomem *addr, const void *data, int bytelen); extern void __raw_writesw(void __iomem *addr, const void *data, int wordlen); extern void __raw_writesl(void __iomem *addr, const void *data, int longlen); -extern void __raw_readsb(const void __iomem *addr, void *data, int bytelen); -extern void __raw_readsw(const void __iomem *addr, void *data, int wordlen); -extern void __raw_readsl(const void __iomem *addr, void *data, int longlen); +extern void __raw_readsb(void __iomem *addr, void *data, int bytelen); +extern void __raw_readsw(void __iomem *addr, void *data, int wordlen); +extern void __raw_readsl(void __iomem *addr, void *data, int longlen); #define __raw_writeb(v,a) (__chk_io_ptr(a), *(volatile unsigned char __force *)(a) = (v)) #define __raw_writew(v,a) (__chk_io_ptr(a), *(volatile unsigned short __force *)(a) = (v)) diff --git a/trunk/include/asm-arm/memory.h b/trunk/include/asm-arm/memory.h index 3e572364ee73..a547ee598c6c 100644 --- a/trunk/include/asm-arm/memory.h +++ b/trunk/include/asm-arm/memory.h @@ -122,7 +122,6 @@ static inline void *phys_to_virt(unsigned long x) */ #define __pa(x) __virt_to_phys((unsigned long)(x)) #define __va(x) ((void *)__phys_to_virt((unsigned long)(x))) -#define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT) /* * Virtual <-> DMA view memory address translations diff --git a/trunk/net/ipv6/tcp_ipv6.c b/trunk/net/ipv6/tcp_ipv6.c index 62c0e5bd931c..8827389abaf7 100644 --- a/trunk/net/ipv6/tcp_ipv6.c +++ b/trunk/net/ipv6/tcp_ipv6.c @@ -992,13 +992,12 @@ static void tcp_v6_send_reset(struct sk_buff *skb) /* sk = NULL, but it is safe for now. RST socket required. */ if (!ip6_dst_lookup(NULL, &buff->dst, &fl)) { - if ((xfrm_lookup(&buff->dst, &fl, NULL, 0)) < 0) + if (xfrm_lookup(&buff->dst, &fl, NULL, 0) >= 0) { + ip6_xmit(NULL, buff, &fl, NULL, 0); + TCP_INC_STATS_BH(TCP_MIB_OUTSEGS); + TCP_INC_STATS_BH(TCP_MIB_OUTRSTS); return; - - ip6_xmit(NULL, buff, &fl, NULL, 0); - TCP_INC_STATS_BH(TCP_MIB_OUTSEGS); - TCP_INC_STATS_BH(TCP_MIB_OUTRSTS); - return; + } } kfree_skb(buff); @@ -1057,11 +1056,11 @@ static void tcp_v6_send_ack(struct sk_buff *skb, u32 seq, u32 ack, u32 win, u32 fl.fl_ip_sport = t1->source; if (!ip6_dst_lookup(NULL, &buff->dst, &fl)) { - if ((xfrm_lookup(&buff->dst, &fl, NULL, 0)) < 0) + if (xfrm_lookup(&buff->dst, &fl, NULL, 0) >= 0) { + ip6_xmit(NULL, buff, &fl, NULL, 0); + TCP_INC_STATS_BH(TCP_MIB_OUTSEGS); return; - ip6_xmit(NULL, buff, &fl, NULL, 0); - TCP_INC_STATS_BH(TCP_MIB_OUTSEGS); - return; + } } kfree_skb(buff);