1. 20 Aug, 2015 6 commits
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 28e55d07
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) Out of bounds array access in 802.11 minstrel code, from Adrien
          Schildknecht.
      
       2) Don't use skb_get() in IGMP/MLD code paths, as this makes
          pskb_may_pull() BUG.  From Linus Luessing.
      
       3) Fix off by one in ipv4 route dumping code, from Andy Whitcroft.
      
       4) Fix deadlock in reqsk_queue_unlink(), from Eric Dumazet.
      
       5) Fix ppp device deregistration wrt.  netns deletion, from Guillaume
          Nault.
      
       6) Fix deadlock when creating per-cpu ipv6 routes, from Martin KaFai
          Lau.
      
       7) Fix memory leak in batman-adv code, from Sven Eckelmann.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
        batman-adv: Fix memory leak on tt add with invalid vlan
        net: phy: fix semicolon.cocci warnings
        net: qmi_wwan: add HP lt4111 LTE/EV-DO/HSPA+ Gobi 4G Module
        be2net: avoid vxlan offloading on multichannel configs
        ipv6: Fix a potential deadlock when creating pcpu rt
        ipv6: Add rt6_make_pcpu_route()
        ipv6: Remove un-used argument from ip6_dst_alloc()
        net: phy: workaround for buggy cable detection by LAN8700 after cable plugging
        net: ethernet: micrel: fix an error code
        ppp: fix device unregistration upon netns deletion
        net: phy: fix PHY_RUNNING in phy_state_machine
        Revert "net: limit tcp/udp rmem/wmem to SOCK_{RCV,SND}BUF_MIN"
        inet: fix potential deadlock in reqsk_queue_unlink()
        gianfar: Restore link state settings after MAC reset
        ipv4: off-by-one in continuation handling in /proc/net/route
        net: fix wrong skb_get() usage / crash in IGMP/MLD parsing code
        mac80211: fix invalid read in minstrel_sort_best_tp_rates()
      28e55d07
    • Linus Torvalds's avatar
      Merge tag 'for-linus-4.2-rc7-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · 3d3e66ba
      Linus Torvalds authored
      Pull xen build fix from David Vrabel:
       "Fix i386 build with an (uncommon) configuration"
      
      * tag 'for-linus-4.2-rc7-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
        x86/xen: make CONFIG_XEN depend on CONFIG_X86_LOCAL_APIC
      3d3e66ba
    • Linus Torvalds's avatar
      Merge tag 'sound-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · a971dbca
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "Here are a small collecton of sound fix patches.
      
        The most significant one is the disablement of newly introduced
        topology API.  Its ABI couldn't be stabilized enough, so we decided to
        delay for 4.3 in the end.  Other than that, all oneliner fixes: a
        USB-audio runtime PM fix and a couple of HD-audio quirks"
      
      * tag 'sound-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: hda - Add dock support for Thinkpad W541 (17aa:2211)
        ALSA: usb-audio: Fix runtime PM unbalance
        ASoC: topology: Disable use from userspace
        ASoC: topology: Add Kconfig option for topology
        ALSA: hda - Fix the white noise on Dell laptop
      a971dbca
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending · 3243f50b
      Linus Torvalds authored
      Pull SCSI target fixes from Nicholas Bellinger:
       "This contains a v4.2-rc specific RCU module unload regression bug-fix,
        a long-standing iscsi-target bug-fix for duplicate target_xfer_tags
        during NOP processing from Alexei, and two more small REPORT_LUNs
        emulation related patches to make Solaris FC host LUN scanning happy
        from Roland.
      
        There is also one patch not included that allows target-core to limit
        the number of fabric driver SGLs per I/O request using residuals, that
        is currently required as a work-around for FC hosts which don't honor
        EVPD block-limits settings.  At this point, it will most likely become
        for-next material"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:
        target: Fix handling of small allocation lengths in REPORT LUNS
        target: REPORT LUNS should return LUN 0 even for dynamic ACLs
        target/iscsi: Fix double free of a TUR followed by a solicited NOPOUT
        target: Perform RCU callback barrier before backend/fabric unload
      3243f50b
    • Linus Torvalds's avatar
      Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal · 3bd8f7d8
      Linus Torvalds authored
      Pull thermal fixes from Eduardo Valentin:
       "Last minute fixes on the thermal-soc tree.  There is a fix of a long
        lasting bug in cpu cooling device, thanks for RMK for being pushing
        this"
      
      * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal:
        thermal/cpu_cooling: update policy limits if clipped_freq < policy->max
        thermal/cpu_cooling: rename max_freq as clipped_freq in notifier
        thermal/cpu_cooling: rename cpufreq_val as clipped_freq
        thermal/cpu_cooling: convert 'switch' block to 'if' block in notifier
        thermal/cpu_cooling: quit early after updating policy
        thermal/cpu_cooling: No need to initialize max_freq to 0
        thermal: cpu_cooling: fix lockdep problems in cpu_cooling
        thermal: power_allocator: do not use devm* interfaces
      3bd8f7d8
    • David Vrabel's avatar
      x86/xen: make CONFIG_XEN depend on CONFIG_X86_LOCAL_APIC · 87ffd2b9
      David Vrabel authored
      Since commit feb44f1f (x86/xen:
      Provide a "Xen PV" APIC driver to support >255 VCPUs) Xen guests need
      a full APIC driver and thus should depend on X86_LOCAL_APIC.
      
      This fixes an i386 build failure with !SMP && !CONFIG_X86_UP_APIC by
      disabling Xen support in this configuration.
      
      Users needing Xen support in a non-SMP i386 kernel will need to enable
      CONFIG_X86_UP_APIC.
      Signed-off-by: default avatarDavid Vrabel <david.vrabel@citrix.com>
      Cc: <stable@vger.kernel.org>
      87ffd2b9
  2. 19 Aug, 2015 5 commits
  3. 18 Aug, 2015 4 commits
  4. 17 Aug, 2015 18 commits
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma · bf674028
      Linus Torvalds authored
      Pull rdma bugfix from Doug Ledford:
       "Bugfix in iw_cxgb4"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma:
        iw_cxgb4: gracefully handle unknown CQE status errors
      bf674028
    • Linus Torvalds's avatar
      Merge branch 'for-4.2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata · 4e7fca0d
      Linus Torvalds authored
      Pull libata fixes from Tejun Heo:
       "Three minor device-specific fixes and revert of NCQ autosense added
        during this -rc1.
      
        It turned out that NCQ autosense as currently implemented interferes
        with the usual error handling behavior.  It will be revisited in the
        near future"
      
      * 'for-4.2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata:
        ata: ahci_brcmstb: Fix misuse of IS_ENABLED
        sata_sx4: Check return code from pdc20621_i2c_read()
        Revert "libata: Implement NCQ autosense"
        Revert "libata: Implement support for sense data reporting"
        Revert "libata-eh: Set 'information' field for autosense"
        ata: ahci_brcmstb: Fix warnings with CONFIG_PM_SLEEP=n
      4e7fca0d
    • Linus Torvalds's avatar
      Merge branch 'for-4.2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup · e9ab22d2
      Linus Torvalds authored
      Pull cgroup fix from Tejun Heo:
       "A fix for a subtle bug introduced back during 3.17 cycle which
        interferes with setting configurations under specific conditions"
      
      * 'for-4.2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
        cpuset: use trialcs->mems_allowed as a temp variable
      e9ab22d2
    • kbuild test robot's avatar
      net: phy: fix semicolon.cocci warnings · ff94c742
      kbuild test robot authored
      drivers/net/phy/smsc.c:127:3-4: Unneeded semicolon
      
       Remove unneeded semicolon.
      
      Generated by: scripts/coccinelle/misc/semicolon.cocci
      
      CC: Igor Plyatov <plyatov@gmail.com>
      Signed-off-by: default avatarFengguang Wu <fengguang.wu@intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ff94c742
    • David Ward's avatar
      a8079092
    • Ivan Vecera's avatar
      be2net: avoid vxlan offloading on multichannel configs · af19e686
      Ivan Vecera authored
      VxLAN offloading is not functional if the NIC is running in multichannel
      mode (UMC, FLEX-10, VNIC...). Enabling this additionally kills whole
      connectivity through the NIC and the device needs to be down and up to
      restore it. The firmware should take care about it and does not allow
      the conversion of interface to tunnel type (be_cmd_manage_iface) or should
      support VxLAN offloading if multichannel config is enabled.
      I have tested this on the latest available firmware (10.6.144.21).
      
      Result:
      [root@sm-04 ~]# ip link set enp5s0f0 up[root@sm-04 ~]# ip addr add 172.30.10.50/24 dev enp5s0f0
      [root@sm-04 ~]# ping -c 3 172.30.10.254PING 172.30.10.254 (172.30.10.254) 56(84) bytes of data.
      64 bytes from 172.30.10.254: icmp_seq=1 ttl=64 time=0.317 ms
      64 bytes from 172.30.10.254: icmp_seq=2 ttl=64 time=0.187 ms
      64 bytes from 172.30.10.254: icmp_seq=3 ttl=64 time=0.188 ms
      
       --- 172.30.10.254 ping statistics ---
      3 packets transmitted, 3 received, 0% packet loss, time 2000ms
      rtt min/avg/max/mdev = 0.187/0.230/0.317/0.063 ms
      [root@sm-04 ~]# ip link add link enp5s0f0 vxlan10 type vxlan id 10 remote 172.30.10.60 dstport 4789
      [root@sm-04 ~]# ip link set vxlan10 up
      [ 7900.442811] be2net 0000:05:00.0: Enabled VxLAN offloads for UDP port 4789
      [ 7900.455722] be2net 0000:05:00.1: Enabled VxLAN offloads for UDP port 4789
      [ 7900.468635] be2net 0000:05:00.2: Enabled VxLAN offloads for UDP port 4789
      [ 7900.481553] be2net 0000:05:00.3: Enabled VxLAN offloads for UDP port 4789
      [root@sm-04 ~]# ping -c 3 172.30.10.254
      PING 172.30.10.254 (172.30.10.254) 56(84) bytes of data.
      
       --- 172.30.10.254 ping statistics ---
      3 packets transmitted, 0 received, 100% packet loss, time 1999ms
      
      [root@sm-04 ~]# ip link set vxlan10 down
      [ 7959.434093] be2net 0000:05:00.0: Disabled VxLAN offloads for UDP port 4789
      [ 7959.444792] be2net 0000:05:00.1: Disabled VxLAN offloads for UDP port 4789
      [ 7959.455592] be2net 0000:05:00.2: Disabled VxLAN offloads for UDP port 4789
      [ 7959.466416] be2net 0000:05:00.3: Disabled VxLAN offloads for UDP port 4789
      [root@sm-04 ~]# ip link del vxlan10
      [root@sm-04 ~]# ping -c 3 172.30.10.254
      PING 172.30.10.254 (172.30.10.254) 56(84) bytes of data.
      
       --- 172.30.10.254 ping statistics ---
      3 packets transmitted, 0 received, 100% packet loss, time 1999ms
      
      [root@sm-04 ~]# ip link set enp5s0f0 down
      [root@sm-04 ~]# ip link set enp5s0f0 up
      [ 8071.019003] be2net 0000:05:00.0 enp5s0f0: Link is Up
      [root@sm-04 ~]# ping -c 3 172.30.10.254
      PING 172.30.10.254 (172.30.10.254) 56(84) bytes of data.
      64 bytes from 172.30.10.254: icmp_seq=1 ttl=64 time=0.318 ms
      64 bytes from 172.30.10.254: icmp_seq=2 ttl=64 time=0.196 ms
      64 bytes from 172.30.10.254: icmp_seq=3 ttl=64 time=0.194 ms
      
       --- 172.30.10.254 ping statistics ---
      3 packets transmitted, 3 received, 0% packet loss, time 2000ms
      rtt min/avg/max/mdev = 0.194/0.236/0.318/0.057 ms
      
      Cc: Sathya Perla <sathya.perla@avagotech.com>
      Cc: Ajit Khaparde <ajit.khaparde@avagotech.com>
      Cc: Padmanabh Ratnakar <padmanabh.ratnakar@avagotech.com>
      Cc: Sriharsha Basavapatna <sriharsha.basavapatna@avagotech.com>
      Signed-off-by: default avatarIvan Vecera <ivecera@redhat.com>
      Acked-by: default avatarAjit Khaparde <ajit.khaparde@avagotech.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      af19e686
    • David S. Miller's avatar
      Merge branch 'ipv6_percpu_rt_deadlock' · 1f979b11
      David S. Miller authored
      Martin KaFai Lau says:
      
      ====================
      ipv6: Fix a potential deadlock when creating pcpu rt
      
      v1 -> v2:
      A minor change in the commit message of patch 2.
      
      This patch series fixes a potential deadlock when creating a pcpu rt.
      It happens when dst_alloc() decided to run gc. Something like this:
      
      read_lock(&table->tb6_lock);
      ip6_rt_pcpu_alloc()
      => dst_alloc()
      => ip6_dst_gc()
      => write_lock(&table->tb6_lock); /* oops */
      
      Patch 1 and 2 are some prep works.
      Patch 3 is the fix.
      
      Original report: https://bugzilla.kernel.org/show_bug.cgi?id=102291
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1f979b11
    • Martin KaFai Lau's avatar
      ipv6: Fix a potential deadlock when creating pcpu rt · 9c7370a1
      Martin KaFai Lau authored
      rt6_make_pcpu_route() is called under read_lock(&table->tb6_lock).
      rt6_make_pcpu_route() calls ip6_rt_pcpu_alloc(rt) which then
      calls dst_alloc().  dst_alloc() _may_ call ip6_dst_gc() which takes
      the write_lock(&tabl->tb6_lock).  A visualized version:
      
      read_lock(&table->tb6_lock);
      rt6_make_pcpu_route();
      => ip6_rt_pcpu_alloc();
      => dst_alloc();
      => ip6_dst_gc();
      => write_lock(&table->tb6_lock); /* oops */
      
      The fix is to do a read_unlock first before calling ip6_rt_pcpu_alloc().
      
      A reported stack:
      
      [141625.537638] INFO: rcu_sched self-detected stall on CPU { 27}  (t=60000 jiffies g=4159086 c=4159085 q=2139)
      [141625.547469] Task dump for CPU 27:
      [141625.550881] mtr             R  running task        0 22121  22081 0x00000008
      [141625.558069]  0000000000000000 ffff88103f363d98 ffffffff8106e488 000000000000001b
      [141625.565641]  ffffffff81684900 ffff88103f363db8 ffffffff810702b0 0000000008000000
      [141625.573220]  ffffffff81684900 ffff88103f363de8 ffffffff8108df9f ffff88103f375a00
      [141625.580803] Call Trace:
      [141625.583345]  <IRQ>  [<ffffffff8106e488>] sched_show_task+0xc1/0xc6
      [141625.589650]  [<ffffffff810702b0>] dump_cpu_task+0x35/0x39
      [141625.595144]  [<ffffffff8108df9f>] rcu_dump_cpu_stacks+0x6a/0x8c
      [141625.601320]  [<ffffffff81090606>] rcu_check_callbacks+0x1f6/0x5d4
      [141625.607669]  [<ffffffff810940c8>] update_process_times+0x2a/0x4f
      [141625.613925]  [<ffffffff8109fbee>] tick_sched_handle+0x32/0x3e
      [141625.619923]  [<ffffffff8109fc2f>] tick_sched_timer+0x35/0x5c
      [141625.625830]  [<ffffffff81094a1f>] __hrtimer_run_queues+0x8f/0x18d
      [141625.632171]  [<ffffffff81094c9e>] hrtimer_interrupt+0xa0/0x166
      [141625.638258]  [<ffffffff8102bf2a>] local_apic_timer_interrupt+0x4e/0x52
      [141625.645036]  [<ffffffff8102c36f>] smp_apic_timer_interrupt+0x39/0x4a
      [141625.651643]  [<ffffffff8140b9e8>] apic_timer_interrupt+0x68/0x70
      [141625.657895]  <EOI>  [<ffffffff81346ee8>] ? dst_destroy+0x7c/0xb5
      [141625.664188]  [<ffffffff813d45b5>] ? fib6_flush_trees+0x20/0x20
      [141625.670272]  [<ffffffff81082b45>] ? queue_write_lock_slowpath+0x60/0x6f
      [141625.677140]  [<ffffffff8140aa33>] _raw_write_lock_bh+0x23/0x25
      [141625.683218]  [<ffffffff813d4553>] __fib6_clean_all+0x40/0x82
      [141625.689124]  [<ffffffff813d45b5>] ? fib6_flush_trees+0x20/0x20
      [141625.695207]  [<ffffffff813d6058>] fib6_clean_all+0xe/0x10
      [141625.700854]  [<ffffffff813d60d3>] fib6_run_gc+0x79/0xc8
      [141625.706329]  [<ffffffff813d0510>] ip6_dst_gc+0x85/0xf9
      [141625.711718]  [<ffffffff81346d68>] dst_alloc+0x55/0x159
      [141625.717105]  [<ffffffff813d09b5>] __ip6_dst_alloc.isra.32+0x19/0x63
      [141625.723620]  [<ffffffff813d1830>] ip6_pol_route+0x36a/0x3e8
      [141625.729441]  [<ffffffff813d18d6>] ip6_pol_route_output+0x11/0x13
      [141625.735700]  [<ffffffff813f02c8>] fib6_rule_action+0xa7/0x1bf
      [141625.741698]  [<ffffffff813d18c5>] ? ip6_pol_route_input+0x17/0x17
      [141625.748043]  [<ffffffff81357c48>] fib_rules_lookup+0xb5/0x12a
      [141625.754050]  [<ffffffff81141628>] ? poll_select_copy_remaining+0xf9/0xf9
      [141625.761002]  [<ffffffff813f0535>] fib6_rule_lookup+0x37/0x5c
      [141625.766914]  [<ffffffff813d18c5>] ? ip6_pol_route_input+0x17/0x17
      [141625.773260]  [<ffffffff813d008c>] ip6_route_output+0x7a/0x82
      [141625.779177]  [<ffffffff813c44c8>] ip6_dst_lookup_tail+0x53/0x112
      [141625.785437]  [<ffffffff813c45c3>] ip6_dst_lookup_flow+0x2a/0x6b
      [141625.791604]  [<ffffffff813ddaab>] rawv6_sendmsg+0x407/0x9b6
      [141625.797423]  [<ffffffff813d7914>] ? do_ipv6_setsockopt.isra.8+0xd87/0xde2
      [141625.804464]  [<ffffffff8139d4b4>] inet_sendmsg+0x57/0x8e
      [141625.810028]  [<ffffffff81329ba3>] sock_sendmsg+0x2e/0x3c
      [141625.815588]  [<ffffffff8132be57>] SyS_sendto+0xfe/0x143
      [141625.821063]  [<ffffffff813dd551>] ? rawv6_setsockopt+0x5e/0x67
      [141625.827146]  [<ffffffff8132c9f8>] ? sock_common_setsockopt+0xf/0x11
      [141625.833660]  [<ffffffff8132c08c>] ? SyS_setsockopt+0x81/0xa2
      [141625.839565]  [<ffffffff8140ac17>] entry_SYSCALL_64_fastpath+0x12/0x6a
      
      Fixes: d52d3997 ("pv6: Create percpu rt6_info")
      Signed-off-by: default avatarMartin KaFai Lau <kafai@fb.com>
      CC: Hannes Frederic Sowa <hannes@stressinduktion.org>
      Reported-by: default avatarSteinar H. Gunderson <sgunderson@bigfoot.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9c7370a1
    • Martin KaFai Lau's avatar
      ipv6: Add rt6_make_pcpu_route() · a73e4195
      Martin KaFai Lau authored
      It is a prep work for fixing a potential deadlock when creating
      a pcpu rt.
      
      The current rt6_get_pcpu_route() will also create a pcpu rt if one does not
      exist.  This patch moves the pcpu rt creation logic into another function,
      rt6_make_pcpu_route().
      Signed-off-by: default avatarMartin KaFai Lau <kafai@fb.com>
      CC: Hannes Frederic Sowa <hannes@stressinduktion.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a73e4195
    • Martin KaFai Lau's avatar
      ipv6: Remove un-used argument from ip6_dst_alloc() · ad706862
      Martin KaFai Lau authored
      After 4b32b5ad ("ipv6: Stop rt6_info from using inet_peer's metrics"),
      ip6_dst_alloc() does not need the 'table' argument.  This patch
      cleans it up.
      Signed-off-by: default avatarMartin KaFai Lau <kafai@fb.com>
      CC: Hannes Frederic Sowa <hannes@stressinduktion.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ad706862
    • Igor Plyatov's avatar
      net: phy: workaround for buggy cable detection by LAN8700 after cable plugging · 776829de
      Igor Plyatov authored
      * Due to HW bug, LAN8700 sometimes does not detect presence of energy in the
        Ethernet cable in Energy Detect Power-Down mode (e.g while EDPWRDOWN bit is
        set, the ENERGYON bit does not asserted sometimes). This is a common bug of
        LAN87xx family of PHY chips.
      * The lan87xx_read_status() was improved to acquire ENERGYON bit. Its previous
        algorythm still not reliable on 100 % and sometimes skip cable plugging.
      Signed-off-by: default avatarIgor Plyatov <plyatov@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      776829de
    • David S. Miller's avatar
      Merge tag 'mac80211-for-davem-2015-08-14' of... · a27cc68b
      David S. Miller authored
      Merge tag 'mac80211-for-davem-2015-08-14' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211
      
      Johannes Berg says:
      
      ====================
      We have a single bugfix for an invalid memory read.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a27cc68b
    • Dan Carpenter's avatar
      net: ethernet: micrel: fix an error code · 2902bc66
      Dan Carpenter authored
      The dma_mapping_error() function returns true or false.  We should
      return -ENOMEM if it there is a dma mapping error.
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2902bc66
    • Guillaume Nault's avatar
      ppp: fix device unregistration upon netns deletion · 8cb775bc
      Guillaume Nault authored
      PPP devices may get automatically unregistered when their network
      namespace is getting removed. This happens if the ppp control plane
      daemon (e.g. pppd) exits while it is the last user of this namespace.
      
      This leads to several races:
      
        * ppp_exit_net() may destroy the per namespace idr (pn->units_idr)
          before all file descriptors were released. Successive ppp_release()
          calls may then cleanup PPP devices with ppp_shutdown_interface() and
          try to use the already destroyed idr.
      
        * Automatic device unregistration may also happen before the
          ppp_release() call for that device gets executed. Once called on
          the file owning the device, ppp_release() will then clean it up and
          try to unregister it a second time.
      
      To fix these issues, operations defined in ppp_shutdown_interface() are
      moved to the PPP device's ndo_uninit() callback. This allows PPP
      devices to be properly cleaned up by unregister_netdev() and friends.
      So checking for ppp->owner is now an accurate test to decide if a PPP
      device should be unregistered.
      
      Setting ppp->owner is done in ppp_create_interface(), before device
      registration, in order to avoid unprotected modification of this field.
      
      Finally, ppp_exit_net() now starts by unregistering all remaining PPP
      devices to ensure that none will get unregistered after the call to
      idr_destroy().
      Signed-off-by: default avatarGuillaume Nault <g.nault@alphalink.fr>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8cb775bc
    • Shaohui Xie's avatar
      net: phy: fix PHY_RUNNING in phy_state_machine · 11e122cb
      Shaohui Xie authored
      Currently, if phy state is PHY_RUNNING, we always register a CHANGE
      when phy works in polling or interrupt ignored, this will make the
      adjust_link being called even the phy link did Not changed.
      
      checking the phy link to make sure the link did changed before we
      register a CHANGE, if link did not changed, we do nothing.
      Signed-off-by: default avatarShaohui Xie <Shaohui.Xie@freescale.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      11e122cb
    • Calvin Owens's avatar
      Revert "net: limit tcp/udp rmem/wmem to SOCK_{RCV,SND}BUF_MIN" · 5d37852b
      Calvin Owens authored
      Commit 8133534c ("net: limit tcp/udp rmem/wmem to
      SOCK_{RCV,SND}BUF_MIN") modified four sysctls to enforce that the values
      written to them are not less than SOCK_MIN_{RCV,SND}BUF.
      
      That change causes 4096 to no longer be accepted as a valid value for
      'min' in tcp_wmem and udp_wmem_min. 4096 has been the default for both
      of those sysctls for a long time, and unfortunately seems to be an
      extremely popular setting. This change breaks a large number of sysctl
      configurations at Facebook.
      
      That commit referred to b1cb59cf ("net: sysctl_net_core: check
      SNDBUF and RCVBUF for min length"), which choose to use the SOCK_MIN
      constants as the lower limits to avoid nasty bugs. But AFAICS, a limit
      of SOCK_MIN_SNDBUF isn't necessary to do that: the BUG_ON cited in the
      commit message seems to have happened because unix_stream_sendmsg()
      expects a minimum of a full page (ie SK_MEM_QUANTUM) and the math broke,
      not because it had less than SOCK_MIN_SNDBUF allocated.
      
      This particular issue doesn't seem to affect TCP however: using a
      setting of "1 1 1" for tcp_{r,w}mem works, although it's obviously
      suboptimal. SK_MEM_QUANTUM would be a nice minimum, but it's 64K on
      some archs, so there would still be breakage.
      
      Since a value of one doesn't seem to cause any problems, we can drop the
      minimum 8133534c added to fix this.
      
      This reverts commit 8133534c.
      
      Fixes: 8133534c ("net: limit tcp/udp rmem/wmem to SOCK_MIN...")
      Cc: Eric Dumazet <eric.dumazet@gmail.com>
      Cc: Sorin Dumitru <sorin@returnze.ro>
      Signed-off-by: default avatarCalvin Owens <calvinowens@fb.com>
      Acked-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5d37852b
    • Robert Baldyga's avatar
      dmaengine: fix balance of privatecnt inc/dec operations · 05aa1a77
      Robert Baldyga authored
      This patch increments privatecnt value and set DMA_PRIVATE in device
      caps in dma_request_slave_channel() function. This is needed to keep
      privatecnt increment/decrement balance.
      
      As function dma_release_channel() decrements privatecnt counter, we need
      to increment it when channel is requested. Otherwise privatecnt drops
      into negatives after few dma_release_channel() calls.
      Reported-by: default avatarKrzysztof Kozlowski <k.kozlowski@samsung.com>
      Signed-off-by: default avatarRobert Baldyga <r.baldyga@samsung.com>
      Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
      05aa1a77
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · a36304b9
      Linus Torvalds authored
      Pull crypto fixes from Herbert Xu:
       "This fixes the following issues:
      
         - a regression caused by the conversion of IPsec ESP to the new AEAD
           interface: ESN with authencesn no longer works because it relied on
           the AD input SG list having a specific layout which is no longer
           the case.  In linux-next authencesn is fixed properly and no longer
           assumes anything about the SG list format.  While for this release
           a minimal fix is applied to authencesn so that it works with the
           new linear layout.
      
         - fix memory corruption caused by bogus index in the caam hash code.
      
         - fix powerpc nx SHA hashing which could cause module load failures
           if module signature verification is enabled"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
        crypto: caam - fix memory corruption in ahash_final_ctx
        crypto: nx - respect sg limit bounds when building sg lists for SHA
        crypto: authencesn - Fix breakage with new ESP code
      a36304b9
  5. 16 Aug, 2015 7 commits