Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Commits on Aug 28, 2015
  1. Merge tag 'powerpc-4.2-4' of git://git.kernel.org/pub/scm/linux/kerne…

    authored
    …l/git/powerpc/linux
    
    Pull powerpc fixes from Michael Ellerman:
     "Fix MSI/MSI-X on pseries from Guilherme"
    
    * tag 'powerpc-4.2-4' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
      powerpc/PCI: Disable MSI/MSI-X interrupts at PCI probe time in OF case
      PCI: Make pci_msi_setup_pci_dev() non-static for use by arch code
  2. Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net

    authored
    Pull networking fixes from David Miller:
     "Some straggler bug fixes here:
    
       1) Netlink_sendmsg() doesn't check iterator type properly in mmap
          case, from Ken-ichirou MATSUZAWA.
    
       2) Don't sleep in atomic context in bcmgenet driver, from Florian
          Fainelli.
    
       3) The pfkey_broadcast() code patch can't actually ever use anything
          other than GFP_ATOMIC.  And the cases that right now pass
          GFP_KERNEL or similar will currently trigger an RCU splat.  Just
          use GFP_ATOMIC unconditionally.  From David Ahern.
    
       4) Fix FD bit timings handling in pcan_usb driver, from Marc
          Kleine-Budde.
    
       5) Cache dst leaked in ip6_gre tunnel removal, fix from Huaibin Wang.
    
       6) Traversal into drivers/net/ethernet/renesas should be triggered by
          CONFIG_NET_VENDOR_RENESAS, not a particular driver's config
          option.  From Kazuya Mizuguchi.
    
       7) Fix regression in handling of igmp_join errors in vxlan, from
          Marcelo Ricardo Leitner.
    
       8) Make phy_{read,write}_mmd_indirect() properly take the mdio_lock
          mutex when programming the registers.  From Russell King.
    
       9) Fix non-forced handling in u32_destroy(), from WANG Cong.
    
      10) Test the EVENT_NO_RUNTIME_PM flag before it is cleared in
          usbnet_stop(), from Eugene Shatokhin.
    
      11) In sfc driver, don't fetch statistics firmware isn't capable of,
          from Bert Kenward.
    
      12) Verify ASCONF address parameter location in SCTP, from Xin Long"
    
    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
      sctp: donot reset the overall_error_count in SHUTDOWN_RECEIVE state
      sctp: asconf's process should verify address parameter is in the beginning
      sfc: only use vadaptor stats if firmware is capable
      net: phy: fixed: propagate fixed link values to struct
      usbnet: Get EVENT_NO_RUNTIME_PM bit before it is cleared
      drivers: net: xgene: fix: Oops in linkwatch_fire_event
      cls_u32: complete the check for non-forced case in u32_destroy()
      net: fec: use reinit_completion() in mdio accessor functions
      net: phy: add locking to phy_read_mmd_indirect()/phy_write_mmd_indirect()
      vxlan: re-ignore EADDRINUSE from igmp_join
      net: compile renesas directory if NET_VENDOR_RENESAS is configured
      ip6_gre: release cached dst on tunnel removal
      phylib: Make PHYs children of their MDIO bus, not the bus' parent.
      can: pcan_usb: don't provide CAN FD bittimings by non-FD adapters
      net: Fix RCU splat in af_key
      net: bcmgenet: fix uncleaned dma flags
      net: bcmgenet: Avoid sleeping in bcmgenet_timeout
      netlink: mmap: fix tx type check
  3. Merge branch 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/…

    authored
    …kernel/git/nvdimm/nvdimm
    
    Pull nvdimm fixlet from Dan Williams:
     "This is a libnvdimm ABI fixup.
    
      I pushed back on this change quite hard given the late date, that it
      appears to be purely cosmetic, sysfs is not necessarily meant to be a
      user friendly UI, and the kernel interprets the reversed polarity of
      the ACPI_NFIT_MEM_ARMED flag correctly.  When this flag is set, the
      energy source of an NVDIMM is not armed and any new writes to the DIMM
      may not be preserved.
    
      However, Bob Moore warned me that it is important to get these things
      named correctly wherever they appear otherwise we run the risk of a
      less than cautious firmware engineer implementing the polarity the
      wrong way.  Once a mistake like that escapes into production platforms
      the flag becomes useless and we need to move to a new bit position.
    
      Bob has agreed to take a change through ACPICA to rename
      ACPI_NFIT_MEM_ARMED to ACPI_NFIT_MEM_NOT_ARMED, and the patch below
      from Toshi brings the sysfs representation of these flags in line with
      their respective polarities.
    
      Please pull for 4.2 as this is the first kernel to expose the ACPI
      NFIT sysfs representation, and this is likely a kernel that firmware
      developers will be using for checking out their NVDIMM enabling"
    
    * 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
      nfit: Clarify memory device state flags strings
  4. @lxin @davem330

    sctp: donot reset the overall_error_count in SHUTDOWN_RECEIVE state

    lxin authored davem330 committed
    Commit f8d9605 ("sctp: Enforce retransmission limit during shutdown")
    fixed a problem with excessive retransmissions in the SHUTDOWN_PENDING by not
    resetting the association overall_error_count.  This allowed the association
    to better enforce assoc.max_retrans limit.
    
    However, the same issue still exists when the association is in SHUTDOWN_RECEIVED
    state.  In this state, HB-ACKs will continue to reset the overall_error_count
    for the association would extend the lifetime of association unnecessarily.
    
    This patch solves this by resetting the overall_error_count whenever the current
    state is small then SCTP_STATE_SHUTDOWN_PENDING.  As a small side-effect, we
    end up also handling SCTP_STATE_SHUTDOWN_ACK_SENT and SCTP_STATE_SHUTDOWN_SENT
    states, but they are not really impacted because we disable Heartbeats in those
    states.
    
    Fixes: Commit f8d9605 ("sctp: Enforce retransmission limit during shutdown")
    Signed-off-by: Xin Long <lucien.xin@gmail.com>
    Acked-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
    Acked-by: Vlad Yasevich <vyasevich@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
Commits on Aug 27, 2015
  1. @lxin @davem330

    sctp: asconf's process should verify address parameter is in the begi…

    lxin authored davem330 committed
    …nning
    
    in sctp_process_asconf(), we get address parameter from the beginning of
    the addip params. but we never check if it's really there. if the addr
    param is not there, it still can pass sctp_verify_asconf(), then to be
    handled by sctp_process_asconf(), it will not be safe.
    
    so add a code in sctp_verify_asconf() to check the address parameter is in
    the beginning, or return false to send abort.
    
    note that this can also detect multiple address parameters, and reject it.
    
    Signed-off-by: Xin Long <lucien.xin@gmail.com>
    Signed-off-by: Marcelo Ricardo Leitner <mleitner@redhat.com>
    Acked-by: Vlad Yasevich <vyasevich@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
  2. @djbw

    nfit: Clarify memory device state flags strings

    Toshi Kani authored djbw committed
    ACPI 6.0 NFIT Memory Device State Flags in Table 5-129 defines
    NVDIMM status as follows.  These bits indicate multiple info,
    such as failures, pending event, and capability.
    
      Bit [0] set to 1 to indicate that the previous SAVE to the
      Memory Device failed.
      Bit [1] set to 1 to indicate that the last RESTORE from the
      Memory Device failed.
      Bit [2] set to 1 to indicate that platform flush of data to
      Memory Device failed. As a result, the restored data content
      may be inconsistent even if SAVE and RESTORE do not indicate
      failure.
      Bit [3] set to 1 to indicate that the Memory Device is observed
      to be not armed prior to OSPM hand off. A Memory Device is
      considered armed if it is able to accept persistent writes.
      Bit [4] set to 1 to indicate that the Memory Device observed
      SMART and health events prior to OSPM handoff.
    
    /sys/bus/nd/devices/nmemX/nfit/flags shows this flags info.
    The output strings associated with the bits are "save", "restore",
    "smart", etc., which can be confusing as they may be interpreted
    as positive status, i.e. save succeeded.
    
    Change also the dev_info() message in acpi_nfit_register_dimms()
    to be consistent with the sysfs flags strings.
    
    Reported-by: Robert Elliott <elliott@hp.com>
    Signed-off-by: Toshi Kani <toshi.kani@hp.com>
    [ross: rename 'not_arm' to 'not_armed']
    Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
    [djbw: defer adding bit5, HEALTH_ENABLED, for now]
    Signed-off-by: Dan Williams <dan.j.williams@intel.com>
  3. @davem330

    sfc: only use vadaptor stats if firmware is capable

    Bert Kenward authored davem330 committed
    Some of the stats handling code differs based on SR-IOV support,
    and SRIOV support is only available if full-featured firmware is
    used.
    Do not use vadaptor stats if firmware mode is not set to
    full-featured.
    
    Signed-off-by: Shradha Shah <sshah@solarflare.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
  4. @davem330

    net: phy: fixed: propagate fixed link values to struct

    Madalin Bucur authored davem330 committed
    The fixed link values parsed from the device tree are stored in
    the struct fixed_phy member status. The struct phy_device members
    speed, duplex were not updated.
    
    Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com>
    Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
  5. Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/…

    authored
    …git/arm64/linux
    
    Pull amr64 kvm fix from Will Deacon:
     "We've uncovered a nasty bug in the arm64 KVM code which allows a badly
      behaved 32-bit guest to bring down the host.  The fix is simple (it's
      what I believe we call a "brown paper bag" bug) and I don't think it
      makes sense to sit on this, particularly as Russell ended up
      triggering this rather than just somebody noticing a potential problem
      by inspection.
    
      Usually arm64 KVM changes would go via Paolo's tree, but he's on
      holiday at the moment and the deal is that anything urgent gets
      shuffled via the arch trees, so here it is.
    
      Summary:
    
      Fix arm64 KVM issue when injecting an abort into a 32-bit guest, which
      would lead to an illegal exception return at EL2 and a subsequent host
      crash"
    
    * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
      arm64: KVM: Fix host crash when injecting a fault into a 32bit guest
  6. @wildea01

    arm64: KVM: Fix host crash when injecting a fault into a 32bit guest

    Marc Zyngier authored wildea01 committed
    When injecting a fault into a misbehaving 32bit guest, it seems
    rather idiotic to also inject a 64bit fault that is only going
    to corrupt the guest state. This leads to a situation where we
    perform an illegal exception return at EL2 causing the host
    to crash instead of killing the guest.
    
    Just fix the stupid bug that has been there from day 1.
    
    Cc: <stable@vger.kernel.org>
    Reported-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Tested-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
Commits on Aug 26, 2015
  1. Merge branch 'for-linus' of git://git.kernel.dk/linux-block

    authored
    Pull block fixes from Jens Axboe:
     "Two fixes in this pull request:
    
       - The writeback regression fix from Tejun, which has been weeks in
         the making.  This fixes a case where we would sometimes not issue
         writeback when we should have.
    
       - An older fix for a memory corruption issue in mtip32xx.  It was
         deferred since we wanted a better fix for this (driver should not
         have to handle that case), but given the timing, it's better to put
         the simple fix in for 4.2 release"
    
    * 'for-linus' of git://git.kernel.dk/linux-block:
      mtip32x: fix regression introduced by blk-mq per-hctx flush
      writeback: sync_inodes_sb() must write out I_DIRTY_TIME inodes and always call wait_sb_inodes()
  2. @mpe

    powerpc/PCI: Disable MSI/MSI-X interrupts at PCI probe time in OF case

    Guilherme G. Piccoli authored mpe committed
    Since commit 1851617 ("PCI/MSI: Disable MSI at enumeration even if
    kernel doesn't support MSI"), the setup of dev->msi_cap/msix_cap and the
    disable of MSI/MSI-X interrupts isn't being done at PCI probe time, as
    the logic responsible for this was moved in the aforementioned commit
    from pci_device_add() to pci_setup_device(). The latter function is not
    reachable on PowerPC pseries platform during Open Firmware PCI probing
    time.
    
    This exhibits as drivers not being able to enable MSI, eg:
    
      bnx2x 0000:01:00.0: no msix capability found
    
    This patch calls pci_msi_setup_pci_dev() explicitly to disable MSI/MSI-X
    during PCI probe time on pSeries platform.
    
    Fixes: 1851617 ("PCI/MSI: Disable MSI at enumeration even if kernel doesn't support MSI")
    [mpe: Flesh out change log and clarify comment]
    Signed-off-by: Guilherme G. Piccoli <gpiccoli@linux.vnet.ibm.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
  3. @mpe

    PCI: Make pci_msi_setup_pci_dev() non-static for use by arch code

    Guilherme G. Piccoli authored mpe committed
    Commit 1851617 ("PCI/MSI: Disable MSI at enumeration even if kernel
    doesn't support MSI") changed the location of the code that initialises
    dev->msi_cap/msix_cap and then disables MSI/MSI-X interrupts at PCI
    probe time in devices that have this flag set. It moved the code from
    pci_msi_init_pci_dev() to a new function named pci_msi_setup_pci_dev(),
    called by pci_setup_device().
    
    The pseries PCI probing code does not call pci_setup_device(), so since
    the aforementioned commit the function pci_msi_setup_pci_dev() is not
    called and MSI/MSI-X interrupts are left enabled. Additionally because
    dev->msi_cap/msix_cap are not initialised no driver can ever enable
    MSI/MSI-X.
    
    To fix this, the pseries PCI probe should manually call
    pci_msi_setup_pci_dev(), so this patch makes it non-static.
    
    Fixes: 1851617 ("PCI/MSI: Disable MSI at enumeration even if kernel doesn't support MSI")
    [mpe: Update change log to mention dev->msi_cap/msix_cap]
    Signed-off-by: Guilherme G. Piccoli <gpiccoli@linux.vnet.ibm.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
  4. @euspectre @davem330

    usbnet: Get EVENT_NO_RUNTIME_PM bit before it is cleared

    euspectre authored davem330 committed
    It is needed to check EVENT_NO_RUNTIME_PM bit of dev->flags in
    usbnet_stop(), but its value should be read before it is cleared
    when dev->flags is set to 0.
    
    The problem was spotted and the fix was provided by
    Oliver Neukum <oneukum@suse.de>.
    
    Signed-off-by: Eugene Shatokhin <eugene.shatokhin@rosalab.ru>
    Acked-by: Oliver Neukum <oneukum@suse.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
  5. Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel…

    authored
    …/git/jmorris/linux-security
    
    Pull LSM regression fix from James Morris.
    
    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
      LSM: restore certain default error codes
  6. Merge branch 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/…

    authored
    …kernel/git/nvdimm/nvdimm
    
    Pull nvdimm fix from Dan Williams:
     "A single fix for status register read size in the nd_blk driver.
    
      The effect of getting the width of this register read wrong is that
      all I/O fails when the read returns non-zero.  Given the availability
      of ACPI 6 NFIT enabled platforms, this could reasonably wait to come
      in during the 4.3 merge window with a tag for 4.2-stable.  Otherwise,
      this makes the 4.2 kernel fully functional with devices that conform
      to the mmio-block-apertures defined in the ACPI 6 NFIT (NVDIMM
      Firmware Interface Table)"
    
    * 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
      nfit, nd_blk: BLK status register is only 32 bits
  7. @isubrama @davem330

    drivers: net: xgene: fix: Oops in linkwatch_fire_event

    isubrama authored davem330 committed
    [ 1065.801569] Internal error: Oops: 96000006 [#1] SMP
    ...
    [ 1065.866655] Hardware name: AppliedMicro Mustang/Mustang, BIOS 1.1.0 Apr 22 2015
    [ 1065.873937] Workqueue: events_power_efficient phy_state_machine
    [ 1065.879837] task: fffffe01de105e80 ti: fffffe00bcf18000 task.ti: fffffe00bcf18000
    [ 1065.887288] PC is at linkwatch_fire_event+0xac/0xc0
    [ 1065.892141] LR is at linkwatch_fire_event+0xa0/0xc0
    [ 1065.896995] pc : [<fffffe000060284c>] lr : [<fffffe0000602840>] pstate: 200001c5
    [ 1065.904356] sp : fffffe00bcf1bd00
    ...
    [ 1066.196813] Call Trace:
    [ 1066.199248] [<fffffe000060284c>] linkwatch_fire_event+0xac/0xc0
    [ 1066.205140] [<fffffe000061167c>] netif_carrier_off+0x54/0x64
    [ 1066.210773] [<fffffe00004f1654>] phy_state_machine+0x120/0x3bc
    [ 1066.216578] [<fffffe00000d8d10>] process_one_work+0x15c/0x3a8
    [ 1066.222296] [<fffffe00000d9090>] worker_thread+0x134/0x470
    [ 1066.227757] [<fffffe00000df014>] kthread+0xe0/0xf8
    [ 1066.232525] Code: 97f65ee9 f9420660 d538d082 8b000042 (885f7c40)
    
    The fix is to call phy_disconnect() from xgene_enet_mdio_remove,
    which in turn call cancel_delayed_work_sync().
    
    Signed-off-by: Iyappan Subramanian <isubramanian@apm.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
  8. @congwang @davem330

    cls_u32: complete the check for non-forced case in u32_destroy()

    congwang authored davem330 committed
    In commit 1e052be ("net_sched: destroy proto tp when all filters are gone")
    I added a check in u32_destroy() to see if all real filters are gone
    for each tp, however, that is only done for root_ht, same is needed
    for others.
    
    This can be reproduced by the following tc commands:
    
    tc filter add dev eth0 parent 1:0 prio 5 handle 15: protocol ip u32 divisor 256
    tc filter add dev eth0 protocol ip parent 1: prio 5 handle 15:2:2 u32
    ht 15:2: match ip src 10.0.0.2 flowid 1:10
    tc filter add dev eth0 protocol ip parent 1: prio 5 handle 15:2:3 u32
    ht 15:2: match ip src 10.0.0.3 flowid 1:10
    
    Fixes: 1e052be ("net_sched: destroy proto tp when all filters are gone")
    Reported-by: Akshat Kakkar <akshat.1984@gmail.com>
    Cc: Jamal Hadi Salim <jhs@mojatatu.com>
    Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
    Signed-off-by: Cong Wang <cwang@twopensource.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
Commits on Aug 25, 2015
  1. @jbeulich

    LSM: restore certain default error codes

    jbeulich authored James Morris committed
    While in most cases commit b1d9e6b ("LSM: Switch to lists of hooks")
    retained previous error returns, in three cases it altered them without
    any explanation in the commit message. Restore all of them - in the
    security_old_inode_init_security() case this led to reiserfs using
    uninitialized data, sooner or later crashing the system (the only other
    user of this function - ocfs2 - was unaffected afaict, since it passes
    pre-initialized structures).
    
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Signed-off-by: Casey Schaufler <casey@schaufler-ca.com>
    Signed-off-by: James Morris <james.l.morris@oracle.com>
  2. @djbw

    nfit, nd_blk: BLK status register is only 32 bits

    Ross Zwisler authored djbw committed
    Only read 32 bits for the BLK status register in read_blk_stat().
    
    The format and size of this register is defined in the
    "NVDIMM Driver Writer's guide":
    
    http://pmem.io/documents/NVDIMM_Driver_Writers_Guide.pdf
    
    Signed-off-by: Ross Zwisler <ross.zwisler@linux.intel.com>
    Reported-by: Nicholas Moulin <nicholas.w.moulin@linux.intel.com>
    Tested-by: Nicholas Moulin <nicholas.w.moulin@linux.intel.com>
    Reviewed-by: Jeff Moyer <jmoyer@redhat.com>
    Signed-off-by: Dan Williams <dan.j.williams@intel.com>
  3. @davem330

    net: fec: use reinit_completion() in mdio accessor functions

    Russell King authored davem330 committed
    Rather than re-initialising the entire completion on every mdio access,
    use reinit_completion() which only resets the completion count.  This
    avoids possible reinitialisation of the contained spinlock and waitqueue
    while they may be in use (eg, mid-completion.)
    
    Such an event could occur if there's a long delay in interrupt handling
    causing the mdio accessor to time out, then a second access comes in
    while the interrupt handler on a different CPU has called complete().
    Another scenario where this has been observed is while locking has
    been missing at the phy layer, allowing concurrent attempts to access
    the MDIO bus.
    
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Signed-off-by: David S. Miller <davem@davemloft.net>
  4. @davem330

    net: phy: add locking to phy_read_mmd_indirect()/phy_write_mmd_indire…

    Russell King authored davem330 committed
    …ct()
    
    The phy layer is missing locking for the above two functions - it
    has been observed that two threads (userspace and the phy worker
    thread) can race, entering the bus ->write or ->read functions
    simultaneously.
    
    This causes the FEC driver to initialise a completion while another
    thread is waiting on it or while the interrupt is calling complete()
    on it, which causes spinlock unlock-without-lock, spinlock lockups,
    and completion timeouts.
    
    Fixes: a59a4d1 ("phy: add the EEE support and the way to access to the MMD registers.")
    Fixes: 0c1d77d ("net: libphy: Add phy specific function to access mmd phy registers")
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Acked-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
  5. @marceloleitner @davem330

    vxlan: re-ignore EADDRINUSE from igmp_join

    marceloleitner authored davem330 committed
    Before 56ef9c9[1] it used to ignore all errors from igmp_join().
    That commit enhanced that and made it error out whatever error happened
    with igmp_join(), but that's not good because when using multicast
    groups vxlan will try to join it multiple times if the socket is reused
    and then the 2nd and further attempts will fail with EADDRINUSE.
    
    As we don't track to which groups the socket is already subscribed, it's
    okay to just ignore that error.
    
    Fixes: 56ef9c9 ("vxlan: Move socket initialization to within rtnl scope")
    Reported-by: John Nielsen <lists@jnielsen.net>
    Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
  6. @davem330

    Merge tag 'linux-can-fixes-for-4.2-20150825' of git://git.kernel.org/…

    davem330 authored
    …pub/scm/linux/kernel/git/mkl/linux-can
    
    Marc Kleine-Budde says:
    
    ====================
    this is the updated pull request of one patch by me for the peak_usb
    driver. It fixes the driver, so that non FD adapters don't provide CAN
    FD bittimings.
    ====================
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
  7. @davem330

    net: compile renesas directory if NET_VENDOR_RENESAS is configured

    Kazuya Mizuguchi authored davem330 committed
    Currently the renesas ethernet driver directory is compiled if SH_ETH is
    configured rather than NET_VENDOR_RENESAS. Although incorrect that was
    quite harmless as until recently as SH_ETH configured the only driver in
    the renesas directory. However, as of c156633 ("Renesas Ethernet AVB
    driver proper") the renesas directory includes another driver, configured
    by RAVB, and it makes little sense for it to have a hidden dependency on
    SH_ETH.
    
    Signed-off-by: Kazuya Mizuguchi <kazuya.mizuguchi.ks@renesas.com>
    [horms: rewrote changelog]
    Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
    Signed-off-by: David S. Miller <davem@davemloft.net>
  8. @davem330

    ip6_gre: release cached dst on tunnel removal

    huaibin Wang authored davem330 committed
    When a tunnel is deleted, the cached dst entry should be released.
    
    This problem may prevent the removal of a netns (seen with a x-netns IPv6
    gre tunnel):
      unregister_netdevice: waiting for lo to become free. Usage count = 3
    
    CC: Dmitry Kozlov <xeb@mail.ru>
    Fixes: c12b395 ("gre: Support GRE over IPv6")
    Signed-off-by: huaibin Wang <huaibin.wang@6wind.com>
    Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
  9. @JeffMoyer @axboe

    mtip32x: fix regression introduced by blk-mq per-hctx flush

    JeffMoyer authored axboe committed
    Hi,
    
    After commit f70ced0 (blk-mq: support per-distpatch_queue flush
    machinery), the mtip32xx driver may oops upon module load due to walking
    off the end of an array in mtip_init_cmd.  On initialization of the
    flush_rq, init_request is called with request_index >= the maximum queue
    depth the driver supports.  For mtip32xx, this value is used to index
    into an array.  What this means is that the driver will walk off the end
    of the array, and either oops or cause random memory corruption.
    
    The problem is easily reproduced by doing modprobe/rmmod of the mtip32xx
    driver in a loop.  I can typically reproduce the problem in about 30
    seconds.
    
    Now, in the case of mtip32xx, it actually doesn't support flush/fua, so
    I think we can simply return without doing anything.  In addition, no
    other mq-enabled driver does anything with the request_index passed into
    init_request(), so no other driver is affected.  However, I'm not really
    sure what is expected of drivers.  Ming, what did you envision drivers
    would do when initializing the flush requests?
    
    Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
    Signed-off-by: Jens Axboe <axboe@fb.com>
  10. @axboe

    writeback: sync_inodes_sb() must write out I_DIRTY_TIME inodes and al…

    Tejun Heo authored axboe committed
    …ways call wait_sb_inodes()
    
    
    e797291 ("writeback: don't issue wb_writeback_work if clean")
    updated writeback path to avoid kicking writeback work items if there
    are no inodes to be written out; unfortunately, the avoidance logic
    was too aggressive and broke sync_inodes_sb().
    
    * sync_inodes_sb() must write out I_DIRTY_TIME inodes but I_DIRTY_TIME
      inodes dont't contribute to bdi/wb_has_dirty_io() tests and were
      being skipped over.
    
    * inodes are taken off wb->b_dirty/io/more_io lists after writeback
      starts on them.  sync_inodes_sb() skipping wait_sb_inodes() when
      bdi_has_dirty_io() breaks it by making it return while writebacks
      are in-flight.
    
    This patch fixes the breakages by
    
    * Removing bdi_has_dirty_io() shortcut from bdi_split_work_to_wbs().
      The callers are already testing the condition.
    
    * Removing bdi_has_dirty_io() shortcut from sync_inodes_sb() so that
      it always calls into bdi_split_work_to_wbs() and wait_sb_inodes().
    
    * Making bdi_split_work_to_wbs() consider the b_dirty_time list for
      WB_SYNC_ALL writebacks.
    
    Kudos to Eryu, Dave and Jan for tracking down the issue.
    
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Fixes: e797291 ("writeback: don't issue wb_writeback_work if clean")
    Link: http://lkml.kernel.org/g/20150812101204.GE17933@dhcp-13-216.nay.redhat.com
    Reported-and-bisected-by: Eryu Guan <eguan@redhat.com>
    Cc: Dave Chinner <david@fromorbit.com>
    Cc: Jan Kara <jack@suse.com>
    Cc: Ted Ts'o <tytso@google.com>
    Signed-off-by: Jens Axboe <axboe@fb.com>
  11. @davem330

    phylib: Make PHYs children of their MDIO bus, not the bus' parent.

    David Daney authored davem330 committed
    commit 18ee49d ("phylib: rename mii_bus::dev to mii_bus::parent")
    changed the parent of PHY devices from the bus to the bus parent.
    
    Then, commit 4dea547 ("phylib: rework to prepare for OF
    registration of PHYs") moved the code into phy_device.c
    
    At this point, it is somewhat unclear why the change was seen as
    necessary.  But, when we look at the device model tree in
    /sys/devices, it is clearly incorrect.  The PHYs should be children of
    their MDIO bus.
    
    Change the PHY's parent device to be the MDIO bus device.
    
    Cc: Lennert Buytenhek <buytenh@wantstofly.org>
    Cc: Grant Likely <grant.likely@secretlab.ca>
    Signed-off-by: David Daney <david.daney@cavium.com>
    Acked-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
  12. Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/l…

    authored
    …inux/kernel/git/tip/tip
    
    Pull x86 fix from Thomas Gleixner:
     "A single fix for a APIC regression introduced in 4.0 which went
      undetected until now.
    
      I screwed up the x2apic cleanup in a subtle way.  The screwup is only
      visible on systems which have x2apic preenabled in the BIOS and need
      to disable it during boot"
    
    * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
      x86/apic: Fix fallout from x2apic cleanup
  13. @marckleinebudde

    can: pcan_usb: don't provide CAN FD bittimings by non-FD adapters

    marckleinebudde authored
    The CAN FD data bittiming constants are provided via netlink only when there
    are valid CAN FD constants available in priv->data_bittiming_const.
    
    Due to the indirection of pointer assignments in the peak_usb driver the
    priv->data_bittiming_const never becomes NULL - not even for non-FD adapters.
    
    The data_bittiming_const points to zero'ed data which leads to this result
    when running 'ip -details link show can0':
    
    35: can0: <NOARP,ECHO> mtu 16 qdisc noop state DOWN mode DEFAULT group default qlen 10
        link/can  promiscuity 0
        can state STOPPED restart-ms 0
    	  pcan_usb: tseg1 1..16 tseg2 1..8 sjw 1..4 brp 1..64 brp-inc 1
    	  : dtseg1 0..0 dtseg2 0..0 dsjw 1..0 dbrp 0..0 dbrp-inc 0  <== BROKEN!
    	  clock 8000000
    
    This patch changes the struct peak_usb_adapter::bittiming_const and struct
    peak_usb_adapter::data_bittiming_const to pointers to fix the assignemnt
    problems.
    
    Cc: linux-stable <stable@vger.kernel.org> # >= 4.0
    Reported-by: Oliver Hartkopp <socketcan@hartkopp.net>
    Tested-by: Oliver Hartkopp <socketcan@hartkopp.net>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Commits on Aug 24, 2015
  1. nfsd: Add Jeff Layton as co-maintainer

    J. Bruce Fields authored committed
    Jeff has been doing a lot of development (including much of the
    state-locking rewrite just as one example) plus lots of review and other
    miscellaneous nfsd work, so let's acknowledge the status quo.
    
    I'll continue to be the one to send regular pull requests but Jeff will
    should be available to cover there occasionally too.
    
    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  2. @davem330

    net: Fix RCU splat in af_key

    David Ahern authored davem330 committed
    Hit the following splat testing VRF change for ipsec:
    
    [  113.475692] ===============================
    [  113.476194] [ INFO: suspicious RCU usage. ]
    [  113.476667] 4.2.0-rc6-1+deb7u2+clUNRELEASED #3.2.65-1+deb7u2+clUNRELEASED Not tainted
    [  113.477545] -------------------------------
    [  113.478013] /work/monster-14/dsa/kernel.git/include/linux/rcupdate.h:568 Illegal context switch in RCU read-side critical section!
    [  113.479288]
    [  113.479288] other info that might help us debug this:
    [  113.479288]
    [  113.480207]
    [  113.480207] rcu_scheduler_active = 1, debug_locks = 1
    [  113.480931] 2 locks held by setkey/6829:
    [  113.481371]  #0:  (&net->xfrm.xfrm_cfg_mutex){+.+.+.}, at: [<ffffffff814e9887>] pfkey_sendmsg+0xfb/0x213
    [  113.482509]  #1:  (rcu_read_lock){......}, at: [<ffffffff814e767f>] rcu_read_lock+0x0/0x6e
    [  113.483509]
    [  113.483509] stack backtrace:
    [  113.484041] CPU: 0 PID: 6829 Comm: setkey Not tainted 4.2.0-rc6-1+deb7u2+clUNRELEASED #3.2.65-1+deb7u2+clUNRELEASED
    [  113.485422] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.7.5.1-0-g8936dbb-20141113_115728-nilsson.home.kraxel.org 04/01/2014
    [  113.486845]  0000000000000001 ffff88001d4c7a98 ffffffff81518af2 ffffffff81086962
    [  113.487732]  ffff88001d538480 ffff88001d4c7ac8 ffffffff8107ae75 ffffffff8180a154
    [  113.488628]  0000000000000b30 0000000000000000 00000000000000d0 ffff88001d4c7ad8
    [  113.489525] Call Trace:
    [  113.489813]  [<ffffffff81518af2>] dump_stack+0x4c/0x65
    [  113.490389]  [<ffffffff81086962>] ? console_unlock+0x3d6/0x405
    [  113.491039]  [<ffffffff8107ae75>] lockdep_rcu_suspicious+0xfa/0x103
    [  113.491735]  [<ffffffff81064032>] rcu_preempt_sleep_check+0x45/0x47
    [  113.492442]  [<ffffffff8106404d>] ___might_sleep+0x19/0x1c8
    [  113.493077]  [<ffffffff81064268>] __might_sleep+0x6c/0x82
    [  113.493681]  [<ffffffff81133190>] cache_alloc_debugcheck_before.isra.50+0x1d/0x24
    [  113.494508]  [<ffffffff81134876>] kmem_cache_alloc+0x31/0x18f
    [  113.495149]  [<ffffffff814012b5>] skb_clone+0x64/0x80
    [  113.495712]  [<ffffffff814e6f71>] pfkey_broadcast_one+0x3d/0xff
    [  113.496380]  [<ffffffff814e7b84>] pfkey_broadcast+0xb5/0x11e
    [  113.497024]  [<ffffffff814e82d1>] pfkey_register+0x191/0x1b1
    [  113.497653]  [<ffffffff814e9770>] pfkey_process+0x162/0x17e
    [  113.498274]  [<ffffffff814e9895>] pfkey_sendmsg+0x109/0x213
    
    In pfkey_sendmsg the net mutex is taken and then pfkey_broadcast takes
    the RCU lock.
    
    Since pfkey_broadcast takes the RCU lock the allocation argument is
    pointless since GFP_ATOMIC must be used between the rcu_read_{,un}lock.
    The one call outside of rcu can be done with GFP_KERNEL.
    
    Fixes: 7f6b9db ("af_key: locking change")
    Signed-off-by: David Ahern <dsa@cumulusnetworks.com>
    Acked-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
  3. @jaedon @davem330

    net: bcmgenet: fix uncleaned dma flags

    jaedon authored davem330 committed
    Clean the dma flags of multiq ring buffer int the interface stop
    process. This patch fixes that the genet is not running while the
    interface is re-enabled.
    
    $ ifup eth0 - running after booting
    $ ifdown eth0
    $ ifup eth0 - not running and occur tx_timeout
    
    The bcmgenet_dma_disable() in bcmgenet_open() do clean ring16 dma flag
    only. If the genet has multiq, the dma register is not cleaned. and
    bcmgenet_init_dma() is not done correctly. in case
    GENET_V2(tx_queues=4), tdma_ctrl has 0x1e after running
    bcmgenet_dma_disable().
    
    Signed-off-by: Jaedon Shin <jaedon.shin@gmail.com>
    Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
  4. @ffainelli @davem330

    net: bcmgenet: Avoid sleeping in bcmgenet_timeout

    ffainelli authored davem330 committed
    bcmgenet_timeout() executes in atomic context, yet we will invoke
    napi_disable() which does sleep. Looking back at the changes, disabling
    TX napi and re-enabling it is completely useless, since we reclaim all
    TX buffers and re-enable interrupts, and wake up the TX queues.
    
    Fixes: 13ea657 ("net: bcmgenet: improve TX timeout")
    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
Something went wrong with that request. Please try again.