]> err.no Git - linux-2.6/commitdiff
Merge branch 'upstream-fixes' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik...
authorLinus Torvalds <torvalds@g5.osdl.org>
Tue, 13 Dec 2005 00:41:37 +0000 (16:41 -0800)
committerLinus Torvalds <torvalds@g5.osdl.org>
Tue, 13 Dec 2005 00:41:37 +0000 (16:41 -0800)
22 files changed:
Documentation/arm/00-INDEX
arch/arm/kernel/ptrace.c
arch/sparc/Makefile
arch/sparc/lib/atomic32.c
drivers/char/watchdog/mpcore_wdt.c
drivers/mmc/mmc.c
drivers/scsi/scsi_scan.c
drivers/serial/8250_pci.c
drivers/video/bw2.c
drivers/video/cg14.c
drivers/video/cg3.c
drivers/video/cg6.c
drivers/video/ffb.c
drivers/video/leo.c
drivers/video/p9100.c
drivers/video/tcx.c
include/asm-arm/arch-pxa/irq.h
include/asm-arm/io.h
include/asm-arm/memory.h
mm/memory.c
net/ipv4/netfilter/ip_nat_tftp.c
net/ipv6/tcp_ipv6.c

index d753fe59a248df4b8953cd2ac0e8222b6222d4dc..2c6a3b38967ea74a06c4b129c85fc1c1a54dd533 100644 (file)
@@ -16,5 +16,7 @@ empeg
        - Empeg documentation
 mem_alignment
        - alignment abort handler documentation
+memory.txt
+       - description of the virtual memory layout
 nwfpe
        - NWFPE floating point emulator documentation
index 9a340e790da52a9b801857c2da22226f89c91d66..2b84f78d7b0f78585698e54bf137f3cde7634205 100644 (file)
@@ -242,6 +242,15 @@ 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;
 
index dea48f6cff38be962d2c9f6cb7a12d251d4317fb..4cdbb2d59ed0a3e04c5e1d10a5bcf308c8ee7f22 100644 (file)
@@ -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/
+CORE_Y         += kernel/ mm/ fs/ ipc/ security/ crypto/ block/
 CORE_Y         := $(patsubst %/, %/built-in.o, $(CORE_Y))
 DRIVERS_Y      := $(patsubst %/, %/built-in.o, $(drivers-y))
 NET_Y          := $(patsubst %/, %/built-in.o, $(net-y))
index cb3cf0f228221154a2dd5e658b8550733a966866..de84f8534bacd24d310a635bc1769ed3c6fd06d1 100644 (file)
@@ -66,7 +66,6 @@ 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)
 {
index 9defcf861b67095e2a245b1ddeae0686d75badc7..b4d843489881adaacdf3e2326ed09bf49b9b0f7d 100644 (file)
@@ -180,10 +180,6 @@ 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.
         */
index d336a1d65dc7ec0ec165a62218840640207fdaf0..b586a83a9b4c7f12fa60c6c13135c05b60c5de91 100644 (file)
@@ -932,8 +932,9 @@ static void mmc_read_scrs(struct mmc_host *host)
 
                sg_init_one(&sg, (u8*)card->raw_scr, 8);
 
-               err = mmc_wait_for_req(host, &mrq);
-               if (err != MMC_ERR_NONE) {
+               mmc_wait_for_req(host, &mrq);
+
+               if (cmd.error != MMC_ERR_NONE || data.error != MMC_ERR_NONE) {
                        mmc_card_set_dead(card);
                        continue;
                }
index 374853df9cca10fb733b9eff4ffc8aa373ee5ffc..94e5167f260dbc93642b554ac2378cbc5f546908 100644 (file)
@@ -266,8 +266,6 @@ static struct scsi_device *scsi_alloc_sdev(struct scsi_target *starget,
                        /*
                         * if LLDD reports slave not present, don't clutter
                         * console with alloc failure messages
-
-
                         */
                        if (ret == -ENXIO)
                                display_failure_msg = 0;
@@ -279,7 +277,6 @@ static struct scsi_device *scsi_alloc_sdev(struct scsi_target *starget,
 
 out_device_destroy:
        transport_destroy_device(&sdev->sdev_gendev);
-       scsi_free_queue(sdev->request_queue);
        put_device(&sdev->sdev_gendev);
 out:
        if (display_failure_msg)
index 8d92adfbb8bd70316253a1e444b4ad8a96497de7..8adca0ce267f66ed7f57b5e36e8365e1a165ab5e 100644 (file)
@@ -516,7 +516,7 @@ pci_timedia_setup(struct serial_private *priv, struct pciserial_board *board,
                break;
        case 3:
                offset = board->uart_offset;
-               bar = 1;
+               /* FALLTHROUGH */
        case 4: /* BAR 2 */
        case 5: /* BAR 3 */
        case 6: /* BAR 4 */
index d3728f60961e75230a466aa94172bdb52a64cd42..9248fe1fbb1a45e36e650058c566971f9aa232d3 100644 (file)
@@ -121,7 +121,6 @@ struct bw2_par {
        unsigned long           fbsize;
 
        struct sbus_dev         *sdev;
-       struct list_head        list;
 };
 
 /**
index 1bed50f2a2767dbb1a7901b0dcd23faa81524060..a56147102abbbaebcdac2ca6d80d530234ae756e 100644 (file)
@@ -206,7 +206,6 @@ struct cg14_par {
        int                     mode;
        int                     ramsize;
        struct sbus_dev         *sdev;
-       struct list_head        list;
 };
 
 static void __cg14_reset(struct cg14_par *par)
index a1354e7e0513e970b5ddf4bb10a3f305f900de70..9fcd89608ed7d6daa4ea4bd88ed4447b23845b59 100644 (file)
@@ -124,7 +124,6 @@ struct cg3_par {
        unsigned long           fbsize;
 
        struct sbus_dev         *sdev;
-       struct list_head        list;
 };
 
 /**
index 9debe642fd2f8825a0b394112d30ee8bc12c46c1..050835e39aa3569769e25e00bc18cfdeb2161b5a 100644 (file)
@@ -265,7 +265,6 @@ struct cg6_par {
        unsigned long           fbsize;
 
        struct sbus_dev         *sdev;
-       struct list_head        list;
 };
 
 static int cg6_sync(struct fb_info *info)
@@ -612,7 +611,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, tmp;
+       u32 rev, conf, mode;
        int i;
        
        /* Turn off stuff in the Transform Engine. */
index 2584daec7bbf2132c0df085ede3bcf4b2a692b21..c4870d559afc47d7a644d081ef548ef64717685c 100644 (file)
@@ -359,7 +359,6 @@ 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)
index 376d4a171ec7bd4fb4d0ca6698d6fdb6522cfa72..494287f8f8bf5d3b3aced8b755f8e5def8598456 100644 (file)
@@ -197,7 +197,6 @@ 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)
index 18bcda23d2cf7b7a2a9d39ae03b87b4cad91799f..b251e754e16cff62afdc08b4c96883df031060a6 100644 (file)
@@ -140,7 +140,6 @@ struct p9100_par {
        unsigned long           fbsize;
 
        struct sbus_dev         *sdev;
-       struct list_head        list;
 };
 
 /**
index fe4f63f3849d530b9511da463050bcb74cb174c2..2b27b4474001d66020a28fadc2b42080b82d620b 100644 (file)
@@ -125,7 +125,6 @@ struct tcx_par {
        int                     lowdepth;
 
        struct sbus_dev         *sdev;
-       struct list_head        list;
 };
 
 /* Reset control plane so that WID is 8-bit plane. */
@@ -444,7 +443,7 @@ static void tcx_init_one(struct sbus_dev *sdev)
 
        tcx_reset(&all->info);
 
-       tcx_blank(0, &all->info);
+       tcx_blank(FB_BLANK_UNBLANK, &all->info);
 
        if (fb_alloc_cmap(&all->info.cmap, 256, 0)) {
                printk(KERN_ERR "tcx: Could not allocate color map.\n");
index d770e4b37ae137be669c46b98fc0de51376ee4be..48c60f5eff6aa917f5a0d7ae7817c3f294be618b 100644 (file)
@@ -12,8 +12,3 @@
 
 #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);
index ae69db4a101057ff28fb4ee04a8dbc2b143ed067..0cf4d4f99600d6d5c5e9163c69f1100c5d39af76 100644 (file)
@@ -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(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);
+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);
 
 #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))
index a547ee598c6c9f2e1fa8968fb96be1a9c9ee0712..3e572364ee73c665dbc2fd21a34e33d076e6363b 100644 (file)
@@ -122,6 +122,7 @@ 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
index 47c533eaa0721c558eddcc68dfa6c8de1f2844ef..d22f78c8a381a2dbcc78fbb4f15c7e4ef8f9125f 100644 (file)
@@ -1009,7 +1009,7 @@ int get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
                        continue;
                }
 
-               if (!vma || (vma->vm_flags & VM_IO)
+               if (!vma || (vma->vm_flags & (VM_IO | VM_PFNMAP))
                                || !(vm_flags & vma->vm_flags))
                        return i ? : -EFAULT;
 
index 2215317c76b7d177299969b87adbc31feabc6a51..43c3bd7c118e70b1594f11e6397444090ecee1a1 100644 (file)
@@ -42,7 +42,10 @@ static unsigned int help(struct sk_buff **pskb,
                         enum ip_conntrack_info ctinfo,
                         struct ip_conntrack_expect *exp)
 {
-       exp->saved_proto.udp.port = exp->tuple.dst.u.tcp.port;
+       struct ip_conntrack *ct = exp->master;
+
+       exp->saved_proto.udp.port
+               = ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple.src.u.udp.port;
        exp->dir = IP_CT_DIR_REPLY;
        exp->expectfn = ip_nat_follow_master;
        if (ip_conntrack_expect_related(exp) != 0)
index 62c0e5bd931c7aa458083b00e2d81850f8c1b4e0..8827389abaf72a0f568251aeefeeea14809123b6 100644 (file)
@@ -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);