1. 06 Sep, 2013 9 commits
    • Eric Dumazet's avatar
      tcp: properly increase rcv_ssthresh for ofo packets · 4e4f1fc2
      Eric Dumazet authored
      TCP receive window handling is multi staged.
      
      A socket has a memory budget, static or dynamic, in sk_rcvbuf.
      
      Because we do not really know how this memory budget translates to
      a TCP window (payload), TCP announces a small initial window
      (about 20 MSS).
      
      When a packet is received, we increase TCP rcv_win depending
      on the payload/truesize ratio of this packet. Good citizen
      packets give a hint that it's reasonable to have rcv_win = sk_rcvbuf/2
      
      This heuristic takes place in tcp_grow_window()
      
      Problem is : We currently call tcp_grow_window() only for in-order
      packets.
      
      This means that reorders or packet losses stop proper grow of
      rcv_win, and senders are unable to benefit from fast recovery,
      or proper reordering level detection.
      
      Really, a packet being stored in OFO queue is not a bad citizen.
      It should be part of the game as in-order packets.
      
      In our traces, we very often see sender is limited by linux small
      receive windows, even if linux hosts use autotuning (DRS) and should
      allow rcv_win to grow to ~3MB.
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Acked-by: default avatarNeal Cardwell <ncardwell@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4e4f1fc2
    • Florian Fainelli's avatar
      net: add documentation for BQL helpers · 0042d0c8
      Florian Fainelli authored
      Provide a kernel-doc comment documentation for the BQL helpers:
      - netdev_sent_queue
      - netdev_completed_queue
      - netdev_reset_queue
      
      Similarly to how it is done for the other functions, the documentation
      only covers the function operating on struct net_device and not struct
      netdev_queue.
      Signed-off-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Acked-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0042d0c8
    • Michael Opdenacker's avatar
      mlx5: remove unused MLX5_DEBUG param in Kconfig · 635ad310
      Michael Opdenacker authored
      This patch proposes to remove the MLX5_DEBUG kernel configuration
      parameter defined in drivers/net/ethernet/mellanox/mlx5/core/Kconfig,
      but used nowhere in the makefiles and source code.
      
      This could also be fixed by using this parameter,
      but this may be a leftover from driver development...
      Signed-off-by: default avatarMichael Opdenacker <michael.opdenacker@free-electrons.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      635ad310
    • Eilon Greenstein's avatar
      bnx2x: Restore a call to config_init · 937e5c3d
      Eilon Greenstein authored
      Commit c0a77ec7 'bnx2x: Add missing braces in
      bnx2x:bnx2x_link_initialize' identified indentation problem, but resolved it
      by adding braces instead of fixing the indentation. The braces now prevents a
      config_init call in some cases, though it should be called regardless of that
      condition. This patch removes the braces and fix the confusing indentation
      that caused this mess.
      Signed-off-by: default avatarEilon Greenstein <eilong@broadcom.com>
      CC: Dave Jones <davej@redhat.com>
      Tested-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      937e5c3d
    • Dmitry Kravkov's avatar
      bnx2x: fix broken compilation with CONFIG_BNX2X_SRIOV is not set · 9b0be651
      Dmitry Kravkov authored
      Since commit 60cad4e6
      "bnx2x: VF RSS support - VF side" fails to compile w/o
      CONFIG_BNX2X_SRIOV option.
      Reported-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
      CC: Ariel Elior <ariele@broadcom.com>
      Signed-off-by: default avatarDmitry Kravkov <dmitry@broadcom.com>
      Acked-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9b0be651
    • Yuchung Cheng's avatar
      tcp: fix no cwnd growth after timeout · 16edfe7e
      Yuchung Cheng authored
      In commit 0f7cc9a3 "tcp: increase throughput when reordering is high",
      it only allows cwnd to increase in Open state. This mistakenly disables
      slow start after timeout (CA_Loss). Moreover cwnd won't grow if the
      state moves from Disorder to Open later in tcp_fastretrans_alert().
      
      Therefore the correct logic should be to allow cwnd to grow as long
      as the data is received in order in Open, Loss, or even Disorder state.
      Signed-off-by: default avatarYuchung Cheng <ycheng@google.com>
      Acked-by: default avatarNeal Cardwell <ncardwell@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      16edfe7e
    • Daniel Borkmann's avatar
      net: netlink: filter particular protocols from analyzers · 5ffd5cdd
      Daniel Borkmann authored
      Fix finer-grained control and let only a whitelist of allowed netlink
      protocols pass, in our case related to networking. If later on, other
      subsystems decide they want to add their protocol as well to the list
      of allowed protocols they shall simply add it. While at it, we also
      need to tell what protocol is in use otherwise BPF_S_ANC_PROTOCOL can
      not pick it up (as it's not filled out).
      Signed-off-by: default avatarDaniel Borkmann <dborkman@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5ffd5cdd
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm · 2e032852
      Linus Torvalds authored
      Pull ARM updates from Russell King:
       "This set includes adding support for Neon acceleration of RAID6 XOR
        code from Ard Biesheuvel, cache flushing and barrier updates from Will
        Deacon, and a cleanup to the ARM debug code which reduces the amount
        of code by about 500 lines.
      
        A few other cleanups, such as constifying the machine descriptors
        which already shouldn't be written to, cleaning up the printing of the
        L2 cache size"
      
      * 'for-linus' of git://git.linaro.org/people/rmk/linux-arm: (55 commits)
        ARM: 7826/1: debug: support debug ll on hisilicon soc
        ARM: 7830/1: delay: don't bother reporting bogomips in /proc/cpuinfo
        ARM: 7829/1: Add ".text.unlikely" and ".text.hot" to arm unwind tables
        ARM: 7828/1: ARMv7-M: implement restart routine common to all v7-M machines
        ARM: 7827/1: highbank: fix debug uart virtual address for LPAE
        ARM: 7823/1: errata: workaround Cortex-A15 erratum 773022
        ARM: 7806/1: allow DEBUG_UNCOMPRESS for Tegra
        ARM: 7793/1: debug: use generic option for ep93xx PL10x debug port
        ARM: debug: move SPEAr debug to generic PL01x code
        ARM: debug: move davinci debug to generic 8250 code
        ARM: debug: move keystone debug to generic 8250 code
        ARM: debug: remove DEBUG_ROCKCHIP_UART
        ARM: debug: provide generic option choices for 8250 and PL01x ports
        ARM: debug: move PL01X debug include into arch/arm/include/debug/
        ARM: debug: provide PL01x debug uart phys/virt address configuration options
        ARM: debug: add support for word accesses to debug/8250.S
        ARM: debug: move 8250 debug include into arch/arm/include/debug/
        ARM: debug: provide 8250 debug uart phys/virt address configuration options
        ARM: debug: provide 8250 debug uart register shift configuration option
        ARM: debug: provide 8250 debug uart flow control configuration option
        ...
      2e032852
    • Olof Johansson's avatar
      net: stmmac: fix bad merge conflict resolution · 356f9e74
      Olof Johansson authored
      Merge commit 06c54055 did a bad conflict resolution accidentally
      leaving out a closing brace.  Add it back.
      
      This breaks a handful of defconfigs on ARM, so it'd be good to see it
      applied pretty quickly.
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      Cc: David S. Miller <davem@davemloft.net>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      356f9e74
  2. 05 Sep, 2013 31 commits
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide · fc8cc677
      Linus Torvalds authored
      Pull IDE changes from David Miller:
       "Mostly cleanups, and changes part of tree-wide adjustments, this code
        is in deep freeze so that's pretty much what we expect these days"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide:
        ide: sgiioc4: Staticize ioc4_ide_attach_one()
        ide: palm_bk3710: add missing __iomem annotation
        ide: use dev_get_platdata()
        ide-disk_proc: use macro to replace magic number
        ide: replace strict_strtol() with kstrtol()
      fc8cc677
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc · b14662ca
      Linus Torvalds authored
      Pull sparc changes from David Miller:
       "Several bug fixes (from Kirill Tkhai, Geery Uytterhoeven, and Alexey
        Dobriyan) and some support for Fujitsu sparc64x chips (from Allen
        Pais)"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
        sparc64: Export flush_ptrace_access() (needed by lustre)
        sparc: fix PCI device proc file mmap(2)
        sparc64: Remove RWSEM export leftovers
        sparc64: Fix off by one in trampoline TLB mapping installation loop.
        sparc64: Fix ITLB handler of null page
        esp_scsi: Fix tag state corruption when autosensing.
        sparc64: Fix not SRA'ed %o5 in 32-bit traced syscall
        sparc64: cleanup: Rename ret_from_syscall to ret_from_fork
        sparc32: Fix exit flag passed from traced sys_sigreturn
        sparc64: Fix wrong syscall return value passed to trace_sys_exit()
        support sparc64x chip type in cpumap.c
        cpu hw caps support for sparc64x
      b14662ca
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next · cc998ff8
      Linus Torvalds authored
      Pull networking changes from David Miller:
       "Noteworthy changes this time around:
      
         1) Multicast rejoin support for team driver, from Jiri Pirko.
      
         2) Centralize and simplify TCP RTT measurement handling in order to
            reduce the impact of bad RTO seeding from SYN/ACKs.  Also, when
            both timestamps and local RTT measurements are available prefer
            the later because there are broken middleware devices which
            scramble the timestamp.
      
            From Yuchung Cheng.
      
         3) Add TCP_NOTSENT_LOWAT socket option to limit the amount of kernel
            memory consumed to queue up unsend user data.  From Eric Dumazet.
      
         4) Add a "physical port ID" abstraction for network devices, from
            Jiri Pirko.
      
         5) Add a "suppress" operation to influence fib_rules lookups, from
            Stefan Tomanek.
      
         6) Add a networking development FAQ, from Paul Gortmaker.
      
         7) Extend the information provided by tcp_probe and add ipv6 support,
            from Daniel Borkmann.
      
         8) Use RCU locking more extensively in openvswitch data paths, from
            Pravin B Shelar.
      
         9) Add SCTP support to openvswitch, from Joe Stringer.
      
        10) Add EF10 chip support to SFC driver, from Ben Hutchings.
      
        11) Add new SYNPROXY netfilter target, from Patrick McHardy.
      
        12) Compute a rate approximation for sending in TCP sockets, and use
            this to more intelligently coalesce TSO frames.  Furthermore, add
            a new packet scheduler which takes advantage of this estimate when
            available.  From Eric Dumazet.
      
        13) Allow AF_PACKET fanouts with random selection, from Daniel
            Borkmann.
      
        14) Add ipv6 support to vxlan driver, from Cong Wang"
      
      Resolved conflicts as per discussion.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1218 commits)
        openvswitch: Fix alignment of struct sw_flow_key.
        netfilter: Fix build errors with xt_socket.c
        tcp: Add missing braces to do_tcp_setsockopt
        caif: Add missing braces to multiline if in cfctrl_linkup_request
        bnx2x: Add missing braces in bnx2x:bnx2x_link_initialize
        vxlan: Fix kernel panic on device delete.
        net: mvneta: implement ->ndo_do_ioctl() to support PHY ioctls
        net: mvneta: properly disable HW PHY polling and ensure adjust_link() works
        icplus: Use netif_running to determine device state
        ethernet/arc/arc_emac: Fix huge delays in large file copies
        tuntap: orphan frags before trying to set tx timestamp
        tuntap: purge socket error queue on detach
        qlcnic: use standard NAPI weights
        ipv6:introduce function to find route for redirect
        bnx2x: VF RSS support - VF side
        bnx2x: VF RSS support - PF side
        vxlan: Notify drivers for listening UDP port changes
        net: usbnet: update addr_assign_type if appropriate
        driver/net: enic: update enic maintainers and driver
        driver/net: enic: Exposing symbols for Cisco's low latency driver
        ...
      cc998ff8
    • Jesse Gross's avatar
      openvswitch: Fix alignment of struct sw_flow_key. · 0d40f75b
      Jesse Gross authored
      sw_flow_key alignment was declared as " __aligned(__alignof__(long))".
      However, this breaks on the m68k architecture where long is 32 bit in
      size but 16 bit aligned by default. This aligns to the size of a long to
      ensure that we can always do comparsions in full long-sized chunks. It
      also adds an additional build check to catch any reduction in alignment.
      
      CC: Andy Zhou <azhou@nicira.com>
      Reported-by: default avatarFengguang Wu <fengguang.wu@intel.com>
      Reported-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
      Signed-off-by: default avatarJesse Gross <jesse@nicira.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0d40f75b
    • Linus Torvalds's avatar
      Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 57d73092
      Linus Torvalds authored
      Pull cputime fix from Ingo Molnar:
       "This fixes a longer-standing cputime accounting bug that Stanislaw
        Gruszka finally managed to track down"
      
      * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched/cputime: Do not scale when utime == 0
      57d73092
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 050ba07c
      Linus Torvalds authored
      Pull x86 fixes from Ingo Molnar:
       "Fix for the annoying paravirt.o build warning under allmodconfig, and
        a MAINTAINERS file update"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86, doc: Add an entry in MAINTAINERS for arch/x86/kernel/cpu/vmware.c
        x86, paravirt: Remove duplicate definition for DEF_NATIVE
      050ba07c
    • Jingoo Han's avatar
      ide: sgiioc4: Staticize ioc4_ide_attach_one() · 64110c16
      Jingoo Han authored
      ioc4_ide_attach_one() is used only in this file.
      Fix the following sparse warnings:
      
      drivers/ide/sgiioc4.c:603:5: warning: symbol 'ioc4_ide_attach_one' was not declared. Should it be static?
      Signed-off-by: default avatarJingoo Han <jg1.han@samsung.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      64110c16
    • Jingoo Han's avatar
      ide: palm_bk3710: add missing __iomem annotation · 70ddce83
      Jingoo Han authored
      Added missing __iomem annotation in order to fix the following
      sparse warnings:
      
      drivers/ide/palm_bk3710.c:194:31: warning: incorrect type in initializer (different address spaces)
      drivers/ide/palm_bk3710.c:194:31:    expected void [noderef] <asn:2>*base
      drivers/ide/palm_bk3710.c:194:31:    got void *<noident>
      drivers/ide/palm_bk3710.c:212:31: warning: incorrect type in initializer (different address spaces)
      drivers/ide/palm_bk3710.c:212:31:    expected void [noderef] <asn:2>*base
      drivers/ide/palm_bk3710.c:212:31:    got void *<noident>
      Signed-off-by: default avatarJingoo Han <jg1.han@samsung.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      70ddce83
    • Jingoo Han's avatar
      ide: use dev_get_platdata() · 7b6b5612
      Jingoo Han authored
      Use the wrapper function for retrieving the platform data instead of
      accessing dev->platform_data directly.
      Signed-off-by: default avatarJingoo Han <jg1.han@samsung.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7b6b5612
    • Xinghai Yu's avatar
      6fcf0497
    • Jingoo Han's avatar
      ide: replace strict_strtol() with kstrtol() · 79c8fa0b
      Jingoo Han authored
      The usage of strict_strtol() is not preferred, because
      strict_strtol() is obsolete. Thus, kstrtol() should be
      used.
      Signed-off-by: default avatarJingoo Han <jg1.han@samsung.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      79c8fa0b
    • Geert Uytterhoeven's avatar
      sparc64: Export flush_ptrace_access() (needed by lustre) · dc76f9ca
      Geert Uytterhoeven authored
      ERROR: "flush_ptrace_access" [drivers/staging/lustre/lustre/libcfs/libcfs.ko]
      undefined!
      Signed-off-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      dc76f9ca
    • Alexey Dobriyan's avatar
      sparc: fix PCI device proc file mmap(2) · c4fe2448
      Alexey Dobriyan authored
      Commit 786d7e16 "Fix rmmod/read/write races in /proc entries"
      must have broken mmapping of PCI device proc files on Sparc.
      
      Notice how it adds wrapper around ->mmap but doesn't do it around ->get_unmapped_area.
      Add wrapper around ->get_unmapped_area.
      Signed-off-by: default avatarAlexey Dobriyan <adobriyan@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c4fe2448
    • Kirill Tkhai's avatar
      sparc64: Remove RWSEM export leftovers · 61d9b935
      Kirill Tkhai authored
      The functions
      
      			__down_read
      			__down_read_trylock
      			__down_write
      			__down_write_trylock
      			__up_read
      			__up_write
      			__downgrade_write
      
      are implemented inline, so remove corresponding EXPORT_SYMBOLs
      (They lead to compile errors on RT kernel).
      Signed-off-by: default avatarKirill Tkhai <tkhai@yandex.ru>
      CC: David Miller <davem@davemloft.net>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      61d9b935
    • David S. Miller's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 06c54055
      David S. Miller authored
      Conflicts:
      	drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
      	net/bridge/br_multicast.c
      	net/ipv6/sit.c
      
      The conflicts were minor:
      
      1) sit.c changes overlap with change to ip_tunnel_xmit() signature.
      
      2) br_multicast.c had an overlap between computing max_delay using
         msecs_to_jiffies and turning MLDV2_MRC() into an inline function
         with a name using lowercase instead of uppercase letters.
      
      3) stmmac had two overlapping changes, one which conditionally allocated
         and hooked up a dma_cfg based upon the presence of the pbl OF property,
         and another one handling store-and-forward DMA made.  The latter of
         which should not go into the new of_find_property() basic block.
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      06c54055
    • Linus Torvalds's avatar
      Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media · 27c053aa
      Linus Torvalds authored
      Pull media updates from Mauro Carvalho Chehab:
       "This series contains:
         - Exynos s5p-mfc driver got support for VP8 encoder
         - Some SoC drivers gained support for asynchronous registration
           (needed for DT)
         - The RC subsystem gained support for RC activity LED;
         - New drivers added: a video decoder(adv7842), a video encoder
           (adv7511), a new GSPCA driver (stk1135) and support for Renesas
           R-Car (vsp1)
         - the first SDR kernel driver: mirics msi3101.  Due to some troubles
           with the driver, and because the API is still under discussion, it
           will be merged at staging for 3.12.  Need to rework on it
         - usual new boards additions, fixes, cleanups and driver
           improvements"
      
      * 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (242 commits)
        [media] cx88: Fix regression: CX88_AUDIO_WM8775 can't be 0
        [media] exynos4-is: Fix entity unregistration on error path
        [media] exynos-gsc: Register v4l2 device
        [media] exynos4-is: Fix fimc-lite bayer formats
        [media] em28xx: fix assignment of the eeprom data
        [media] hdpvr: fix iteration over uninitialized lists in hdpvr_probe()
        [media] usbtv: Throw corrupted frames away
        [media] usbtv: Fix deinterlacing
        [media] v4l2: added missing mutex.h include to v4l2-ctrls.h
        [media] DocBook: upgrade media_api DocBook version to 4.2
        [media] ml86v7667: fix compile warning: 'ret' set but not used
        [media] s5p-g2d: Fix registration failure
        [media] media: coda: Fix DT driver data pointer for i.MX27
        [media] s5p-mfc: Fix input/output format reporting
        [media] v4l: vsp1: Fix mutex double lock at streamon time
        [media] v4l: vsp1: Add support for RT clock
        [media] v4l: vsp1: Initialize media device bus_info field
        [media] davinci: vpif_capture: fix error return code in vpif_probe()
        [media] davinci: vpif_display: fix error return code in vpif_probe()
        [media] MAINTAINERS: add entries for adv7511 and adv7842
        ...
      27c053aa
    • David S. Miller's avatar
      netfilter: Fix build errors with xt_socket.c · 1a5bbfc3
      David S. Miller authored
      As reported by Randy Dunlap:
      
      ====================
      when CONFIG_IPV6=m
      and CONFIG_NETFILTER_XT_MATCH_SOCKET=y:
      
      net/built-in.o: In function `socket_mt6_v1_v2':
      xt_socket.c:(.text+0x51b55): undefined reference to `udp6_lib_lookup'
      net/built-in.o: In function `socket_mt_init':
      xt_socket.c:(.init.text+0x1ef8): undefined reference to `nf_defrag_ipv6_enable'
      ====================
      
      Like several other modules under net/netfilter/ we have to
      have a dependency "IPV6 disabled or set compatibly with this
      module" clause.
      Reported-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1a5bbfc3
    • Dave Jones's avatar
    • Dave Jones's avatar
      caif: Add missing braces to multiline if in cfctrl_linkup_request · 0c1db731
      Dave Jones authored
      The indentation here implies this was meant to be a multi-line if.
      
      Introduced several years back in commit c85c2951
      ("caif: Handle dev_queue_xmit errors.")
      Signed-off-by: default avatarDave Jones <davej@fedoraproject.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0c1db731
    • Dave Jones's avatar
      bnx2x: Add missing braces in bnx2x:bnx2x_link_initialize · c0a77ec7
      Dave Jones authored
      The indentation here implies that the intent was for this to be a multiline if.
      Introduced a few years ago in commit ec146a6f ("bnx2x: Modify XGXS functions")
      Signed-off-by: default avatarDave Jones <davej@fedoraproject.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c0a77ec7
    • Pravin B Shelar's avatar
      vxlan: Fix kernel panic on device delete. · f011baf9
      Pravin B Shelar authored
      On vxlan device create if socket create fails vxlan device is not
      added to hash table. Therefore we need to check if device
      is in hashtable before we delete it from hlist.
      Following patch avoid the crash. net-next already has this fix.
      
      ---8<---
      BUG: unable to handle kernel NULL pointer dereference at           (null)
      IP: [<ffffffffa05f9ca7>] vxlan_dellink+0x77/0xf0 [vxlan]
      PGD 42b2d9067 PUD 42e04c067 PMD 0
      Oops: 0002 [#1] SMP
      Modules linked in: vxlan(-)
      Hardware name: Dell Inc. PowerEdge R620/0KCKR5, BIOS 1.4.8 10/25/2012
      task: ffff88042ecf8760 ti: ffff88042f106000 task.ti: ffff88042f106000
      RIP: 0010:[<ffffffffa05f9ca7>]  [<ffffffffa05f9ca7>]
      vxlan_dellink+0x77/0xf0 [vxlan]
      RSP: 0018:ffff88042f107e28  EFLAGS: 00010246
      RAX: 0000000000000000 RBX: ffff88082af08000 RCX: ffff88083fd80000
      RDX: 0000000000000000 RSI: ffff88042f107e58 RDI: ffff88042e12f810
      RBP: ffff88042f107e48 R08: ffffffff8166eca0 R09: 0000000000000000
      R10: 0000000000000001 R11: 0000000000000000 R12: ffff88082af087c0
      R13: ffff88042e12f000 R14: ffff88042f107e58 R15: ffff88042f107e58
      FS:  00007f4ed2de7700(0000) GS:ffff88043fc80000(0000)
      knlGS:0000000000000000
      CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      CR2: 0000000000000000 CR3: 000000042e076000 CR4: 00000000000407e0
      Stack:
       ffff88082af08000 ffffffff81654848 ffffffffa05fb4e0 ffffffff81654780
       ffff88042f107e98 ffffffff813b9c7a ffff88042f107e58 ffff88042f107e58
       ffff88042f107e88 ffffffffa05fb4e0 ffffffffa05fb780 ffff88042f107f18
      Call Trace:
       [<ffffffff813b9c7a>] __rtnl_link_unregister+0xca/0xd0
       [<ffffffff813bb0e9>] rtnl_link_unregister+0x19/0x30
       [<ffffffffa05faa4c>] vxlan_cleanup_module+0x10/0x2f [vxlan]
       [<ffffffff81099fef>] SyS_delete_module+0x1cf/0x2c0
       [<ffffffff8146c069>] ? do_page_fault+0x9/0x10
       [<ffffffff8146f012>] system_call_fastpath+0x16/0x1b
      Code: 4d 85 ed 0f 84 95 00 00 00 4c 8d a7 c0 07 00 00 49 8d bd 10 08 00
      00 e8 28 e8 e6 e0 48 8b 83 c0 07 00 00 49 8b 54 24 08 48 85 c0 <48> 89
      02 74 04 48 89 50 08 49 b8 00 02 20 00 00 00 ad de 4d 89
      RIP  [<ffffffffa05f9ca7>] vxlan_dellink+0x77/0xf0 [vxlan]
       RSP <ffff88042f107e28>
      CR2: 0000000000000000
      Signed-off-by: default avatarPravin B Shelar <pshelar@nicira.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f011baf9
    • Thomas Petazzoni's avatar
      net: mvneta: implement ->ndo_do_ioctl() to support PHY ioctls · 15f59456
      Thomas Petazzoni authored
      This commit implements the ->ndo_do_ioctl() operation so that the
      PHY-related ioctl() calls can work from userspace, which allows
      applications like mii-tool or mii-diag to do their job.
      Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
      Tested-by: default avatarGregory CLEMENT <gregory.clement@free-electrons.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      15f59456
    • Thomas Petazzoni's avatar
      net: mvneta: properly disable HW PHY polling and ensure adjust_link() works · 71408602
      Thomas Petazzoni authored
      This commit fixes a long-standing bug that has been reported by many
      users: on some Armada 370 platforms, only the network interface that
      has been used in U-Boot to tftp the kernel works properly in
      Linux. The other network interfaces can see a 'link up', but are
      unable to transmit data. The reports were generally made on the Armada
      370-based Mirabox, but have also been given on the Armada 370-RD
      board.
      
      The network MAC in the Armada 370/XP (supported by the mvneta driver
      in Linux) has a functionality that allows it to continuously poll the
      PHY and directly update the MAC configuration accordingly (speed,
      duplex, etc.). The very first versions of the driver submitted for
      review were using this hardware mechanism, but due to this, the driver
      was not integrated with the kernel phylib. Following reviews, the
      driver was changed to use the phylib, and therefore a software based
      polling. In software based polling, Linux regularly talks to the PHY
      over the MDIO bus, and sees if the link status has changed. If it's
      the case then the adjust_link() callback of the driver is called to
      update the MAC configuration accordingly.
      
      However, it turns out that the adjust_link() callback was not
      configuring the hardware in a completely correct way: while it was
      setting the speed and duplex bits correctly, it wasn't telling the
      hardware to actually take into account those bits rather than what the
      hardware-based PHY polling mechanism has concluded. So, in fact the
      adjust_link() callback was basically a no-op.
      
      However, the network happened to be working because on the network
      interfaces used by U-Boot for tftp on Armada 370 platforms because the
      hardware PHY polling was enabled by the bootloader, and left enabled
      by Linux. However, the second network interface not used for tftp (or
      both network interfaces if the kernel is loaded from USB, NAND or SD
      card) didn't had the hardware PHY polling enabled.
      
      This patch fixes this situation by:
      
       (1) Making sure that the hardware PHY polling is disabled by clearing
           the MVNETA_PHY_POLLING_ENABLE bit in the MVNETA_UNIT_CONTROL
           register in the driver ->probe() function.
      
       (2) Making sure that the duplex and speed selections made by the
           adjust_link() callback are taken into account by clearing the
           MVNETA_GMAC_AN_SPEED_EN and MVNETA_GMAC_AN_DUPLEX_EN bits in the
           MVNETA_GMAC_AUTONEG_CONFIG register.
      
      This patch has been tested on Armada 370 Mirabox, and now both network
      interfaces are usable after boot.
      
      [ Problem introduced by commit c5aff182 ("net: mvneta: driver for
        Marvell Armada 370/XP network unit") ]
      Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
      Cc: Willy Tarreau <w@1wt.eu>
      Cc: Jochen De Smet <jochen.armkernel@leahnim.org>
      Cc: Peter Sanford <psanford@nearbuy.io>
      Cc: Ethan Tuttle <ethan@ethantuttle.com>
      Cc: Chény Yves-Gael <yves@cheny.fr>
      Cc: Ryan Press <ryan@presslab.us>
      Cc: Simon Guinot <simon.guinot@sequanux.org>
      Cc: vdonnefort@lacie.com
      Cc: stable@vger.kernel.org
      Acked-by: default avatarJason Cooper <jason@lakedaemon.net>
      Tested-by: default avatarVincent Donnefort <vdonnefort@gmail.com>
      Tested-by: default avatarYves-Gael Cheny <yves@cheny.fr>
      Tested-by: default avatarGregory CLEMENT <gregory.clement@free-electrons.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      71408602
    • Jon Mason's avatar
      icplus: Use netif_running to determine device state · dfafb73f
      Jon Mason authored
      Remove the __LINK_STATE_START check to verify the device is running, in
      favor of netif_running().  netif_running() performs the same check of
      __LINK_STATE_START, so the code should behave the same.
      Signed-off-by: default avatarJon Mason <jdmason@kudzu.us>
      Cc: Francois Romieu <romieu@fr.zoreil.com>
      Cc: Sorbica Shieh <sorbica@icplus.com.tw>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      dfafb73f
    • Vineet Gupta's avatar
      ethernet/arc/arc_emac: Fix huge delays in large file copies · 27082ee1
      Vineet Gupta authored
      copying large files to a NFS mounted host was taking absurdly large
      time.
      
      Turns out that TX BD reclaim had a sublte bug.
      
      Loop starts off from @txbd_dirty cursor and stops when it hits a BD
      still in use by controller. However when it stops it needs to keep the
      cursor at that very BD to resume scanning in next iteration. However it
      was erroneously incrementing the cursor, causing the next scan(s) to
      fail too, unless the BD chain was completely drained out.
      
      [ARCLinux]$ ls -l -sh /disk/log.txt
       17976 -rw-r--r--    1 root     root       17.5M Sep  /disk/log.txt
      
      ========== Before =====================
      [ARCLinux]$ time cp /disk/log.txt /mnt/.
      real    31m 7.95s
      user    0m 0.00s
      sys     0m 0.10s
      
      ========== After =====================
      [ARCLinux]$ time cp /disk/log.txt /mnt/.
      real    0m 24.33s
      user    0m 0.00s
      sys     0m 0.19s
      Signed-off-by: default avatarVineet Gupta <vgupta@synopsys.com>
      Cc: Alexey Brodkin <abrodkin@synopsys.com> (commit_signer:3/4=75%)
      Cc: "David S. Miller" <davem@davemloft.net> (commit_signer:3/4=75%)
      Cc: netdev@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Cc: arc-linux-dev@synopsys.com
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      27082ee1
    • Linus Torvalds's avatar
      Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux · a09e9a7a
      Linus Torvalds authored
      Pull drm tree changes from Dave Airlie:
       "This is the main drm pull request, I have some overlap with sound and
        arm-soc, the sound patch is acked and may conflict based on -next
        reports but should be a trivial fixup, which I'll leave to you!
      
        Highlights:
      
         - new drivers:
      
           MSM driver from Rob Clark
      
         - non-drm:
      
           switcheroo and hdmi audio driver support for secondary GPU
           poweroff, so drivers can use runtime PM to poweroff the GPUs.  This
           can save 5 or 6W on some optimus laptops.
      
         - drm core:
      
           combined GEM and TTM VMA manager
           per-filp mmap permission tracking
           initial rendernode support (via a runtime enable for now, until we get api stable),
           remove old proc support,
           lots of cleanups of legacy code
           hdmi vendor infoframes and 4k modes
           lots of gem/prime locking and races fixes
           async pageflip scaffolding
           drm bridge objects
      
         - i915:
      
           Haswell PC8+ support and eLLC support, HDMI 4K support, initial
           per-process VMA pieces, watermark reworks, convert to generic hdmi
           infoframes, encoder reworking, fastboot support,
      
         - radeon:
      
           CIK PM support, remove 3d blit code in favour of DMA engines,
           Berlin GPU support, HDMI audio fixes
      
         - nouveau:
      
           secondary GPU power down support for optimus laptops, lots of
           fixes, use MSI, VP3 engine support
      
         - exynos:
      
           runtime pm support for g2d, DT support, remove non-DT,
      
         - tda998x i2c driver:
      
           lots of fixes for sync issues
      
         - gma500:
      
           lots of cleanups
      
         - rcar:
      
           add LVDS support, fbdev emulation,
      
         - tegra:
      
           just minor fixes"
      
      * 'drm-next' of git://people.freedesktop.org/~airlied/linux: (684 commits)
        drm/exynos: Fix build error with exynos_drm_connector.c
        drm/exynos: Remove non-DT support in exynos_drm_fimd
        drm/exynos: Remove non-DT support in exynos_hdmi
        drm/exynos: Remove non-DT support in exynos_drm_g2d
        drm/exynos: Remove non-DT support in exynos_hdmiphy
        drm/exynos: Remove non-DT support in exynos_ddc
        drm/exynos: Make Exynos DRM drivers depend on OF
        drm/exynos: Consider fallback option to allocation fail
        drm/exynos: fimd: move platform data parsing to separate function
        drm/exynos: fimd: get signal polarities from device tree
        drm/exynos: fimd: replace struct fb_videomode with videomode
        drm/exynos: check a pixel format to a particular window layer
        drm/exynos: fix fimd pixel format setting
        drm/exynos: Add NULL pointer check
        drm/exynos: Remove redundant error messages
        drm/exynos: Add missing of.h header include
        drm/exynos: Remove redundant NULL check in exynos_drm_buf
        drm/exynos: add device tree support for rotator
        drm/exynos: Add missing includes
        drm/exynos: add runtime pm interfaces to g2d driver
        ...
      a09e9a7a
    • Linus Torvalds's avatar
      Merge tag 'fbdev-3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux · 9ab073bc
      Linus Torvalds authored
      Pull fbdev changes from Tomi Valkeinen:
       - Improvements to da8xx-fb to make it support v2 of the LCDC IP, used
         eg in BeagleBone
       - Himax HX8369 controller support
       - Various small fixes and cleanups
      
      * tag 'fbdev-3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux: (42 commits)
        video: da8xx-fb: fix the polarities of the hsync/vsync pulse
        video: da8xx-fb: support lcdc v2 timing register expansion
        video: da8xx-fb: fixing timing off by one errors
        video: da8xx-fb fixing incorrect porch mappings
        video: xilinxfb: replace devm_request_and_ioremap by devm_ioremap_resource
        fbmem: move EXPORT_SYMBOL annotation next to symbol declarations
        drivers: video: fbcmap: remove the redundency and incorrect checkings
        video: mxsfb: simplify use of devm_ioremap_resource
        Release efifb's colormap in efifb_destroy()
        at91/avr32/atmel_lcdfb: prepare clk before calling enable
        video: exynos: Ensure definitions match prototypes
        OMAPDSS: fix WARN_ON in 'alpha_blending_enabled' sysfs file
        OMAPDSS: HDMI: Fix possible NULL reference
        video: da8xx-fb: adding am33xx as dependency
        video: da8xx-fb: let compiler decide what to inline
        video: da8xx-fb: make clock naming consistent
        video: da8xx-fb: set upstream clock rate (if reqd)
        video: da8xx-fb: reorganize panel detection
        video: da8xx-fb: ensure non-null cfg in pdata
        video: da8xx-fb: use devres
        ...
      9ab073bc
    • Jason Wang's avatar
      tuntap: orphan frags before trying to set tx timestamp · 7bf66305
      Jason Wang authored
      sock_tx_timestamp() will clear all zerocopy flags of skb which may lead the
      frags never to be orphaned. This will break guest to guest traffic when zerocopy
      is enabled. Fix this by orphaning the frags before trying to set tx time stamp.
      
      The issue were introduced by commit eda29772
      (tun: Support software transmit time stamping).
      
      Cc: Richard Cochran <richardcochran@gmail.com>
      Cc: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
      Acked-by: default avatarRichard Cochran <richardcochran@gmail.com>
      Signed-off-by: default avatarJason Wang <jasowang@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7bf66305
    • Jason Wang's avatar
      tuntap: purge socket error queue on detach · 4bfb0513
      Jason Wang authored
      Commit eda29772
      (tun: Support software transmit time stamping) will queue skbs into error queue
      when tx stamping is enabled. But it forgets to purge the error queue during
      detach. This patch fixes this.
      
      Cc: Richard Cochran <richardcochran@gmail.com>
      Acked-by: default avatarRichard Cochran <richardcochran@gmail.com>
      Signed-off-by: default avatarJason Wang <jasowang@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4bfb0513
    • Michal Schmidt's avatar
      qlcnic: use standard NAPI weights · df95fc44
      Michal Schmidt authored
      Since commit 82dc3c63 ("net: introduce NAPI_POLL_WEIGHT")
      netif_napi_add() produces an error message if a NAPI poll weight
      greater than 64 is requested.
      
      qlcnic requests the weight as large as 256 for some of its rings, and
      smaller values for other rings. For instance in qlcnic_82xx_napi_add()
      I think the intention was to give the tx+rx ring a bigger weight than
      to rx-only rings, but it's actually doing the opposite. So I'm assuming
      the weights do not really matter much.
      
      Just use the standard NAPI weights for all rings.
      Signed-off-by: default avatarMichal Schmidt <mschmidt@redhat.com>
      Acked-by: default avatarHimanshu Madhani <himanshu.madhani@qlogic.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      df95fc44
    • Duan Jiong's avatar
      ipv6:introduce function to find route for redirect · b55b76b2
      Duan Jiong authored
      RFC 4861 says that the IP source address of the Redirect is the
      same as the current first-hop router for the specified ICMP
      Destination Address, so the gateway should be taken into
      consideration when we find the route for redirect.
      
      There was once a check in commit
      a6279458 ("NDISC: Search over
      all possible rules on receipt of redirect.") and the check
      went away in commit b94f1c09
      ("ipv6: Use icmpv6_notify() to propagate redirect, instead of
      rt6_redirect()").
      
      The bug is only "exploitable" on layer-2 because the source
      address of the redirect is checked to be a valid link-local
      address but it makes spoofing a lot easier in the same L2
      domain nonetheless.
      
      Thanks very much for Hannes's help.
      Signed-off-by: default avatarDuan Jiong <duanj.fnst@cn.fujitsu.com>
      Acked-by: default avatarHannes Frederic Sowa <hannes@stressinduktion.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b55b76b2