1. 05 12月, 2014 5 次提交
  2. 04 12月, 2014 11 次提交
  3. 21 11月, 2014 6 次提交
  4. 20 11月, 2014 8 次提交
    • G
      of/selftest: Fix testing when /aliases is missing · 788ec2fc
      Grant Likely 提交于
      The /aliases node isn't always present in the device tree, but the
      unittest code assumes that /aliases is there. Add a check when inserting
      the testcase data to see if of_aliases needs to be updated, and undo the
      settings when the nodes are removed.
      Signed-off-by: NGrant Likely <grant.likely@linaro.org>
      Cc: Rob Herring <robh+dt@kernel.org>
      Cc: Gaurav Minocha <gaurav.minocha.os@gmail.com>
      Cc: <stable@vger.kernel.org>
      788ec2fc
    • C
      IB/isert: Adjust CQ size to HW limits · b1a5ad00
      Chris Moore 提交于
      isert has an issue of trying to create a CQ with more CQEs than are
      supported by the hardware, that currently results in failures during
      isert_device creation during first session login.
      
      This is the isert version of the patch that Minh Tran submitted for
      iser, and is simple a workaround required to function with existing
      ocrdma hardware.
      Signed-off-by: NChris Moore <chris.moore@emulex.com>
      Reviewied-by: NSagi Grimberg <sagig@mellanox.com>
      Cc: <stable@vger.kernel.org> # 3.10+
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      b1a5ad00
    • R
      ACPI / PM: Ignore wakeup setting if the ACPI companion can't wake up · 78579b7c
      Rafael J. Wysocki 提交于
      As reported by Dmitry, on some Chromebooks there are devices with
      corresponding ACPI objects and with unusual system wakeup
      configuration.  Namely, they technically are wakeup-capable, but the
      wakeup is handled via a platform-specific out-of-band mechanism and
      the ACPI PM layer has no information on the wakeup capability.  As
      a result, device_may_wakeup(dev) called from acpi_dev_suspend_late()
      returns 'true' for those devices, but the wakeup.flags.valid flag is
      unset for the corresponding ACPI device objects, so acpi_device_wakeup()
      reproducibly fails for them causing acpi_dev_suspend_late() to return
      an error code.  The entire system suspend is then aborted and the
      machines in question cannot suspend at all.
      
      Address the problem by ignoring the device_may_wakeup(dev) return
      value in acpi_dev_suspend_late() if the ACPI companion of the device
      being handled has wakeup.flags.valid unset (in which case it is clear
      that the wakeup is supposed to be handled by other means).
      
      This fixes a regression introduced by commit a76e9bd8 (i2c:
      attach/detach I2C client device to the ACPI power domain) as the
      affected systems could suspend and resume successfully before that
      commit.
      
      Fixes: a76e9bd8 (i2c: attach/detach I2C client device to the ACPI power domain)
      Reported-by: NDmitry Torokhov <dtor@chromium.org>
      Reviewed-by: NDmitry Torokhov <dtor@chromium.org>
      Cc: 3.13+ <stable@vger.kernel.org> # 3.13+
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      78579b7c
    • A
      cxgb4i : Don't block unload/cxgb4 unload when remote closes TCP connection · ee7255ad
      Anish Bhatt 提交于
      cxgb4i was returning wrong error and not releasing module reference if remote
      end abruptly closed TCP connection. This prevents the cxgb4 network module from
      being unloaded, further affecting other network drivers dependent on cxgb4
      
      Sending to net as this affects all cxgb4 based network drivers.
      Signed-off-by: NAnish Bhatt <anish@chelsio.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ee7255ad
    • Y
      PCI: Support 64-bit bridge windows if we have 64-bit dma_addr_t · 7fc986d8
      Yinghai Lu 提交于
      Aaron reported that a 32-bit x86 kernel with Physical Address Extension
      (PAE) support complains about bridge prefetchable memory windows above 4GB:
      
        pci_bus 0000:00: root bus resource [mem 0x380000000000-0x383fffffffff]
        ...
        pci 0000:03:00.0: reg 0x10: [mem 0x383fffc00000-0x383fffdfffff 64bit pref]
        pci 0000:03:00.0: reg 0x20: [mem 0x383fffe04000-0x383fffe07fff 64bit pref]
        pci 0000:03:00.1: reg 0x10: [mem 0x383fffa00000-0x383fffbfffff 64bit pref]
        pci 0000:03:00.1: reg 0x20: [mem 0x383fffe00000-0x383fffe03fff 64bit pref]
        pci 0000:00:02.2: PCI bridge to [bus 03-04]
        pci 0000:00:02.2:   bridge window [io  0x1000-0x1fff]
        pci 0000:00:02.2:   bridge window [mem 0x91900000-0x91cfffff]
        pci 0000:00:02.2: can't handle 64-bit address space for bridge
      
      In this kernel, unsigned long is 32 bits and dma_addr_t is 64 bits.
      Previously we used "unsigned long" to hold the bridge window address.  But
      this is a bus address, so we should use dma_addr_t instead.
      
      Use dma_addr_t to hold the bridge window base and limit.
      
      The question of whether the CPU can actually *address* the window is
      separate and depends on what the physical address space of the CPU is and
      whether the host bridge does any address translation.
      
      [bhelgaas: fix "shift count > width of type", changelog, stable tag]
      Fixes: d56dbf5b ("PCI: Allocate 64-bit BARs above 4G when possible")
      Link: https://bugzilla.kernel.org/show_bug.cgi?id=88131Reported-by: NAaron Ma <mapengyu@gmail.com>
      Tested-by: NAaron Ma <mapengyu@gmail.com>
      Signed-off-by: NYinghai Lu <yinghai@kernel.org>
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      CC: stable@vger.kernel.org	# v3.14+
      7fc986d8
    • O
      net/mlx4_en: Add VXLAN ndo calls to the PF net device ops too · 9737c6ab
      Or Gerlitz 提交于
      This is currently missing, which results in a crash when one attempts
      to set VXLAN tunnel over the mlx4_en when acting as PF.
      
      	[ 2408.785472] BUG: unable to handle kernel NULL pointer dereference at (null)
      	[...]
      	[ 2408.994104] Call Trace:
      	[ 2408.996584]  [<ffffffffa021f7f5>] ? vxlan_get_rx_port+0xd6/0x103 [vxlan]
      	[ 2409.003316]  [<ffffffffa021f71f>] ? vxlan_lowerdev_event+0xf2/0xf2 [vxlan]
      	[ 2409.010225]  [<ffffffffa0630358>] mlx4_en_start_port+0x862/0x96a [mlx4_en]
      	[ 2409.017132]  [<ffffffffa063070f>] mlx4_en_open+0x17f/0x1b8 [mlx4_en]
      
      While here, make sure to invoke vxlan_get_rx_port() only when VXLAN
      offloads are actually enabled and not when they are only supported.
      Reported-by: NIdo Shamay <idos@mellanox.com>
      Signed-off-by: NOr Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9737c6ab
    • N
      bonding: fix curr_active_slave/carrier with loadbalance arp monitoring · b8e4500f
      Nikolay Aleksandrov 提交于
      Since commit 6fde8f03 ("bonding: fix locking in
      bond_loadbalance_arp_mon()") we can have a stale bond carrier state and
      stale curr_active_slave when using arp monitoring in loadbalance modes. The
      reason is that in bond_loadbalance_arp_mon() we can't have
      do_failover == true but slave_state_changed == false, whenever do_failover
      is true then slave_state_changed is also true. Then the following piece
      from bond_loadbalance_arp_mon():
                      if (slave_state_changed) {
                              bond_slave_state_change(bond);
                              if (BOND_MODE(bond) == BOND_MODE_XOR)
                                      bond_update_slave_arr(bond, NULL);
                      } else if (do_failover) {
                              block_netpoll_tx();
                              bond_select_active_slave(bond);
                              unblock_netpoll_tx();
                      }
      
      will execute only the first branch, always and regardless of do_failover.
      Since these two events aren't related in such way, we need to decouple and
      consider them separately.
      
      For example this issue could lead to the following result:
      Bonding Mode: load balancing (round-robin)
      *MII Status: down*
      MII Polling Interval (ms): 0
      Up Delay (ms): 0
      Down Delay (ms): 0
      ARP Polling Interval (ms): 100
      ARP IP target/s (n.n.n.n form): 192.168.9.2
      
      Slave Interface: ens12
      *MII Status: up*
      Speed: 10000 Mbps
      Duplex: full
      Link Failure Count: 2
      Permanent HW addr: 00:0f:53:01:42:2c
      Slave queue ID: 0
      
      Slave Interface: eth1
      *MII Status: up*
      Speed: Unknown
      Duplex: Unknown
      Link Failure Count: 70
      Permanent HW addr: 52:54:00:2f:0f:8e
      Slave queue ID: 0
      
      Since some interfaces are up, then the status of the bond should also be
      up, but it will never change unless something invokes bond_set_carrier()
      (i.e. enslave, bond_select_active_slave etc). Now, if I force the
      calling of bond_select_active_slave via for example changing
      primary_reselect (it can change in any mode), then the MII status goes to
      "up" because it calls bond_select_active_slave() which should've been done
      from bond_loadbalance_arp_mon() itself.
      
      CC: Veaceslav Falico <vfalico@gmail.com>
      CC: Jay Vosburgh <j.vosburgh@gmail.com>
      CC: Andy Gospodarek <andy@greyhouse.net>
      CC: Ding Tianhong <dingtianhong@huawei.com>
      
      Fixes: 6fde8f03 ("bonding: fix locking in bond_loadbalance_arp_mon()")
      Signed-off-by: NNikolay Aleksandrov <nikolay@redhat.com>
      Acked-by: NVeaceslav Falico <vfalico@gmail.com>
      Acked-by: NAndy Gospodarek <gospo@cumulusnetworks.com>
      Acked-by: NDing Tianhong <dingtianhong@huawei.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b8e4500f
    • G
      of/selftest: Fix off-by-one error in removal path · c1a2086e
      Grant Likely 提交于
      The removal path for selftest data has an off by one error that causes
      the code to dereference beyond the end of the nodes[] array on the first
      pass through. The old code only worked by chance on a lot of platforms,
      but the bug was recently exposed on aarch64.
      
      The fix is simple. Decrement the node count before dereferencing, not
      after.
      Reported-by: NKevin Hilman <khilman@linaro.org>
      Cc: Rob Herring <robh+dt@kernel.org>
      Cc: Gaurav Minocha <gaurav.minocha.os@gmail.com>
      Cc: <stable@vger.kernel.org> # v3.17+
      c1a2086e
  5. 19 11月, 2014 10 次提交
    • M
      clockevent: sun4i: Fix race condition in the probe code · 6bab4a8a
      Maxime Ripard 提交于
      The interrupts were activated and the handler registered before the clockevent
      was registered in the probe function.
      
      The interrupt handler, however, was making the assumption that the clockevent
      device was registered.
      
      That could cause a null pointer dereference if the timer interrupt was firing
      during this narrow window.
      
      Fix that by moving the clockevent registration before the interrupt is enabled.
      Reported-by: NRoman Byshko <rbyshko@gmail.com>
      Signed-off-by: NMaxime Ripard <maxime.ripard@free-electrons.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: NDaniel Lezcano <daniel.lezcano@linaro.org>
      6bab4a8a
    • J
      vxlan: Inline vxlan_gso_check(). · 11bf7828
      Joe Stringer 提交于
      Suggested-by: NOr Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: NJoe Stringer <joestringer@nicira.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      11bf7828
    • D
      can: m_can: update to support CAN FD features · 80646733
      Dong Aisheng 提交于
      Bosch M_CAN is CAN FD capable device. This patch implements the CAN
      FD features include up to 64 bytes payload and bitrate switch function.
      1) Change the Rx FIFO and Tx Buffer to 64 bytes for support CAN FD
         up to 64 bytes payload. It's backward compatible with old 8 bytes
         normal CAN frame.
      2) Allocate can frame or canfd frame based on EDL bit
      3) Bitrate Switch function is disabled by default and will be enabled
         according to CANFD_BRS bit in cf->flags.
      Acked-by: NOliver Hartkopp <socketcan@hartkopp.net>
      Signed-off-by: NDong Aisheng <b29396@freescale.com>
      Signed-off-by: NMarc Kleine-Budde <mkl@pengutronix.de>
      80646733
    • D
      can: m_can: fix incorrect error messages · a93f5cae
      Dong Aisheng 提交于
      Fix a few error messages.
      Signed-off-by: NDong Aisheng <b29396@freescale.com>
      Signed-off-by: NMarc Kleine-Budde <mkl@pengutronix.de>
      a93f5cae
    • D
      can: m_can: add missing delay after setting CCCR_INIT bit · 7660f633
      Dong Aisheng 提交于
      The spec mentions there may be a delay until the value written to INIT can be
      read back due to the synchronization mechanism between the two clock domains.
      But it does not indicate the exact clock cycles needed. The 5us delay is a
      test value and seems ok.
      
      Without the delay, CCCR.CCE bit may fail to be set and then the initialization
      fail sometimes when do repeatly up and down.
      Signed-off-by: NDong Aisheng <b29396@freescale.com>
      Signed-off-by: NMarc Kleine-Budde <mkl@pengutronix.de>
      7660f633
    • D
      can: m_can: fix not set can_dlc for remote frame · 921f1681
      Dong Aisheng 提交于
      The original code missed to set the cf->can_dlc in the RTR case, so add it.
      Signed-off-by: NDong Aisheng <b29396@freescale.com>
      Signed-off-by: NMarc Kleine-Budde <mkl@pengutronix.de>
      921f1681
    • D
      can: m_can: fix possible sleep in napi poll · f6a99649
      Dong Aisheng 提交于
      The m_can_get_berr_counter function can sleep and it may be called in napi poll
      function. Rework it to fix the following warning.
      
      root@imx6qdlsolo:~# cangen can0 -f -L 12 -D 112233445566778899001122
      [ 1846.017565] m_can 20e8000.can can0: entered error warning state
      [ 1846.023551] ------------[ cut here ]------------
      [ 1846.028216] WARNING: CPU: 0 PID: 560 at kernel/locking/mutex.c:867 mutex_trylock+0x218/0x23c()
      [ 1846.036889] DEBUG_LOCKS_WARN_ON(in_interrupt())
      [ 1846.041263] Modules linked in:
      [ 1846.044594] CPU: 0 PID: 560 Comm: cangen Not tainted 3.17.0-rc4-next-20140915-00010-g032d018-dirty #477
      [ 1846.054033] Backtrace:
      [ 1846.056557] [<80012448>] (dump_backtrace) from [<80012728>] (show_stack+0x18/0x1c)
      [ 1846.064180]  r6:809a07ec r5:809a07ec r4:00000000 r3:00000000
      [ 1846.069966] [<80012710>] (show_stack) from [<806c9ee0>] (dump_stack+0x8c/0xa4)
      [ 1846.077264] [<806c9e54>] (dump_stack) from [<8002aa78>] (warn_slowpath_common+0x70/0x94)
      [ 1846.085403]  r6:806cd1b0 r5:00000009 r4:be1d5c20 r3:be07b0c0
      [ 1846.091204] [<8002aa08>] (warn_slowpath_common) from [<8002aad4>] (warn_slowpath_fmt+0x38/0x40)
      [ 1846.099951]  r8:8119106c r7:80515aa4 r6:be027000 r5:00000001 r4:809d1df4
      [ 1846.106830] [<8002aaa0>] (warn_slowpath_fmt) from [<806cd1b0>] (mutex_trylock+0x218/0x23c)
      [ 1846.115141]  r3:80851c88 r2:8084fb74
      [ 1846.118804] [<806ccf98>] (mutex_trylock) from [<80515aa4>] (clk_prepare_lock+0x14/0xf4)
      [ 1846.126859]  r8:00000040 r7:be1d5cec r6:be027000 r5:be255800 r4:be027000
      [ 1846.133737] [<80515a90>] (clk_prepare_lock) from [<80517660>] (clk_prepare+0x14/0x2c)
      [ 1846.141583]  r5:be255800 r4:be027000
      [ 1846.145272] [<8051764c>] (clk_prepare) from [<8041ff14>] (m_can_get_berr_counter+0x20/0xd4)
      [ 1846.153672]  r4:be255800 r3:be07b0c0
      [ 1846.157325] [<8041fef4>] (m_can_get_berr_counter) from [<80420428>] (m_can_poll+0x310/0x8fc)
      [ 1846.165809]  r7:bd4dc540 r6:00000744 r5:11300000 r4:be255800
      [ 1846.171590] [<80420118>] (m_can_poll) from [<8056a468>] (net_rx_action+0xcc/0x1b4)
      [ 1846.179204]  r10:00000101 r9:be255ebc r8:00000040 r7:be7c3208 r6:8097c100 r5:be7c3200
      [ 1846.187192]  r4:0000012c
      [ 1846.189779] [<8056a39c>] (net_rx_action) from [<8002deec>] (__do_softirq+0xfc/0x2c4)
      [ 1846.197568]  r10:00000101 r9:8097c088 r8:00000003 r7:8097c080 r6:40000001 r5:8097c08c
      [ 1846.205559]  r4:00000020
      [ 1846.208144] [<8002ddf0>] (__do_softirq) from [<8002e194>] (do_softirq+0x7c/0x88)
      [ 1846.215588]  r10:00000000 r9:bd516a60 r8:be18ce00 r7:00000000 r6:be255800 r5:8056c0ec
      [ 1846.223578]  r4:60000093
      [ 1846.226163] [<8002e118>] (do_softirq) from [<8002e288>] (__local_bh_enable_ip+0xe8/0x10c)
      [ 1846.234386]  r4:00000200 r3:be1d4000
      [ 1846.238036] [<8002e1a0>] (__local_bh_enable_ip) from [<8056c108>] (__dev_queue_xmit+0x314/0x6b0)
      [ 1846.246868]  r6:be255800 r5:bd516a00 r4:00000000 r3:be07b0c0
      [ 1846.252645] [<8056bdf4>] (__dev_queue_xmit) from [<8056c4b8>] (dev_queue_xmit+0x14/0x18)
      Signed-off-by: NDong Aisheng <b29396@freescale.com>
      Signed-off-by: NMarc Kleine-Budde <mkl@pengutronix.de>
      f6a99649
    • D
      can: m_can: add missing message RAM initialization · 962845da
      Dong Aisheng 提交于
      The M_CAN message RAM is usually equipped with a parity or ECC functionality.
      But RAM cells suffer a hardware reset and can therefore hold arbitrary content
      at startup - including parity and/or ECC bits.
      
      To prevent the M_CAN controller detecting checksum errors when reading
      potentially uninitialized TX message RAM content to transmit CAN frames the TX
      message RAM has to be written with (any kind of) initial data.
      Signed-off-by: NDong Aisheng <b29396@freescale.com>
      Signed-off-by: NMarc Kleine-Budde <mkl@pengutronix.de>
      962845da
    • D
      can: m_can: add CONFIG_HAS_IOMEM dependence · efe22286
      David Cohen 提交于
      m_can uses io memory which makes it not compilable on architectures
      without HAS_IOMEM such as UML:
      
      drivers/built-in.o: In function `m_can_plat_probe':
      m_can.c:(.text+0x218cc5): undefined reference to `devm_ioremap_resource'
      m_can.c:(.text+0x218df9): undefined reference to `devm_ioremap'
      Signed-off-by: NDavid Cohen <david.a.cohen@linux.intel.com>
      Signed-off-by: NMarc Kleine-Budde <mkl@pengutronix.de>
      efe22286
    • D
      can: m_can: add .ndo_change_mtu function · d6fdb38b
      Dong Aisheng 提交于
      Use common can_change_mtu function.
      Signed-off-by: NDong Aisheng <b29396@freescale.com>
      Signed-off-by: NMarc Kleine-Budde <mkl@pengutronix.de>
      d6fdb38b