1. 23 1月, 2014 1 次提交
    • M
      fuse: fix pipe_buf_operations · 28a625cb
      Miklos Szeredi 提交于
      Having this struct in module memory could Oops when if the module is
      unloaded while the buffer still persists in a pipe.
      
      Since sock_pipe_buf_ops is essentially the same as fuse_dev_pipe_buf_steal
      merge them into nosteal_pipe_buf_ops (this is the same as
      default_pipe_buf_ops except stealing the page from the buffer is not
      allowed).
      Reported-by: NAl Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: NMiklos Szeredi <mszeredi@suse.cz>
      Cc: stable@vger.kernel.org
      28a625cb
  2. 20 1月, 2014 4 次提交
  3. 18 1月, 2014 9 次提交
    • R
      Revert "ACPI: Add BayTrail SoC GPIO and LPSS ACPI IDs" · 2b844ba7
      Rafael J. Wysocki 提交于
      This reverts commit f6308b36 (ACPI: Add BayTrail SoC GPIO and LPSS
      ACPI IDs), because it causes the Alan Cox' ASUS T100TA to "crash and
      burn" during boot if the Baytrail pinctrl driver is compiled in.
      
      Fixes: f6308b36 (ACPI: Add BayTrail SoC GPIO and LPSS ACPI IDs)
      Reported-by: NOne Thousand Gnomes <gnomes@lxorguk.ukuu.org.uk>
      Requested-by: NLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      2b844ba7
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 7d0d46da
      Linus Torvalds 提交于
      Pull networking fixes from David Miller:
      
       1) The value choosen for the new SO_MAX_PACING_RATE socket option on
          parisc was very poorly choosen, let's fix it while we still can.
          From Eric Dumazet.
      
       2) Our generic reciprocal divide was found to handle some edge cases
          incorrectly, part of this is encoded into the BPF as deep as the JIT
          engines themselves.  Just use a real divide throughout for now.
          From Eric Dumazet.
      
       3) Because the initial lookup is lockless, the TCP metrics engine can
          end up creating two entries for the same lookup key.  Fix this by
          doing a second lookup under the lock before we actually create the
          new entry.  From Christoph Paasch.
      
       4) Fix scatter-gather list init in usbnet driver, from Bjørn Mork.
      
       5) Fix unintended 32-bit truncation in cxgb4 driver's bit shifting.
          From Dan Carpenter.
      
       6) Netlink socket dumping uses the wrong socket state for timewait
          sockets.  Fix from Neal Cardwell.
      
       7) Fix netlink memory leak in ieee802154_add_iface(), from Christian
          Engelmayer.
      
       8) Multicast forwarding in ipv4 can overflow the per-rule reference
          counts, causing all multicast traffic to cease.  Fix from Hannes
          Frederic Sowa.
      
       9) via-rhine needs to stop all TX queues when it resets the device,
          from Richard Weinberger.
      
      10) Fix RDS per-cpu accesses broken by the this_cpu_* conversions.  From
          Gerald Schaefer.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
        s390/bpf,jit: fix 32 bit divisions, use unsigned divide instructions
        parisc: fix SO_MAX_PACING_RATE typo
        ipv6: simplify detection of first operational link-local address on interface
        tcp: metrics: Avoid duplicate entries with the same destination-IP
        net: rds: fix per-cpu helper usage
        e1000e: Fix compilation warning when !CONFIG_PM_SLEEP
        bpf: do not use reciprocal divide
        be2net: add dma_mapping_error() check for dma_map_page()
        bnx2x: Don't release PCI bars on shutdown
        net,via-rhine: Fix tx_timeout handling
        batman-adv: fix batman-adv header overhead calculation
        qlge: Fix vlan netdev features.
        net: avoid reference counter overflows on fib_rules in multicast forwarding
        dm9601: add USB IDs for new dm96xx variants
        MAINTAINERS: add virtio-dev ML for virtio
        ieee802154: Fix memory leak in ieee802154_add_iface()
        net: usbnet: fix SG initialisation
        inet_diag: fix inet_diag_dump_icsk() to use correct state for timewait sockets
        cxgb4: silence shift wrapping static checker warning
      7d0d46da
    • H
      s390/bpf,jit: fix 32 bit divisions, use unsigned divide instructions · 3af57f78
      Heiko Carstens 提交于
      The s390 bpf jit compiler emits the signed divide instructions "dr" and "d"
      for unsigned divisions.
      This can cause problems: the dividend will be zero extended to a 64 bit value
      and the divisor is the 32 bit signed value as specified A or X accumulator,
      even though A and X are supposed to be treated as unsigned values.
      
      The divide instrunctions will generate an exception if the result cannot be
      expressed with a 32 bit signed value.
      This is the case if e.g. the dividend is 0xffffffff and the divisor either 1
      or also 0xffffffff (signed: -1).
      
      To avoid all these issues simply use unsigned divide instructions.
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3af57f78
    • E
      parisc: fix SO_MAX_PACING_RATE typo · 75b99dbd
      Eric Dumazet 提交于
      SO_MAX_PACING_RATE definition on parisc got a typo.
      Its not too late to fix it, before 3.13 is official.
      
      Fixes: 62748f32 ("net: introduce SO_MAX_PACING_RATE")
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      75b99dbd
    • H
      ipv6: simplify detection of first operational link-local address on interface · 11ffff75
      Hannes Frederic Sowa 提交于
      In commit 1ec047eb ("ipv6: introduce per-interface counter for
      dad-completed ipv6 addresses") I build the detection of the first
      operational link-local address much to complex. Additionally this code
      now has a race condition.
      
      Replace it with a much simpler variant, which just scans the address
      list when duplicate address detection completes, to check if this is
      the first valid link local address and send RS and MLD reports then.
      
      Fixes: 1ec047eb ("ipv6: introduce per-interface counter for dad-completed ipv6 addresses")
      Reported-by: NJiri Pirko <jiri@resnulli.us>
      Cc: Flavio Leitner <fbl@redhat.com>
      Signed-off-by: NHannes Frederic Sowa <hannes@stressinduktion.org>
      Acked-by: NFlavio Leitner <fbl@redhat.com>
      Acked-by: NJiri Pirko <jiri@resnulli.us>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      11ffff75
    • C
      tcp: metrics: Avoid duplicate entries with the same destination-IP · 77f99ad1
      Christoph Paasch 提交于
      Because the tcp-metrics is an RCU-list, it may be that two
      soft-interrupts are inside __tcp_get_metrics() for the same
      destination-IP at the same time. If this destination-IP is not yet part of
      the tcp-metrics, both soft-interrupts will end up in tcpm_new and create
      a new entry for this IP.
      So, we will have two tcp-metrics with the same destination-IP in the list.
      
      This patch checks twice __tcp_get_metrics(). First without holding the
      lock, then while holding the lock. The second one is there to confirm
      that the entry has not been added by another soft-irq while waiting for
      the spin-lock.
      
      Fixes: 51c5d0c4 (tcp: Maintain dynamic metrics in local cache.)
      Signed-off-by: NChristoph Paasch <christoph.paasch@uclouvain.be>
      Reviewed-by: NEric Dumazet <edumazet@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      77f99ad1
    • G
      net: rds: fix per-cpu helper usage · c196403b
      Gerald Schaefer 提交于
      commit ae4b46e9 "net: rds: use this_cpu_* per-cpu helper" broke per-cpu
      handling for rds. chpfirst is the result of __this_cpu_read(), so it is
      an absolute pointer and not __percpu. Therefore, __this_cpu_write()
      should not operate on chpfirst, but rather on cache->percpu->first, just
      like __this_cpu_read() did before.
      
      Cc: <stable@vger.kernel.org> # 3.8+
      Signed-off-byd Gerald Schaefer <gerald.schaefer@de.ibm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c196403b
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace · 48ba620a
      Linus Torvalds 提交于
      Pull namespace fixes from Eric Biederman:
       "This is a set of 3 regression fixes.
      
        This fixes /proc/mounts when using "ip netns add <netns>" to display
        the actual mount point.
      
        This fixes a regression in clone that broke lxc-attach.
      
        This fixes a regression in the permission checks for mounting /proc
        that made proc unmountable if binfmt_misc was in use.  Oops.
      
        My apologies for sending this pull request so late.  Al Viro gave
        interesting review comments about the d_path fix that I wanted to
        address in detail before I sent this pull request.  Unfortunately a
        bad round of colds kept from addressing that in detail until today.
        The executive summary of the review was:
      
        Al: Is patching d_path really sufficient?
            The prepend_path, d_path, d_absolute_path, and __d_path family of
            functions is a really mess.
      
        Me: Yes, patching d_path is really sufficient.  Yes, the code is mess.
            No it is not appropriate to rewrite all of d_path for a regression
            that has existed for entirely too long already, when a two line
            change will do"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:
        vfs: Fix a regression in mounting proc
        fork:  Allow CLONE_PARENT after setns(CLONE_NEWPID)
        vfs: In d_path don't call d_dname on a mount point
      48ba620a
    • L
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 8f211b6c
      Linus Torvalds 提交于
      Pull KVM fix from Paolo Bonzini:
       "Fix for a brown paper bag bug.  Thanks to Drew Jones for noticing"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        kvm: x86: fix apic_base enable check
      8f211b6c
  4. 17 1月, 2014 5 次提交
  5. 16 1月, 2014 13 次提交
  6. 15 1月, 2014 8 次提交
    • A
      kvm: x86: fix apic_base enable check · 0dce7cd6
      Andrew Jones 提交于
      Commit e66d2ae7 moved the assignment
      vcpu->arch.apic_base = value above a condition with
      (vcpu->arch.apic_base ^ value), causing that check
      to always fail. Use old_value, vcpu->arch.apic_base's
      old value, in the condition instead.
      Signed-off-by: NAndrew Jones <drjones@redhat.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      0dce7cd6
    • L
      Merge branch 'akpm' (incoming from Andrew) · 2e67c562
      Linus Torvalds 提交于
      Merge patches from Andrew Morton:
       "Six fixes"
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>:
        lib/percpu_counter.c: fix __percpu_counter_add()
        crash_dump: fix compilation error (on MIPS at least)
        mm: fix crash when using XFS on loopback
        MIPS: fix blast_icache32 on loongson2
        MIPS: fix case mismatch in local_r4k_flush_icache_range()
        nilfs2: fix segctor bug that causes file system corruption
      2e67c562
    • L
      Merge tag 'md/3.13-fixes' of git://neil.brown.name/md · 1a60864f
      Linus Torvalds 提交于
      Pull late md fixes from Neil Brown:
       "Half a dozen md bug fixes.
      
        All of these fix real bugs the people have hit, and are tagged for
        -stable.  Sorry they are late ....  Christmas holidays and all that.
        Hopefully they can still squeak into 3.13"
      
      * tag 'md/3.13-fixes' of git://neil.brown.name/md:
        md: fix problem when adding device to read-only array with bitmap.
        md/raid10: fix bug when raid10 recovery fails to recover a block.
        md/raid5: fix a recently broken BUG_ON().
        md/raid1: fix request counting bug in new 'barrier' code.
        md/raid10: fix two bugs in handling of known-bad-blocks.
        md/raid5: Fix possible confusion when multiple write errors occur.
      1a60864f
    • L
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · 145830df
      Linus Torvalds 提交于
      Pull drm fixes from Dave Airlie:
       "One nouveau regression fix on older cards, i915 black screen fixes,
        and a revert for a strange G33 intel problem"
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
        drm/nouveau: fix null ptr dereferences on some boards
        Revert "drm: copy mode type in drm_mode_connector_list_update()"
        drm/i915/bdw: make sure south port interrupts are enabled properly v2
        drm/i915: Don't grab crtc mutexes in intel_modeset_gem_init()
        drm/i915: fix DDI PLLs HW state readout code
      145830df
    • M
      lib/percpu_counter.c: fix __percpu_counter_add() · 74e72f89
      Ming Lei 提交于
      __percpu_counter_add() may be called in softirq/hardirq handler (such
      as, blk_mq_queue_exit() is typically called in hardirq/softirq handler),
      so we need to call this_cpu_add()(irq safe helper) to update percpu
      counter, otherwise counts may be lost.
      
      This fixes the problem that 'rmmod null_blk' hangs in blk_cleanup_queue()
      because of miscounting of request_queue->mq_usage_counter.
      
      This patch is the v1 of previous one of "lib/percpu_counter.c:
      disable local irq when updating percpu couter", and takes Andrew's
      approach which may be more efficient for ARCHs(x86, s390) that
      have optimized this_cpu_add().
      Signed-off-by: NMing Lei <tom.leiming@gmail.com>
      Cc: Paul Gortmaker <paul.gortmaker@windriver.com>
      Cc: Shaohua Li <shli@fusionio.com>
      Cc: Jens Axboe <axboe@kernel.dk>
      Cc: Fan Du <fan.du@windriver.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      74e72f89
    • Q
      crash_dump: fix compilation error (on MIPS at least) · 5a610fcc
      Qais Yousef 提交于
        In file included from kernel/crash_dump.c:2:0:
        include/linux/crash_dump.h:22:27: error: unknown type name `pgprot_t'
      
      when CONFIG_CRASH_DUMP=y
      
      The error was traced back to commit 9cb21813 ("vmcore: introduce
      remap_oldmem_pfn_range()")
      
      include <asm/pgtable.h> to get the missing definition
      Signed-off-by: NQais Yousef <qais.yousef@imgtec.com>
      Reviewed-by: NJames Hogan <james.hogan@imgtec.com>
      Cc: Michael Holzheu <holzheu@linux.vnet.ibm.com>
      Acked-by: NVivek Goyal <vgoyal@redhat.com>
      Cc: <stable@vger.kernel.org>	[3.12+]
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      5a610fcc
    • M
      mm: fix crash when using XFS on loopback · 03e5ac2f
      Mikulas Patocka 提交于
      Commit 8456a648 ("slab: use struct page for slab management") causes
      a crash in the LVM2 testsuite on PA-RISC (the crashing test is
      fsadm.sh).  The testsuite doesn't crash on 3.12, crashes on 3.13-rc1 and
      later.
      
       Bad Address (null pointer deref?): Code=15 regs=000000413edd89a0 (Addr=000006202224647d)
       CPU: 3 PID: 24008 Comm: loop0 Not tainted 3.13.0-rc6 #5
       task: 00000001bf3c0048 ti: 000000413edd8000 task.ti: 000000413edd8000
      
            YZrvWESTHLNXBCVMcbcbcbcbOGFRQPDI
       PSW: 00001000000001101111100100001110 Not tainted
       r00-03  000000ff0806f90e 00000000405c8de0 000000004013e6c0 000000413edd83f0
       r04-07  00000000405a95e0 0000000000000200 00000001414735f0 00000001bf349e40
       r08-11  0000000010fe3d10 0000000000000001 00000040829c7778 000000413efd9000
       r12-15  0000000000000000 000000004060d800 0000000010fe3000 0000000010fe3000
       r16-19  000000413edd82a0 00000041078ddbc0 0000000000000010 0000000000000001
       r20-23  0008f3d0d83a8000 0000000000000000 00000040829c7778 0000000000000080
       r24-27  00000001bf349e40 00000001bf349e40 202d66202224640d 00000000405a95e0
       r28-31  202d662022246465 000000413edd88f0 000000413edd89a0 0000000000000001
       sr00-03  000000000532c000 0000000000000000 0000000000000000 000000000532c000
       sr04-07  0000000000000000 0000000000000000 0000000000000000 0000000000000000
      
       IASQ: 0000000000000000 0000000000000000 IAOQ: 00000000401fe42c 00000000401fe430
        IIR: 539c0030    ISR: 00000000202d6000  IOR: 000006202224647d
        CPU:        3   CR30: 000000413edd8000 CR31: 0000000000000000
        ORIG_R28: 00000000405a95e0
        IAOQ[0]: vma_interval_tree_iter_first+0x14/0x48
        IAOQ[1]: vma_interval_tree_iter_first+0x18/0x48
        RP(r2): flush_dcache_page+0x128/0x388
       Backtrace:
         flush_dcache_page+0x128/0x388
         lo_splice_actor+0x90/0x148 [loop]
         splice_from_pipe_feed+0xc0/0x1d0
         __splice_from_pipe+0xac/0xc0
         lo_direct_splice_actor+0x1c/0x70 [loop]
         splice_direct_to_actor+0xec/0x228
         lo_receive+0xe4/0x298 [loop]
         loop_thread+0x478/0x640 [loop]
         kthread+0x134/0x168
         end_fault_vector+0x20/0x28
         xfs_setsize_buftarg+0x0/0x90 [xfs]
      
       Kernel panic - not syncing: Bad Address (null pointer deref?)
      
      Commit 8456a648 changes the page structure so that the slab
      subsystem reuses the page->mapping field.
      
      The crash happens in the following way:
       * XFS allocates some memory from slab and issues a bio to read data
         into it.
       * the bio is sent to the loopback device.
       * lo_receive creates an actor and calls splice_direct_to_actor.
       * lo_splice_actor copies data to the target page.
       * lo_splice_actor calls flush_dcache_page because the page may be
         mapped by userspace.  In that case we need to flush the kernel cache.
       * flush_dcache_page asks for the list of userspace mappings, however
         that page->mapping field is reused by the slab subsystem for a
         different purpose.  This causes the crash.
      
      Note that other architectures without coherent caches (sparc, arm, mips)
      also call page_mapping from flush_dcache_page, so they may crash in the
      same way.
      
      This patch fixes this bug by testing if the page is a slab page in
      page_mapping and returning NULL if it is.
      
      The patch also fixes VM_BUG_ON(PageSlab(page)) that could happen in
      earlier kernels in the same scenario on architectures without cache
      coherence when CONFIG_DEBUG_VM is enabled - so it should be backported
      to stable kernels.
      
      In the old kernels, the function page_mapping is placed in
      include/linux/mm.h, so you should modify the patch accordingly when
      backporting it.
      Signed-off-by: NMikulas Patocka <mpatocka@redhat.com>
      Cc: John David Anglin <dave.anglin@bell.net>]
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Christoph Lameter <cl@linux.com>
      Acked-by: NPekka Enberg <penberg@kernel.org>
      Reviewed-by: NJoonsoo Kim <iamjoonsoo.kim@lge.com>
      Cc: Helge Deller <deller@gmx.de>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      03e5ac2f
    • A
      MIPS: fix blast_icache32 on loongson2 · 43a06847
      Aaro Koskinen 提交于
      Commit 14bd8c08 ("MIPS: Loongson: Get rid of Loongson 2 #ifdefery
      all over arch/mips") failed to add Loongson2 specific blast_icache32
      functions.  Fix that.
      
      The patch fixes the following crash seen with 3.13-rc1:
      
        Reserved instruction in kernel code[#1]:
        [...]
        Call Trace:
          blast_icache32_page+0x8/0xb0
          r4k_flush_cache_page+0x19c/0x200
          do_wp_page.isra.97+0x47c/0xe08
          handle_mm_fault+0x938/0x1118
          __do_page_fault+0x140/0x540
          resume_userspace_check+0x0/0x10
        Code: 00200825  64834000  00200825 <bc900000> bc900020  bc900040  bc900060  bc900080  bc9000a0
      Signed-off-by: NAaro Koskinen <aaro.koskinen@iki.fi>
      Reviewed-by: NAurelien Jarno <aurelien@aurel32.net>
      Acked-by: NJohn Crispin <blogic@openwrt.org>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      43a06847