1. 19 Mar, 2013 4 commits
  2. 15 Mar, 2013 3 commits
  3. 14 Mar, 2013 2 commits
    • Pavel Emelyanov's avatar
      skb: Propagate pfmemalloc on skb from head page only · cca7af38
      Pavel Emelyanov authored
      I'm trying to send big chunks of memory from application address space via
      TCP socket using vmsplice + splice like this
         mem = mmap(128Mb);
         vmsplice(pipe[1], mem); /* splice memory into pipe */
         splice(pipe[0], tcp_socket); /* send it into network */
      When I'm lucky and a huge page splices into the pipe and then into the socket
      _and_ client and server ends of the TCP connection are on the same host,
      communicating via lo, the whole connection gets stuck! The sending queue
      becomes full and app stops writing/splicing more into it, but the receiving
      queue remains empty, and that's why.
      The __skb_fill_page_desc observes a tail page of a huge page and erroneously
      propagates its page->pfmemalloc value onto socket (the pfmemalloc on tail pages
      contain garbage). Then this skb->pfmemalloc leaks through lo and due to the
              if (skb->pfmemalloc && !sock_flag(sk, SOCK_MEMALLOC)) /* true */
                  return -ENOMEM
              goto release_and_discard;
      no packets reach the socket. Even TCP re-transmits are dropped by this, as skb
      cloning clones the pfmemalloc flag as well.
      That said, here's the proper page->pfmemalloc propagation onto socket: we
      must check the huge-page's head page only, other pages' pfmemalloc and mapping
      values do not contain what is expected in this place. However, I'm not sure
      whether this fix is _complete_, since pfmemalloc propagation via lo also
      oesn't look great.
      Both, bit propagation from page to skb and this check in sk_filter, were
      introduced by c48a11c7
       (netvm: propagate page->pfmemalloc to skb), in v3.5 so
      Mel and stable@ are in Cc.
      Signed-off-by: default avatarPavel Emelyanov <xemul@parallels.com>
      Acked-by: default avatarEric Dumazet <edumazet@google.com>
      Acked-by: default avatarMel Gorman <mgorman@suse.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    • Eric Dumazet's avatar
      tcp: fix skb_availroom() · 16fad69c
      Eric Dumazet authored
      Chrome OS team reported a crash on a Pixel ChromeBook in TCP stack :
      commit a21d4572 (tcp: avoid order-1 allocations on wifi and tx
      path) did a poor choice adding an 'avail_size' field to skb, while
      what we really needed was a 'reserved_tailroom' one.
      It would have avoided commit 22b4a4f2
       (tcp: fix retransmit of
      partially acked frames) and this commit.
      Crash occurs because skb_split() is not aware of the 'avail_size'
      management (and should not be aware)
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Reported-by: default avatarMukesh Agrawal <quiche@chromium.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
  4. 13 Mar, 2013 8 commits
  5. 12 Mar, 2013 8 commits
  6. 11 Mar, 2013 15 commits
    • Marek Lindner's avatar
      batman-adv: verify tt len does not exceed packet len · b47506d9
      Marek Lindner authored
      batadv_iv_ogm_process() accesses the packet using the tt_num_changes
      attribute regardless of the real packet len (assuming the length check
      was done before). Therefore a length check is needed to avoid reading
      random memory.
      Signed-off-by: default avatarMarek Lindner <lindner_marek@yahoo.de>
      Signed-off-by: default avatarAntonio Quartulli <ordex@autistici.org>
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 7c6baa30
      Linus Torvalds authored
      Pull perf fixes from Ingo Molnar:
       "Misc minor fixes mostly related to tracing"
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        s390: Fix a header dependencies related build error
        tracing: update documentation of snapshot utility
        tracing: Do not return EINVAL in snapshot when not allocated
        tracing: Add help of snapshot feature when snapshot is empty
        ftrace: Update the kconfig for DYNAMIC_FTRACE
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 0cb77508
      Linus Torvalds authored
      Pull networking fixes from David Miller:
       1) Missing cancel of work items in mac80211 MLME, from Ben Greear.
       2) Fix DMA mapping handling in iwlwifi by using coherent DMA for
          command headers, from Johannes Berg.
       3) Decrease the amount of pressure on the page allocator by using order
          1 pages less in iwlwifi, from Emmanuel Grumbach.
       4) Fix mesh PS broadcast OOPS in mac80211, from Marco Porsch.
       5) Don't forget to recalculate idle state in mac80211 monitor
          interface, from Felix Fietkau.
       6) Fix varargs in netfilter conntrack handler, from Joe Perches.
       7) Need to reset entire chip when command queue fills up in iwlwifi,
          from Emmanuel Grumbach.
       8) The TX antenna value must be valid when calibrations are performed
          in iwlwifi, fix from Dor Shaish.
       9) Don't generate netfilter audit log entries when audit is disabled,
          from Gao Feng.
      10) Deal with DMA unit hang on e1000e during power state transitions,
          from Bruce Allan.
      11) Remove BUILD_BUG_ON check from igb driver, from Alexander Duyck.
      12) Fix lockdep warning on i2c handling of igb driver, from Carolyn
      13) Fix several TTY handling issues in IRDA ircomm tty driver, from
          Peter Hurley.
      14) Several QFQ packet scheduler fixes from Paolo Valente.
      15) When VXLAN encapsulates on transmit, we have to reset the netfilter
          state.  From Zang MingJie.
      16) Fix jiffie check in net_rx_action() so that we really cap the
          processing at 2HZ.  From Eric Dumazet.
      17) Fix erroneous trigger of IP option space exhaustion, when routers
          are pre-specified and we are looking to see if we can insert a
          timestamp, we will have the space.  From David Ward.
      18) Fix various issues in benet driver wrt waiting for firmware to
          finish POST after resets or errors.  From Gavin Shan and Sathya
      19) Fix TX locking in SFC driver, from Ben Hutchings.
      20) Like the VXLAN fix above, when we encap in a TUN device we have to
          reset the netfilter state.  This should fix several strange crashes
          reported by Dave Jones and others.  From Eric Dumazet.
      21) Don't forget to clean up MAC address resources when shutting down a
          port in mlx4 driver, from Yan Burman.
      22) Fix divide by zero in vmxnet3 driver, from Bhavesh Davda.
      23) Fix device statistic regression in tg3 when the driver is using
          phylib, from Nithin Sujir.
      24) Fix info leak in several netlink handlers, from Mathias Krause.
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (79 commits)
        6lowpan: Fix endianness issue in is_addr_link_local().
        rrunner.c: fix possible memory leak in rr_init_one()
        dcbnl: fix various netlink info leaks
        rtnl: fix info leak on RTM_GETLINK request for VF devices
        bridge: fix mdb info leaks
        tg3: Update link_up flag for phylib devices
        ipv6: stop multicast forwarding to process interface scoped addresses
        bridging: fix rx_handlers return code
        netlabel: fix build problems when CONFIG_IPV6=n
        drivers/isdn: checkng length to be sure not memory overflow
        net/rds: zero last byte for strncpy
        bnx2x: Fix SFP+ misconfiguration in iSCSI boot scenario
        bnx2x: Fix intermittent long KR2 link up time
        macvlan: Set IFF_UNICAST_FLT flag to prevent unnecessary promisc mode.
        team: unsyc the devices addresses when port is removed
        bridge: add missing vid to br_mdb_get()
        Fix: sparse warning in inet_csk_prepare_forced_close
        afkey: fix a typo
        MAINTAINERS: Update qlcnic maintainers list
        netlabel: correctly list all the static label mappings
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml · ffb6a445
      Linus Torvalds authored
      Pull UML fixes from Richard Weinberger:
       "This update brings various fixes.
        Nothing special...
        In my local queue I have some more fixes which will be sent later to
        you.  3.9 uncovered strange UML issues.  :("
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml:
        um: Use tty_port in SIGWINCH handler
        um: Use tty_port_operations->destruct
        um: fix build failure due to mess-up of sig_info protorype
        um: add missing declaration of 'getrlimit()' and friends
        net : enable tx time stamping in the vde driver.
        hostfs: fix a not needed double check
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 152fcb27
      Linus Torvalds authored
      Pull input updates from Dmitry Torokhov:
       "Except for the largish change to the ALPS driver adding "Dolphin V1"
        support and Wacom getting a new signature of yet another device, the
        rest are straightforward driver fixes."
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
        Input: mms114 - Fix regulator enable and disable paths
        Input: ads7864 - check return value of regulator enable
        Input: tc3589x-keypad - fix keymap size
        Input: wacom - add support for 0x10d
        Input: ALPS - update documentation for recent touchpad driver mods
        Input: ALPS - add "Dolphin V1" touchpad support
        Input: ALPS - remove unused argument to alps_enter_command_mode()
        Input: cypress_ps2 - fix trackpadi found in Dell XPS12
    • Li Zefan's avatar
      s390: Fix a header dependencies related build error · cb16b91a
      Li Zefan authored
      Commit 877c6856
      ("perf: Remove include of cgroup.h from perf_event.h") caused
      this build failure if PERF_EVENTS is enabled:
         In file included from arch/s390/include/asm/perf_event.h:9:0,
                          from include/linux/perf_event.h:24,
                          from kernel/events/ring_buffer.c:12:
         arch/s390/include/asm/cpu_mf.h: In function 'qctri':
         arch/s390/include/asm/cpu_mf.h:61:12: error: 'EINVAL' undeclared (first use in this function)
      cpu_mf.h had an implicit errno.h dependency, which was added
      indirectly via cgroups.h but not anymore. Add it explicitly.
      Reported-by: default avatarFengguang Wu <fengguang.wu@intel.com>
      Tested-by: default avatarFengguang Wu <fengguang.wu@intel.com>
      Signed-off-by: default avatarLi Zefan <lizefan@huawei.com>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Link: http://lkml.kernel.org/r/51385F79.7000106@huawei.com
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
    • Richard Weinberger's avatar
      um: Use tty_port in SIGWINCH handler · 2116bda6
      Richard Weinberger authored
      The tty below tty_port might get destroyed by the tty layer
      while we hold a reference to it.
      So we have to carry tty_port around...
      Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
    • Richard Weinberger's avatar
      um: Use tty_port_operations->destruct · cc4f0248
      Richard Weinberger authored
      As we setup the SIGWINCH handler in tty_port_operations->activate
      it makes sense to tear down it in ->destruct.
      Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
    • Sergei Trofimovich's avatar
      um: fix build failure due to mess-up of sig_info protorype · 72383d43
      Sergei Trofimovich authored
      arch/um/os-Linux/signal.c:18:8: error: conflicting types for 'sig_info'
      In file included from /home/slyfox/linux-2.6/arch/um/os-Linux/signal.c:12:0:
      arch/um/include/shared/as-layout.h:64:15: note: previous declaration of 'sig_info' was here
      Signed-off-by: default avatarSergei Trofimovich <slyfox@gentoo.org>
      CC: Jeff Dike <jdike@addtoit.com>
      CC: Richard Weinberger <richard@nod.at>
      CC: "Martin Pärtel" <martin.partel@gmail.com>
      CC: Al Viro <viro@zeniv.linux.org.uk>
      CC: user-mode-linux-devel@lists.sourceforge.net
      CC: user-mode-linux-user@lists.sourceforge.net
      CC: linux-kernel@vger.kernel.org
      Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
    • Sergei Trofimovich's avatar
      um: add missing declaration of 'getrlimit()' and friends · fdfa4c95
      Sergei Trofimovich authored
      arch/um/os-Linux/start_up.c: In function 'check_coredump_limit':
      arch/um/os-Linux/start_up.c:338:16: error: storage size of 'lim' isn't known
      arch/um/os-Linux/start_up.c:339:2: error: implicit declaration of function 'getrlimit' [-Werror=implicit-function-declaration]
      Signed-off-by: default avatarSergei Trofimovich <slyfox@gentoo.org>
      CC: Jeff Dike <jdike@addtoit.com>
      CC: Richard Weinberger <richard@nod.at>
      CC: Al Viro <viro@zeniv.linux.org.uk>
      CC: user-mode-linux-devel@lists.sourceforge.net
      CC: user-mode-linux-user@lists.sourceforge.net
      CC: linux-kernel@vger.kernel.org
      Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
    • Paul Chavent's avatar
      net : enable tx time stamping in the vde driver. · 55ea1cfa
      Paul Chavent authored
      This new version moves the skb_tx_timestamp in the main uml
      driver. This should avoid the need to call this function in each
      transport (vde, slirp, tuntap, ...). It also add support for ethtool
      Signed-off-by: default avatarPaul Chavent <paul.chavent@onera.fr>
      Acked-by: default avatarRichard Cochran <richardcochran@gmail.com>
      Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
    • Marco Stornelli's avatar
      hostfs: fix a not needed double check · bc077320
      Marco Stornelli authored
      With the commit 3be2be0a
       we removed vmtruncate,
      but actaully there is no need to call inode_newsize_ok() because the checks are
      already done in inode_change_ok() at the begin of the function.
      Signed-off-by: default avatarMarco Stornelli <marco.stornelli@gmail.com>
      Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
    • Mark Brown's avatar
      Input: mms114 - Fix regulator enable and disable paths · 4b7d293c
      Mark Brown authored
      When it uses regulators the mms114 driver checks to see if it managed to
      acquire regulators and ignores errors. This is not the intended usage and
      not great style in general.
      Since the driver already refuses to probe if it fails to allocate the
      regulators simply make the enable and disable calls unconditional and
      add appropriate error handling, including adding cleanup of the
      regulators if setup_reg() fails.
      Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
      Acked-by: default avatarJoonyoung Shim <jy0922.shim@samsung.com>
      Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
    • Mark Brown's avatar
      Input: ads7864 - check return value of regulator enable · f94352f8
      Mark Brown authored
      At least print a warning if we can't power the device up.
      Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
      Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
    • Rabin Vincent's avatar
      Input: tc3589x-keypad - fix keymap size · 39735019
      Rabin Vincent authored
      The keymap size used by tc3589x is too low, leading to the driver
      overwriting other people's memory.  Fix this by making the driver
      use the automatically allocated keymap provided by
      matrix_keypad_build_keymap() instead of allocating one on its own.
      Signed-off-by: default avatarRabin Vincent <rabin.vincent@stericsson.com>
      Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>