1. 09 10月, 2014 16 次提交
  2. 08 10月, 2014 10 次提交
    • L
      Fix up missing dmaengine header inclusion from qce crypto engine · f89f4a06
      Linus Torvalds 提交于
      Commit 7bced397 ("net_dma: simple removal") removed the long-dead
      net_dma code, but unintentionally broke the build for the qualcomm
      crypto engine (qce) that had accidentally depended on the inclusion of
      <linux/dmaengine.h> through the networking header files that used to
      have it.
      
      Add the required dmaengine.h include explicitly to fix the breakage.
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      f89f4a06
    • T
      ipmi: Clear drvdata when interface is removed · 567eded9
      Takao Indoh 提交于
      This patch fixes a bug on hotmod removing.
      
      After ipmi interface is removed using hotmod, kernel panic occurs when
      rmmod impi_si.  For example, try this:
      
       # echo "remove,"`cat /proc/ipmi/0/params` > \
       /sys/module/ipmi_si/parameters/hotmod
       # rmmod ipmi_si
      
      Then, rmmod fails with the following messages.
      
        ------------[ cut here ]------------
        WARNING: CPU: 12 PID: 10819 at /mnt/repos/linux/lib/list_debug.c:53 __list_del_entry+0x63/0xd0()
        CPU: 12 PID: 10819 Comm: rmmod Not tainted 3.17.0-rc1 #19
        Hardware name: FUJITSU-SV PRIMERGY BX920 S2/D3030, BIOS 080015 Rev.3D81.3030 02/10/2012
        Call Trace:
          dump_stack+0x45/0x56
          warn_slowpath_common+0x7d/0xa0
          warn_slowpath_fmt+0x4c/0x50
          __list_del_entry+0x63/0xd0
          list_del+0xd/0x30
          cleanup_one_si+0x2a/0x230 [ipmi_si]
          ipmi_pnp_remove+0x15/0x20 [ipmi_si]
          pnp_device_remove+0x24/0x40
          __device_release_driver+0x7f/0xf0
          driver_detach+0xb0/0xc0
          bus_remove_driver+0x55/0xd0
          driver_unregister+0x2c/0x50
          pnp_unregister_driver+0x12/0x20
          cleanup_ipmi_si+0xbc/0xf0 [ipmi_si]
          SyS_delete_module+0x132/0x1c0
          system_call_fastpath+0x16/0x1b
        ---[ end trace 70b4377268f85c23 ]---
      
      list_del in cleanup_one_si() fails because the smi_info is already
      removed when hotmod removing.
      
      When ipmi interface is removed by hotmod, smi_info is removed by
      cleanup_one_si(), but is is still set in drvdata.  Therefore when rmmod
      ipmi_si, ipmi_pnp_remove tries to remove it again and fails.
      
      By this patch, a pointer to smi_info in drvdata is cleared when hotmod
      removing so that it will be not accessed when rmmod.
      
      changelog:
      v2:
      - Clear drvdata in cleanup_one_si
      - Change subject
      
      v1:
      https://lkml.org/lkml/2014/9/8/741Signed-off-by: NTakao Indoh <indou.takao@jp.fujitsu.com>
      Signed-off-by: NCorey Minyard <cminyard@mvista.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      567eded9
    • A
      ipmi: work around gcc-4.9 build warning · cc4cbe90
      Arnd Bergmann 提交于
      Building ipmi on arm with gcc-4.9 results in this warning for an
      allmodconfig build:
      
        drivers/char/ipmi/ipmi_si_intf.c: In function 'ipmi_thread':
        include/linux/time.h:28:5: warning: 'busy_until.tv_sec' may be used uninitialized in this function [-Wmaybe-uninitialized]
          if (lhs->tv_sec > rhs->tv_sec)
             ^
        drivers/char/ipmi/ipmi_si_intf.c:1007:18: note: 'busy_until.tv_sec' was declared here
          struct timespec busy_until;
                          ^
      
      The warning is bogus and this case can not occur.  Apparently this is a
      false positive resulting from gcc getting a little smarter about
      tracking assignments but not smart enough.
      
      Marking the ipmi_thread_busy_wait function as inline gives the gcc
      optimization logic enough information to figure out for itself that the
      case cannot happen, which gets rid of the warning without adding any
      fake initialization.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Signed-off-by: NCorey Minyard <cminyard@mvista.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      cc4cbe90
    • B
      ipmi/of: Don't use unavailable interfaces · 08dc4169
      Benjamin Herrenschmidt 提交于
      If an IPMI controller is used by the firmware and as such marked with
      a reserved status, we shouldn't use it.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NCorey Minyard <cminyard@mvista.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      08dc4169
    • C
      ipmi: Clean up the error handling for channel config errors · 1f668423
      Corey Minyard 提交于
      The code to send the channel config errors was missing an error report
      in one place and needed some more information in another, and had an
      extraneous bit of code.  Clean all that up.
      Signed-off-by: NCorey Minyard <cminyard@mvista.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      1f668423
    • E
      net: better IFF_XMIT_DST_RELEASE support · 02875878
      Eric Dumazet 提交于
      Testing xmit_more support with netperf and connected UDP sockets,
      I found strange dst refcount false sharing.
      
      Current handling of IFF_XMIT_DST_RELEASE is not optimal.
      
      Dropping dst in validate_xmit_skb() is certainly too late in case
      packet was queued by cpu X but dequeued by cpu Y
      
      The logical point to take care of drop/force is in __dev_queue_xmit()
      before even taking qdisc lock.
      
      As Julian Anastasov pointed out, need for skb_dst() might come from some
      packet schedulers or classifiers.
      
      This patch adds new helper to cleanly express needs of various drivers
      or qdiscs/classifiers.
      
      Drivers that need skb_dst() in their ndo_start_xmit() should call
      following helper in their setup instead of the prior :
      
      	dev->priv_flags &= ~IFF_XMIT_DST_RELEASE;
      ->
      	netif_keep_dst(dev);
      
      Instead of using a single bit, we use two bits, one being
      eventually rebuilt in bonding/team drivers.
      
      The other one, is permanent and blocks IFF_XMIT_DST_RELEASE being
      rebuilt in bonding/team. Eventually, we could add something
      smarter later.
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Cc: Julian Anastasov <ja@ssi.bg>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      02875878
    • E
      net/mlx4_en: remove NETDEV_TX_BUSY · fe971b95
      Eric Dumazet 提交于
      Drivers should avoid NETDEV_TX_BUSY as much as possible.
      
      They should stop the tx queue before qdisc even tries to push another
      packet, to avoid requeues.
      
      For a driver supporting skb->xmit_more, this is likely to be a prereq
      anyway, otherwise we could have a tx deadlock : We need to force a
      doorbell if TX ring is full.
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Acked-by: NAmir Vadai <amirv@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      fe971b95
    • S
      3c59x: fix bad split of cpu_to_le32(pci_map_single()) · 88b09a6d
      Sylvain "ythier" Hitier 提交于
      In commit 6f2b6a30,
        # 3c59x: Add dma error checking and recovery
      the intent is to split out the mapping from the byte-swapping in order to
      insert a dma_mapping_error() check.
      
      Kinda this semantic patch:
      
          // See http://coccinelle.lip6.fr/
          //
          // Beware, grouik-and-dirty!
          @@
          expression DEV, X, Y, Z;
          @@
          -   cpu_to_le32(pci_map_single(DEV, X, Y, Z))
          +   dma_addr_t addr = pci_map_single(DEV, X, Y, Z);
          +   if (dma_mapping_error(&DEV->dev, addr))
          +       /* snip */;
          +   cpu_to_le32(addr)
      
      However, the #else part (of the #if DO_ZEROCOPY test) is changed this way:
      
          -   cpu_to_le32(pci_map_single(DEV, X, Y, Z))
          +   dma_addr_t addr = cpu_to_le32(pci_map_single(DEV, X, Y, Z));
          //                    ^^^^^^^^^^^
          //                    That mismatches the 3 other changes!
          +   if (dma_mapping_error(&DEV->dev, addr))
          +       /* snip */;
          +   cpu_to_le32(addr)
      
      Let's remove the leftover cpu_to_le32() for coherency.
      
      v2: Better changelog.
      v3: Add Acked-by
      
      Fixes: 6f2b6a30
        # 3c59x: Add dma error checking and recovery
      Acked-by: NNeil Horman <nhorman@tuxdriver.com>
      Signed-off-by: NSylvain "ythier" Hitier <sylvain.hitier@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      88b09a6d
    • P
      net: bcmgenet: fix Tx ring priority programming · 37742166
      Petri Gynther 提交于
      GENET MAC has three Tx ring priority registers:
      - GENET_x_TDMA_PRIORITY0 for queues 0-5
      - GENET_x_TDMA_PRIORITY1 for queues 6-11
      - GENET_x_TDMA_PRIORITY2 for queues 12-16
      
      Fix bcmgenet_init_multiq() to program them correctly.
      Signed-off-by: NPetri Gynther <pgynther@google.com>
      Acked-by: NFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      37742166
    • P
      net: phy: adjust fixed_phy_register() return value · fd2ef0ba
      Petri Gynther 提交于
      Adjust fixed_phy_register() to return struct phy_device *, so that
      it becomes easy to use fixed PHYs without device tree support:
      
        phydev = fixed_phy_register(PHY_POLL, &fixed_phy_status, NULL);
        fixed_phy_set_link_update(phydev, fixed_phy_link_update);
        phy_connect_direct(netdev, phydev, handler_fn, phy_interface);
      
      This change is a prerequisite for modifying bcmgenet driver to work
      without a device tree on Broadcom's MIPS-based 7xxx platforms.
      Signed-off-by: NPetri Gynther <pgynther@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      fd2ef0ba
  3. 07 10月, 2014 5 次提交
  4. 06 10月, 2014 9 次提交