1. 27 Jul, 2012 23 commits
    • Jiri Kosina's avatar
      tcp: perform DMA to userspace only if there is a task waiting for it · 59ea33a6
      Jiri Kosina authored
      Back in 2006, commit 1a2449a8 ("[I/OAT]: TCP recv offload to I/OAT")
      added support for receive offloading to IOAT dma engine if available.
      
      The code in tcp_rcv_established() tries to perform early DMA copy if
      applicable. It however does so without checking whether the userspace
      task is actually expecting the data in the buffer.
      
      This is not a problem under normal circumstances, but there is a corner
      case where this doesn't work -- and that's when MSG_TRUNC flag to
      recvmsg() is used.
      
      If the IOAT dma engine is not used, the code properly checks whether
      there is a valid ucopy.task and the socket is owned by userspace, but
      misses the check in the dmaengine case.
      
      This problem can be observed in real trivially -- for example 'tbench' is a
      good reproducer, as it makes a heavy use of MSG_TRUNC. On systems utilizing
      IOAT, you will soon find tbench waiting indefinitely in sk_wait_data(), as they
      have been already early-copied in tcp_rcv_established() using dma engine.
      
      This patch introduces the same check we are performing in the simple
      iovec copy case to the IOAT case as well. It fixes the indefinite
      recvmsg(MSG_TRUNC) hangs.
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      59ea33a6
    • Jesse Gross's avatar
      Revert "openvswitch: potential NULL deref in sample()" · 60810307
      Jesse Gross authored
      This reverts commit 5b3e7e6c.
      
      The problem that the original commit was attempting to fix can
      never happen in practice because validation is done one a per-flow
      basis rather than a per-packet basis.  Adding additional checks at
      runtime is unnecessary and inconsistent with the rest of the code.
      
      CC: Dan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarJesse Gross <jesse@nicira.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      60810307
    • Eric Dumazet's avatar
      ipv4: fix TCP early demux · 505fbcf0
      Eric Dumazet authored
      commit 92101b3b (ipv4: Prepare for change of rt->rt_iif encoding.)
      invalidated TCP early demux, because rx_dst_ifindex is not properly
      initialized and checked.
      
      Also remove the use of inet_iif(skb) in favor or skb->skb_iif
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      505fbcf0
    • Jiri Benc's avatar
      net: fix rtnetlink IFF_PROMISC and IFF_ALLMULTI handling · b1beb681
      Jiri Benc authored
      When device flags are set using rtnetlink, IFF_PROMISC and IFF_ALLMULTI
      flags are handled specially. Function dev_change_flags sets IFF_PROMISC and
      IFF_ALLMULTI bits in dev->gflags according to the passed value but
      do_setlink passes a result of rtnl_dev_combine_flags which takes those bits
      from dev->flags.
      
      This can be easily trigerred by doing:
      
      tcpdump -i eth0 &
      ip l s up eth0
      
      ip sets IFF_UP flag in ifi_flags and ifi_change, which is combined with
      IFF_PROMISC by rtnl_dev_combine_flags, causing __dev_change_flags to set
      IFF_PROMISC in gflags.
      Reported-by: default avatarMax Matveev <makc@redhat.com>
      Signed-off-by: default avatarJiri Benc <jbenc@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b1beb681
    • Dan Carpenter's avatar
      USB: kaweth.c: use GFP_ATOMIC under spin_lock · e4c7f259
      Dan Carpenter authored
      The problem is that we call this with a spin lock held.  The call tree
      is:
      	kaweth_start_xmit() holds kaweth->device_lock.
      	-> kaweth_async_set_rx_mode()
      	   -> kaweth_control()
      	      -> kaweth_internal_control_msg()
      
      The kaweth_internal_control_msg() function is only called from
      kaweth_control() which used GFP_ATOMIC for its allocations.
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e4c7f259
    • Hangbin Liu's avatar
      tcp: Add TCP_USER_TIMEOUT negative value check · 42493570
      Hangbin Liu authored
      TCP_USER_TIMEOUT is a TCP level socket option that takes an unsigned int. But
      patch "tcp: Add TCP_USER_TIMEOUT socket option"(dca43c75) didn't check the negative
      values. If a user assign -1 to it, the socket will set successfully and wait
      for 4294967295 miliseconds. This patch add a negative value check to avoid
      this issue.
      Signed-off-by: default avatarHangbin Liu <liuhangbin@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      42493570
    • Linus Torvalds's avatar
      Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc · b387e41e
      Linus Torvalds authored
      Pull powerpc fixes from Benjamin Herrenschmidt:
       "Here's a handful of powerpc patches, a couple of regression fixes for
        problems introduced in the main batch in this merge window, a couple
        of defconfig updates, and some trivials.
      
        The radeonfb one is something that was long standing in SLES which I
        forgot to pickup earlier."
      
      * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
        powerpc/ftrace: Trace function graph entry before updating index
        radeonfb: Add quirk for the graphics adapter in some JSxx
        powerpc: Lack of firmware flash support is not an error
        powerpc: Enable pseries hardware RNG and crypto modules
        powerpc: Update g5_defconfig
        powerpc/kvm/bookehv: Fix build regression
        powerpc: Set stack limit properly in crit_transfer_to_handler
      b387e41e
    • Linus Torvalds's avatar
      Merge tag 'cpumask-for-linus' of... · 43a1141b
      Linus Torvalds authored
      Merge tag 'cpumask-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus
      
      Pull cpumask changes from Rusty Russell:
       "Trivial comment changes to cpumask code.  I guess it's getting boring."
      
      Boring is good.
      
      * tag 'cpumask-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus:
        cpumask: cpulist_parse() comments correction
        init: add comments to keep initcall-names in sync with initcall levels
        cpumask: add a few comments of cpumask functions
      43a1141b
    • Linus Torvalds's avatar
      Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 25918f98
      Linus Torvalds authored
      Pull ARM SoC fixes from Olof Johansson:
       "A mixed bag of fixes, some for merge window fallout (tegra, MXS), and
        a short series of fixes for marvell platforms that didn't make it in
        before 3.5."
      
      * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        ARM: mxs: fix compile error caused by prom_update_property change
        ARM: dt: tegra trimslice: enable USB2 port
        ARM: dt: tegra trimslice: add vbus-gpio property
        ARM: vt8500: Add maintainer for VT8500 architecture
        ARM: Kirkwood: Replace mrvl with marvell
        ARM: Orion: fix driver probe error handling with respect to clk
        ARM: Dove: Fixup ge00 initialisation
        ARM: Kirkwood: Fix PHY disable clk problems
        ARM: Kirkwood: Ensure runit clock always ticks.
        ARM: versatile: Don't use platform clock for Integrator & VE
        ARM: tegra: harmony: add regulator supply name and its input supply
      25918f98
    • Linus Torvalds's avatar
      Merge branch 'for-3.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds · aa0b3b2b
      Linus Torvalds authored
      Pull LED subsystem update from Bryan Wu.
      
      * 'for-3.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds: (50 commits)
        leds-lp8788: forgotten unlock at lp8788_led_work
        LEDS: propagate error codes in blinkm_detect()
        LEDS: memory leak in blinkm_led_common_set()
        leds: add new lp8788 led driver
        LEDS: add BlinkM RGB LED driver, documentation and update MAINTAINERS
        leds: max8997: Simplify max8997_led_set_mode implementation
        leds/leds-s3c24xx: use devm_gpio_request
        leds: convert Network Space v2 LED driver to devm_kzalloc() and cleanup error exit path
        leds: convert DAC124S085 LED driver to devm_kzalloc()
        leds: convert LM3530 LED driver to devm_kzalloc() and cleanup error exit path
        leds: convert TCA6507 LED driver to devm_kzalloc()
        leds: convert Freescale MC13783 LED driver to devm_kzalloc() and cleanup error exit path
        leds: convert ADP5520 LED driver to devm_kzalloc() and cleanup error exit path
        leds: convert PCA955x LED driver to devm_kzalloc() and cleanup error exit path
        leds: convert Sun Fire LED driver to devm_kzalloc() and cleanup error exit path
        leds: convert PCA9532 LED driver to devm_kzalloc()
        leds: convert LT3593 LED driver to devm_kzalloc()
        leds: convert Renesas TPU LED driver to devm_kzalloc() and cleanup error exit path
        leds: convert LP5523 LED driver to devm_kzalloc() and cleanup error exit path
        leds: convert PCA9633 LED driver to devm_kzalloc()
        ...
      aa0b3b2b
    • Steven Rostedt's avatar
      powerpc/ftrace: Trace function graph entry before updating index · bac821a6
      Steven Rostedt authored
      As Colin Cross ported my x86 change to ARM, he also pointed out that
      powerpc is also behind in this fix.
      
      The commit 722b3c74 "ftrace/graph: Trace function entry before
      updating index" fixes an issue with function graph tracing for x86,
      where if the called entry function decides not to trace interrupts, it
      can fail the check if an interrupt comes in just after the
      curr_ret_stack is updated.
      
      The solution is to call the entry function first, then update the
      curr_ret_stack if the entry function wants to be traced.
      
      Cc: Colin Cross <ccross@android.com>
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      bac821a6
    • Tony Breeds's avatar
      radeonfb: Add quirk for the graphics adapter in some JSxx · e5ae3cdf
      Tony Breeds authored
      These devices are set to 640x480 by firmware, switch them to 800x600@60
      so that the graphical installer can run on remote console.
      
      Reported by IBM during SLES10 SP2 beta testing:
      
      https://bugzilla.novell.com/show_bug.cgi?id=461002
      LTC50817
      Signed-off-by: default avatarOlaf Hering <olaf@aepfle.de>
      Signed-off-by: default avatarTony Breeds <tony@bakeyournoodle.com>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      e5ae3cdf
    • Anton Blanchard's avatar
      powerpc: Lack of firmware flash support is not an error · 0e384983
      Anton Blanchard authored
      Reduce the severity of the warning given when firmware flash is
      not supported. Not all platforms have it.
      Signed-off-by: default avatarAnton Blanchard <anton@samba.org>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      0e384983
    • Anton Blanchard's avatar
      powerpc: Enable pseries hardware RNG and crypto modules · fd297b3a
      Anton Blanchard authored
      Enable the hardware RNG and crypto modules. I verified they both
      autoload via the VIO subsystem, so there is no need to build them in.
      Signed-off-by: default avatarAnton Blanchard <anton@samba.org>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      fd297b3a
    • Benjamin Herrenschmidt's avatar
      powerpc: Update g5_defconfig · b1acf1bb
      Benjamin Herrenschmidt authored
      This updates the g5 defconfig to include nouveau instead of nvidiafb
      (which works much better nowadays, in fact the latter crashes on modern
      distros), and to set CONFIG_VT_HW_CONSOLE_BINDING without which takeover
      from the firmware offb by nouveau doesn't work properly (and leads to
      unexplained black screens for some users).
      
      The rest is churn of going through defconfig / savedefconfig
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      b1acf1bb
    • Alexander Graf's avatar
      powerpc/kvm/bookehv: Fix build regression · 38df8501
      Alexander Graf authored
      After merging the register type check patches from Ben's tree, the
      hv enabled booke implementation ceased to compile.
      
      This patch fixes things up so everyone's happy again.
      Signed-off-by: default avatarAlexander Graf <agraf@suse.de>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      38df8501
    • Stuart Yoder's avatar
      powerpc: Set stack limit properly in crit_transfer_to_handler · 1f8b0bc8
      Stuart Yoder authored
      Commit 9778b696 incorrectly
      changes the code setting the stack limit on entry to the
      kernel to mark the thread_info at the bottom of the stack
      out of bounds anymore. This fixes it.
      Signed-off-by: default avatarStuart Yoder <stuart.yoder@freescale.com>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      1f8b0bc8
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc · 6ee127b7
      Linus Torvalds authored
      Pull sparc updates from David Miller:
       "Nothing much this merge window for sparc.
      
        1) Fix FPU state management in sparc32, from Tkhai Kirill.
      
        2) More sparc32 mm layer code cleanups, largely more side effects of
           the sun4c support removal in the 3.5 From Sam Ravnborg.
      
        3) Remove unused code in sparc64, from Bjorn Helgaas and Kirill Tkhai.
      
        4) Some declaration and comment tidies in PROM support code, from
           Geert Uytterhoeven."
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc: (24 commits)
        sparc32, copy_thread: Clear TIF_USEDFPU flag of created task instead of current
        sparc32: delete dead code in show_mem()
        sparc32: move kmap_init() to highmem.c
        sparc32: move probe_memory() to srmmu.c
        sparc32: drop unused BAD_PAGE stuff
        sparc32: centralize all mmu context handling in srmmu.c
        sparc32: drop quicklist
        sparc32: drop sparc model check in paging_init
        sparc32: drop sparc_unmapped_base
        sparc32,leon: drop leon_init()
        sparc32: drop fixmap.h
        sparc32: fixmap.h cleanup
        sparc32: drop unused kmap_atomic_to_page
        sparc32: drop swapper_pg_dir
        sparc32: beautify srmmu_inherit_prom_mappings()
        sparc32: use void * in nocache get/free
        sparc32: fix coding-style in srmmu.c
        sparc32: sort includes in srmmu.c
        sparc32: define a few srmmu functions __init
        sparc64: remove unused function straddles_64bit_va_hole()
        ...
      6ee127b7
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 1e30c1b3
      Linus Torvalds authored
      Pull networking updates and fixes from David Miller:
      
      1) Reinstate the no-ref optimization for input route lookups in ipv4 to
         fix some routing cache removal perf regressions.
      
      2) Make TCP socket pre-demux work on ipv6 side too, from Eric Dumazet.
      
      3) Get RX hash value from correct place in be2net driver, from
         Sarveshwar Bandi.
      
      4) Validation of FIB cached routes missing critical check, from Eric
         Dumazet.
      
      5) EEH support in mlx4 driver, from Kleber Sacilotto de Souza.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (23 commits)
        ipv6: Early TCP socket demux
        ipv4: Fix input route performance regression.
        pch_gbe: vlan skb len fix
        pch_gbe: add extra clean tx
        pch_gbe: fix transmit watchdog timeout
        ixgbe: fix panic while dumping packets on Tx hang with IOMMU
        be2net: Fix to parse RSS hash from Receive completions correctly.
        net/mlx4_en: Limit the RFS filter IDs to be < RPS_NO_FILTER
        hyperv: Add error handling to rndis_filter_device_add()
        hyperv: Add a check for ring_size value
        ipv4: rt_cache_valid must check expired routes
        net/pch_gpe: Cannot disable ethernet autonegation
        qeth: repair crash in qeth_l3_vlan_rx_kill_vid()
        netiucv: cleanup attribute usage
        net: wiznet add missing HAS_IOMEM dependency
        be2net: Missing byteswap in be_get_fw_log_level causes oops on PowerPC
        mlx4: Add support for EEH error recovery
        cdc-ncm: tag Ericsson WWAN devices (eg F5521gw) with FLAG_WWAN
        wanmain: comparing array with NULL
        caif: fix NULL pointer check
        ...
      1e30c1b3
    • Stephen Rothwell's avatar
      Btrfs: using vmalloc and friends needs vmalloc.h · a1857ebe
      Stephen Rothwell authored
      On powerpc, we don't get the implicit vmalloc.h include, and as a result
      the build fails noisily:
      
        fs/btrfs/send.c: In function 'fs_path_free':
        fs/btrfs/send.c:185:4: error: implicit declaration of function 'vfree' [-Werror=implicit-function-declaration]
        fs/btrfs/send.c: In function 'fs_path_ensure_buf':
        fs/btrfs/send.c:215:4: error: implicit declaration of function 'vmalloc' [-Werror=implicit-function-declaration]
        fs/btrfs/send.c:215:12: warning: assignment makes pointer from integer without a cast [enabled by default]
        fs/btrfs/send.c:225:12: warning: assignment makes pointer from integer without a cast [enabled by default]
        fs/btrfs/send.c:233:13: warning: assignment makes pointer from integer without a cast [enabled by default]
        fs/btrfs/send.c: In function 'iterate_dir_item':
        fs/btrfs/send.c:900:10: warning: assignment makes pointer from integer without a cast [enabled by default]
        fs/btrfs/send.c:909:11: warning: assignment makes pointer from integer without a cast [enabled by default]
        fs/btrfs/send.c: In function 'btrfs_ioctl_send':
        fs/btrfs/send.c:4463:17: warning: assignment makes pointer from integer without a cast [enabled by default]
        fs/btrfs/send.c:4469:17: warning: assignment makes pointer from integer without a cast [enabled by default]
        fs/btrfs/send.c:4475:2: error: implicit declaration of function 'vzalloc' [-Werror=implicit-function-declaration]
        fs/btrfs/send.c:4475:20: warning: assignment makes pointer from integer without a cast [enabled by default]
        fs/btrfs/send.c:4483:21: warning: assignment makes pointer from integer without a cast [enabled by default]
      Signed-off-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a1857ebe
    • Devendra Naga's avatar
      leds-lp8788: forgotten unlock at lp8788_led_work · d45bb116
      Devendra Naga authored
      at default case of switch we return with out unlocking the mutex.
      Signed-off-by: default avatarDevendra Naga <develkernel412222@gmail.com>
      Signed-off-by: default avatarBryan Wu <bryan.wu@canonical.com>
      d45bb116
    • Dan Carpenter's avatar
      LEDS: propagate error codes in blinkm_detect() · 18d4a06f
      Dan Carpenter authored
      Use the error codes from the lower levels instead of -ENODEV.
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Acked-by: default avatarJan-Simon Möller <jansimon.moeller@gmx.de>
      Signed-off-by: default avatarBryan Wu <bryan.wu@canonical.com>
      18d4a06f
    • Dan Carpenter's avatar
      LEDS: memory leak in blinkm_led_common_set() · 4d8729a1
      Dan Carpenter authored
      This can return without freeing the bl_work struct.  Also there was no
      check for allocation failure.
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Acked-by: default avatarJan-Simon Möller <jansimon.moeller@gmx.de>
      Signed-off-by: default avatarBryan Wu <bryan.wu@canonical.com>
      4d8729a1
  2. 26 Jul, 2012 17 commits