1. 29 Oct, 2013 3 commits
    • Ariel Elior's avatar
      bnx2x: Disable VF access on PF removal · 826cb7b4
      Ariel Elior authored
      When the bnx2x driver is rmmoded, if VFs of a given PF will be assigned
      to a VM then that PF will be unable to call `pci_disable_sriov()'.
      
      If for that same PF there would also exist unassigned VFs in the hypervisor,
      the result will be that after the removal there will still be virtual PCI
      functions on the hypervisor.
      If the bnx2x module were to be re-inserted, the result will be that the VFs
      on the hypervisor will be re-probed directly following the PF's probe, even
      though that in regular loading flow sriov is only enabled once PF is loaded.
      The probed VF will then try to access its bar, causing a PCI error as the HW
      is not in a state enabling such a request.
      
      This patch adds a missing disablement procedure to the PF's removal, one that
      sets registers viewable to the VF to indicate that the VFs have no permission
      to access the bar, thus resulting in probe errors instead of PCI errors.
      Signed-off-by: default avatarAriel Elior <ariele@broadcom.com>
      Signed-off-by: default avatarYuval Mintz <yuvalmin@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      826cb7b4
    • Dmitry Kravkov's avatar
      bnx2x: prevent FW assert on low mem during unload · e3ed4eae
      Dmitry Kravkov authored
      Buffers for FW statistics were allocated at an inappropriate time; In a machine
      where the driver encounters problems allocating all of its queues, the driver
      would still create FW requests for the statistics of the non-existing queues.
      The wrong order of memory allocation could lead to zeroed statistics messages
      being sent, leading to fw assert in case function 0 was down.
      
      This changes the order of allocations, guaranteeing that statistic requests will
      only be generated for actual queues.
      Signed-off-by: default avatarDmitry Kravkov <dmitry@broadcom.com>
      Signed-off-by: default avatarYuval Mintz <yuvalmin@broadcom.com>
      Signed-off-by: default avatarAriel Elior <ariele@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e3ed4eae
    • Eric Dumazet's avatar
      tcp: gso: fix truesize tracking · 0d08c42c
      Eric Dumazet authored
      commit 6ff50cd5 ("tcp: gso: do not generate out of order packets")
      had an heuristic that can trigger a warning in skb_try_coalesce(),
      because skb->truesize of the gso segments were exactly set to mss.
      
      This breaks the requirement that
      
      skb->truesize >= skb->len + truesizeof(struct sk_buff);
      
      It can trivially be reproduced by :
      
      ifconfig lo mtu 1500
      ethtool -K lo tso off
      netperf
      
      As the skbs are looped into the TCP networking stack, skb_try_coalesce()
      warns us of these skb under-estimating their truesize.
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Reported-by: default avatarAlexei Starovoitov <ast@plumgrid.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0d08c42c
  2. 28 Oct, 2013 1 commit
  3. 27 Oct, 2013 5 commits
  4. 26 Oct, 2013 3 commits
  5. 25 Oct, 2013 7 commits
  6. 23 Oct, 2013 9 commits
    • Daniel Borkmann's avatar
      net: sctp: fix ASCONF to allow non SCTP_ADDR_SRC addresses in ipv6 · fecda034
      Daniel Borkmann authored
      Commit 8a07eb0a ("sctp: Add ASCONF operation on the single-homed host")
      implemented possible use of IPv4 addresses with non SCTP_ADDR_SRC state
      as source address when sending ASCONF (ADD) packets, but IPv6 part for
      that was not implemented in 8a07eb0a. Therefore, as this is not restricted
      to IPv4-only, fix this up to allow the same for IPv6 addresses in SCTP.
      Signed-off-by: default avatarDaniel Borkmann <dborkman@redhat.com>
      Cc: Michio Honda <micchie@sfc.wide.ad.jp>
      Acked-by: default avatarMichio Honda <micchie@sfc.wide.ad.jp>
      Acked-by: default avatarVlad Yasevich <vyasevich@gmail.com>
      Acked-by: default avatarNeil Horman <nhorman@tuxdriver.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      fecda034
    • David S. Miller's avatar
      Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf · afb14c7c
      David S. Miller authored
      Pablo Neira Ayuso says:
      
      ====================
      The following patchset contains three netfilter fixes for your net
      tree, they are:
      
      * A couple of fixes to resolve info leak to userspace due to uninitialized
        memory area in ulogd, from Mathias Krause.
      
      * Fix instruction ordering issues that may lead to the access of
        uninitialized data in x_tables. The problem involves the table update
       (producer) and the main packet matching (consumer) routines. Detected in
        SMP ARMv7, from Will Deacon.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      afb14c7c
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 320437af
      Linus Torvalds authored
      Pull s390 fixes from Martin Schwidefsky:
       "Several last minute bug fixes.
      
        Two of them are on the larger side for rc7, the dasd format patch for
        older storage devices and the store-clock-fast patch where we have
        been to optimistic with an optimization"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
        s390/time: correct use of store clock fast
        s390/vmlogrdr: fix array access in vmlogrdr_open()
        s390/compat,signal: fix return value of copy_siginfo_(to|from)_user32()
        s390/dasd: check for availability of prefix command during format
        s390/mm,kvm: fix software dirty bits vs. kvm for old machines
      320437af
    • Linus Torvalds's avatar
      Merge branch 'for-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux · 90338325
      Linus Torvalds authored
      Pull thermal management fixes from Zhang Rui:
       "These includes several commits that are necessary to properly fix
        regression for TMU test MUX address setting after reset, for exynos
        thermal driver.
      
        Specifics:
      
         - fix a regression that the removal of setting a certain field at TMU
           configuration setting results in immediately shutdown after reset
           on Exynos4412 SoC.
      
         - revert a patch which tries to link the thermal_zone device and its
           hwmon node but breaks libsensors.
      
         - fix a deadlock/lockdep warning issue in x86_pkg_temp thermal
           driver, which can be reproduced on a buggy platform only.
      
         - fix ti-soc-thermal driver to fall back on bandgap reading when
           reading from PCB temperature sensor fails"
      
      * 'for-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux:
        Revert "drivers: thermal: parent virtual hwmon with thermal zone"
        drivers: thermal: allow ti-soc-thermal run without pcb zone
        thermal: exynos: Provide initial setting for TMU's test MUX address at Exynos4412
        thermal: exynos: Provide separate TMU data for Exynos4412
        thermal: exynos: Remove check for thermal device pointer at exynos_report_trigger()
        Thermal: x86_pkg_temp: change spin lock
      90338325
    • Randy Dunlap's avatar
      platform/x86: fix asus-wmi build error · ea89e1d3
      Randy Dunlap authored
      Fix build error in asus_wmi.c when ASUS_WMI=y and ACPI_VIDEO=m
      by preventing that combination.
      
        drivers/built-in.o: In function `asus_wmi_probe':
        asus-wmi.c:(.text+0x65ddb4): undefined reference to `acpi_video_unregister'
      Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ea89e1d3
    • Kent Overstreet's avatar
      bcache: Fixed incorrect order of arguments to bio_alloc_bioset() · d4eddd42
      Kent Overstreet authored
      Signed-off-by: default avatarKent Overstreet <kmo@daterainc.com>
      Cc: linux-stable <stable@vger.kernel.org> # >= v3.10
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d4eddd42
    • Linus Torvalds's avatar
      Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media · f4e5e14f
      Linus Torvalds authored
      Pull media fixes from Mauro Carvalho Chehab:
       - Compilation fixes for GCC < 4.4.6
       - one Kbuild dependency select fix (selecting videobuf on msi3101)
       - driver fixes on tda10071, e4000, msi3101, soc_camera, s5p-jpeg,
         saa7134 and adv7511
       - some device quirks needed to make them work properly
       - some videobuf2 core regression fixes for some features used only on
         embedded drivers
      
      * 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media:
        [media] saa7134: Fix crash when device is closed before streamoff
        [media] adv7511: fix error return code in adv7511_probe()
        [media] ths8200: fix compilation with GCC < 4.4.6
        [media] ad9389b: fix compilation with GCC < 4.4.6
        [media] adv7511: fix compilation with GCC < 4.4.6
        [media] adv7842: fix compilation with GCC < 4.4.6
        [media] s5p-jpeg: Initialize vfd_decoder->vfl_dir field
        [media] videobuf2-dc: Fix support for mappings without struct page in userptr mode
        [media] vb2: Allow queuing OUTPUT buffers with zeroed 'bytesused'
        [media] mx3-camera: locking cleanup in mx3_videobuf_queue()
        [media] sh_vou: almost forever loop in sh_vou_try_fmt_vid_out()
        [media] tda10071: change firmware download condition
        [media] msi3101: correct max videobuf2 alloc
        [media] Add HCL T12Rg-H to STK webcam upside-down table
        [media] msi3101: Kconfig select VIDEOBUF2_VMALLOC
        [media] msi3101: msi3101_ioctl_ops can be static
        [media] e4000: fix PLL calc bug on 32-bit arch
        [media] uvcvideo: quirk PROBE_DEF for Microsoft Lifecam NX-3000
        [media] uvcvideo: quirk PROBE_DEF for Dell SP2008WFP monitor
      f4e5e14f
    • Linus Torvalds's avatar
      Merge tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband · 0d645a8b
      Linus Torvalds authored
      Pull infiniband bugfix from Roland Dreier:
       "Disable not-quite-ready userspace ABI for IB flow steering"
      
      * tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband:
        IB/core: Temporarily disable create_flow/destroy_flow uverbs
      0d645a8b
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · db10accf
      Linus Torvalds authored
      Pull networking fixes from David Miller:
       "Sorry I let so much accumulate, I was in Buffalo and wanted a few
        things to cook in my tree for a while before sending to you.  Anyways,
        it's a lot of little things as usual at this stage in the game"
      
       1) Make bonding MAINTAINERS entry reflect reality, from Andy
          Gospodarek.
      
       2) Fix accidental sock_put() on timewait mini sockets, from Eric
          Dumazet.
      
       3) Fix crashes in l2tp due to mis-handling of ipv4 mapped ipv6
          addresses, from François CACHEREUL.
      
       4) Fix heap overflow in __audit_sockaddr(), from the eagle eyed Dan
          Carpenter.
      
       5) tcp_shifted_skb() doesn't take handle FINs properly, from Eric
          Dumazet.
      
       6) SFC driver bug fixes from Ben Hutchings.
      
       7) Fix TX packet scheduling wedge after channel change in ath9k driver,
          from Felix Fietkau.
      
       8) Fix user after free in BPF JIT code, from Alexei Starovoitov.
      
       9) Source address selection test is reversed in
          __ip_route_output_key(), fix from Jiri Benc.
      
      10) VLAN and CAN layer mis-size netlink attributes, from Marc
          Kleine-Budde.
      
      11) Fix permission checks in sysctls to use current_euid() instead of
          current_uid().  From Eric W Biederman.
      
      12) IPSEC policies can go away while a timer is still pending for them,
          add appropriate ref-counting to fix, from Steffen Klassert.
      
      13) Fix mis-programming of FDR and RMCR registers on R8A7740 sh_eth
          chips, from Nguyen Hong Ky and Simon Horman.
      
      14) MLX4 forgets to DMA unmap pages on RX, fix from Amir Vadai.
      
      15) IPV6 GRE tunnel MTU upper limit is miscalculated, from Oussama
          Ghorbel.
      
      16) Fix typo in fq_change(), we were assigning "initial quantum" to
          "quantum".  From Eric Dumazet.
      
      17) Set a more appropriate sk_pacing_rate for non-TCP sockets, otherwise
          FQ packet scheduler does not pace those flows properly.  Also from
          Eric Dumazet.
      
      18) rtlwifi miscalculates packet pointers, from Mark Cave-Ayland.
      
      19) l2tp_xmit_skb() can be called from process context, not just softirq
          context, so we must always make sure to BH disable around it.  From
          Eric Dumazet.
      
      20) On qdisc reset, we forget to purge the RB tree of SKBs in netem
          packet scheduler.  From Stephen Hemminger.
      
      21) Fix info leak in farsync WAN driver ioctl() handler, from Dan
          Carpenter and Salva Peiró.
      
      22) Fix PHY reset and other issues in dm9000 driver, from Nikita
          Kiryanov and Michael Abbott.
      
      23) When hardware can do SCTP crc32 checksums, we accidently don't
          disable the csum offload when IPSEC transformations have been
          applied.  From Fan Du and Vlad Yasevich.
      
      24) Tail loss probing in TCP leaves the socket in the wrong congestion
          avoidance state.  From Yuchung Cheng.
      
      25) In CPSW driver, enable NAPI before interrupts are turned on, from
          Markus Pargmann.
      
      26) Integer underflow and dual-assignment in YAM hamradio driver, from
          Dan Carpenter.
      
      27) If we are going to mangle a packet in tcp_set_skb_tso_segs() we must
          unclone it.  This fixes various hard to track down crashes in
          drivers where the SKBs ->gso_segs was changing right from underneath
          the driver during TX queueing.  From Eric Dumazet.
      
      28) Fix the handling of VLAN IDs, and in particular the special IDs 0
          and 4095, in the bridging layer.  From Toshiaki Makita.
      
      29) Another info leak, this time in wanxl WAN driver, from Salva Peiró.
      
      30) Fix race in socket credential passing, from Daniel Borkmann.
      
      31) WHen NETLABEL is disabled, we don't validate CIPSO packets properly,
          from Seif Mazareeb.
      
      32) Fix identification of fragmented frames in ipv4/ipv6 UDP
          Fragmentation Offload output paths, from Jiri Pirko.
      
      33) Virtual Function fixes in bnx2x driver from Yuval Mintz and Ariel
          Elior.
      
      34) When we removed the explicit neighbour pointer from ipv6 routes a
          slight regression was introduced for users such as IPVS, xt_TEE, and
          raw sockets.  We mix up the users requested destination address with
          the routes assigned nexthop/gateway.  From Julian Anastasov and
          Simon Horman.
      
      35) Fix stack overruns in rt6_probe(), the issue is that can end up
          doing two full packet xmit paths at the same time when emitting
          neighbour discovery messages.  From Hannes Frederic Sowa.
      
      36) davinci_emac driver doesn't handle IFF_ALLMULTI correctly, from
          Mariusz Ceier.
      
      37) Make sure to set TCP sk_pacing_rate after the first legitimate RTT
          sample, from Neal Cardwell.
      
      38) Wrong netlink attribute passed to xfrm_replay_verify_len(), from
          Steffen Klassert.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (152 commits)
        ax88179_178a: Add VID:DID for Samsung USB Ethernet Adapter
        ax88179_178a: Correct the RX error definition in RX header
        Revert "bridge: only expire the mdb entry when query is received"
        tcp: initialize passive-side sk_pacing_rate after 3WHS
        davinci_emac.c: Fix IFF_ALLMULTI setup
        mac802154: correct a typo in ieee802154_alloc_device() prototype
        ipv6: probe routes asynchronous in rt6_probe
        netfilter: nf_conntrack: fix rt6i_gateway checks for H.323 helper
        ipv6: fill rt6i_gateway with nexthop address
        ipv6: always prefer rt6i_gateway if present
        bnx2x: Set NETIF_F_HIGHDMA unconditionally
        bnx2x: Don't pretend during register dump
        bnx2x: Lock DMAE when used by statistic flow
        bnx2x: Prevent null pointer dereference on error flow
        bnx2x: Fix config when SR-IOV and iSCSI are enabled
        bnx2x: Fix Coalescing configuration
        bnx2x: Unlock VF-PF channel on MAC/VLAN config error
        bnx2x: Prevent an illegal pointer dereference during panic
        bnx2x: Fix Maximum CoS estimation for VFs
        drivers: net: cpsw: fix kernel warn during iperf test with interrupt pacing
        ...
      db10accf
  7. 22 Oct, 2013 12 commits
    • Freddy Xin's avatar
      ax88179_178a: Add VID:DID for Samsung USB Ethernet Adapter · f11a5bc1
      Freddy Xin authored
      Add VID:DID for Samsung USB Ethernet Adapter.
      Signed-off-by: default avatarFreddy Xin <freddy@asix.com.tw>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f11a5bc1
    • Freddy Xin's avatar
      ax88179_178a: Correct the RX error definition in RX header · 7e78b83c
      Freddy Xin authored
      Correct the definition of AX_RXHDR_CRC_ERR and
      AX_RXHDR_DROP_ERR. They are BIT29 and BIT31 in pkt_hdr
      seperately.
      Signed-off-by: default avatarFreddy Xin <freddy@asix.com.tw>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7e78b83c
    • Linus Lüssing's avatar
      Revert "bridge: only expire the mdb entry when query is received" · 454594f3
      Linus Lüssing authored
      While this commit was a good attempt to fix issues occuring when no
      multicast querier is present, this commit still has two more issues:
      
      1) There are cases where mdb entries do not expire even if there is a
      querier present. The bridge will unnecessarily continue flooding
      multicast packets on the according ports.
      
      2) Never removing an mdb entry could be exploited for a Denial of
      Service by an attacker on the local link, slowly, but steadily eating up
      all memory.
      
      Actually, this commit became obsolete with
      "bridge: disable snooping if there is no querier" (b00589af)
      which included fixes for a few more cases.
      
      Therefore reverting the following commits (the commit stated in the
      commit message plus three of its follow up fixes):
      
      ====================
      Revert "bridge: update mdb expiration timer upon reports."
      This reverts commit f144febd.
      Revert "bridge: do not call setup_timer() multiple times"
      This reverts commit 1faabf2a.
      Revert "bridge: fix some kernel warning in multicast timer"
      This reverts commit c7e8e8a8.
      Revert "bridge: only expire the mdb entry when query is received"
      This reverts commit 9f00b2e7.
      ====================
      
      CC: Cong Wang <amwang@redhat.com>
      Signed-off-by: default avatarLinus Lüssing <linus.luessing@web.de>
      Reviewed-by: default avatarVlad Yasevich <vyasevich@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      454594f3
    • Mattia Dongili's avatar
      sony-laptop: don't change keyboard backlight settings · 294d31e8
      Mattia Dongili authored
      Do not touch keyboard backlight unless explicitly passed a module
      parameter.  In this way we won't make wrong assumptions about what are
      good default values since they actually are different from model to
      model.
      
      The only side effect is that we won't know what is the current value
      until set via the sysfs attributes.
      Signed-off-by: default avatarMattia Dongili <malattia@linux.it>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      294d31e8
    • Randy Dunlap's avatar
      vfs: fix new kernel-doc warnings · 69c88dc7
      Randy Dunlap authored
      Move kernel-doc notation to immediately before its function to eliminate
      kernel-doc warnings introduced by commit db14fc3a ("vfs: add
      d_walk()")
      
        Warning(fs/dcache.c:1343): No description found for parameter 'data'
        Warning(fs/dcache.c:1343): No description found for parameter 'dentry'
        Warning(fs/dcache.c:1343): Excess function parameter 'parent' description in 'check_mount'
      Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Cc: Miklos Szeredi <mszeredi@suse.cz>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      69c88dc7
    • Randy Dunlap's avatar
      fs/namei.c: fix new kernel-doc warning · 606d6fe3
      Randy Dunlap authored
      Add @path parameter to fix kernel-doc warning.
      Also fix a spello/typo.
      
        Warning(fs/namei.c:2304): No description found for parameter 'path'
      Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      606d6fe3
    • Linus Torvalds's avatar
      Merge tag 'sound-3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 93cd0004
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "The pending last-minute ASoC fixes, all of which are driver-local
        (tlv320aic3x, rcar, pcm1681, pcm1792a, omap, fsl) and should be pretty
        safe to apply"
      
      * tag 'sound-3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: Add MAINTAINERS entry for dmaengine helpers
        ASoC: pcm1792a: Fix max_register setting
        ASoC: pcm1681: Fix max_register setting
        ASoC: pcm1681: Fix max_register setting
        ASoC: rcar: fixup generation checker
        ASoC: tlv320aic3x: Connect 'Left Line1R Mux' and 'Right Line1L Mux'
        ASoC: fsl: imx-ssi: fix probe on imx31
        ASoC: omap: Fix incorrect ARM dependency
        ASoC: fsl: Fix sound on mx31moboard
        ASoC: fsl_ssi: Fix irq_of_parse_and_map() return value check
      93cd0004
    • Will Deacon's avatar
      netfilter: x_tables: fix ordering of jumpstack allocation and table update · b416c144
      Will Deacon authored
      During kernel stability testing on an SMP ARMv7 system, Yalin Wang
      reported the following panic from the netfilter code:
      
        1fe0: 0000001c 5e2d3b10 4007e779 4009e110 60000010 00000032 ff565656 ff545454
        [<c06c48dc>] (ipt_do_table+0x448/0x584) from [<c0655ef0>] (nf_iterate+0x48/0x7c)
        [<c0655ef0>] (nf_iterate+0x48/0x7c) from [<c0655f7c>] (nf_hook_slow+0x58/0x104)
        [<c0655f7c>] (nf_hook_slow+0x58/0x104) from [<c0683bbc>] (ip_local_deliver+0x88/0xa8)
        [<c0683bbc>] (ip_local_deliver+0x88/0xa8) from [<c0683718>] (ip_rcv_finish+0x418/0x43c)
        [<c0683718>] (ip_rcv_finish+0x418/0x43c) from [<c062b1c4>] (__netif_receive_skb+0x4cc/0x598)
        [<c062b1c4>] (__netif_receive_skb+0x4cc/0x598) from [<c062b314>] (process_backlog+0x84/0x158)
        [<c062b314>] (process_backlog+0x84/0x158) from [<c062de84>] (net_rx_action+0x70/0x1dc)
        [<c062de84>] (net_rx_action+0x70/0x1dc) from [<c0088230>] (__do_softirq+0x11c/0x27c)
        [<c0088230>] (__do_softirq+0x11c/0x27c) from [<c008857c>] (do_softirq+0x44/0x50)
        [<c008857c>] (do_softirq+0x44/0x50) from [<c0088614>] (local_bh_enable_ip+0x8c/0xd0)
        [<c0088614>] (local_bh_enable_ip+0x8c/0xd0) from [<c06b0330>] (inet_stream_connect+0x164/0x298)
        [<c06b0330>] (inet_stream_connect+0x164/0x298) from [<c061d68c>] (sys_connect+0x88/0xc8)
        [<c061d68c>] (sys_connect+0x88/0xc8) from [<c000e340>] (ret_fast_syscall+0x0/0x30)
        Code: 2a000021 e59d2028 e59de01c e59f011c (e7824103)
        ---[ end trace da227214a82491bd ]---
        Kernel panic - not syncing: Fatal exception in interrupt
      
      This comes about because CPU1 is executing xt_replace_table in response
      to a setsockopt syscall, resulting in:
      
      	ret = xt_jumpstack_alloc(newinfo);
      		--> newinfo->jumpstack = kzalloc(size, GFP_KERNEL);
      
      	[...]
      
      	table->private = newinfo;
      	newinfo->initial_entries = private->initial_entries;
      
      Meanwhile, CPU0 is handling the network receive path and ends up in
      ipt_do_table, resulting in:
      
      	private = table->private;
      
      	[...]
      
      	jumpstack  = (struct ipt_entry **)private->jumpstack[cpu];
      
      On weakly ordered memory architectures, the writes to table->private
      and newinfo->jumpstack from CPU1 can be observed out of order by CPU0.
      Furthermore, on architectures which don't respect ordering of address
      dependencies (i.e. Alpha), the reads from CPU0 can also be re-ordered.
      
      This patch adds an smp_wmb() before the assignment to table->private
      (which is essentially publishing newinfo) to ensure that all writes to
      newinfo will be observed before plugging it into the table structure.
      A dependent-read barrier is also added on the consumer sides, to ensure
      the same ordering requirements are also respected there.
      
      Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
      Reported-by: default avatarWang, Yalin <Yalin.Wang@sonymobile.com>
      Tested-by: default avatarWang, Yalin <Yalin.Wang@sonymobile.com>
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      Acked-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
      b416c144
    • Linus Torvalds's avatar
      Merge tag 'jfs-3.12' of git://github.com/kleikamp/linux-shaggy · d24fec39
      Linus Torvalds authored
      Pull jfs bugfix from David Kleikamp:
       "Just a patch to fix an oops in an error path"
      
      * tag 'jfs-3.12' of git://github.com/kleikamp/linux-shaggy:
        jfs: fix error path in ialloc
      d24fec39
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · b403b73c
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Travelling slowed down getting these out.
      
        Two vmwgfx fixes, a radeon revert to avoid a regression, i915 fixes,
        and some ioctl sizing issues fixed with 32 on 64"
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
        drm/radeon/audio: don't set speaker allocation on DCE4+
        drm/radeon: rework audio option
        drm/radeon/audio: don't set speaker allocation on DCE3.2
        drm/radeon: make missing smc ucode non-fatal (CI)
        drm/radeon: make missing smc ucode non-fatal (r7xx-SI)
        drm/radeon/uvd: revert lower msg&fb buffer requirements on UVD3
        drm/radeon: stop the leaks in cik_ib_test
        drm/radeon/atom: workaround vbios bug in transmitter table on rs780
        drm/i915: Disable GGTT PTEs on GEN6+ suspend
        drm/i915: Make PTE valid encoding optional
        drm: Pad drm_mode_get_connector to 64-bit boundary
        drm: Prevent overwriting from userspace underallocating core ioctl structs
        drm/vmwgfx: Don't kill clients on VT switch
        drm/vmwgfx: Don't put resources with invalid id's on lru list
        drm/i915: disable LVDS clock gating on CPT v2
      b403b73c
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid · 1c241131
      Linus Torvalds authored
      Pull HID fixes from Jiri Kosina:
      
       - a partial revert of exponent parsing changes to make "Unit" exponent
         item work properly again, by Nikolai Kondrashov
      
       - a few new device IDs additions piggy-backing, by AceLan Kao and David
         Herrmann
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid:
        HID: wiimote: add LEGO-wiimote VID
        HID: Fix unit exponent parsing again
        HID: usbhid: quirk for SiS Touchscreen
        HID: usbhid: quirk for Synaptics Large Touchccreen
      1c241131
    • Linus Torvalds's avatar
      Merge branch 'for-3.12-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata · 19eddab9
      Linus Torvalds authored
      Pull libata fixes from Tejun Heo:
       "The only interesting bit is ata_eh_qc_retry() update which fixes a
        problem where a SG_IO command may fail across suspend/resume cycle
        without the command actually being at fault.
      
        Other changes are low level driver specific and fairly low impact"
      
      * 'for-3.12-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata:
        libahci: fix turning on LEDs in ahci_start_port()
        libata: make ata_eh_qc_retry() bump scmd->allowed on bogus failures
        ahci_platform: use dev_info() instead of printk()
        ahci: use dev_info() instead of printk()
        pata_isapnp: Don't use invalid I/O ports
      19eddab9