Skip to content
  1. Jul 29, 2019
  2. Jul 28, 2019
  3. Jul 27, 2019
  4. Jul 26, 2019
  5. Jul 25, 2019
    • Arnd Bergmann's avatar
      mlx4: avoid large stack usage in mlx4_init_hca() · 9eed21c0
      Arnd Bergmann authored
      
      
      The mlx4_dev_cap and mlx4_init_hca_param are really too large
      to be put on the kernel stack, as shown by this clang warning:
      
      drivers/net/ethernet/mellanox/mlx4/main.c:3304:12: error: stack frame size of 1088 bytes in function 'mlx4_load_one' [-Werror,-Wframe-larger-than=]
      
      With gcc, the problem is the same, but it does not warn because
      it does not inline this function, and therefore stays just below
      the warning limit, while clang is just above it.
      
      Use kzalloc for dynamic allocation instead of putting them
      on stack. This gets the combined stack frame down to 424 bytes.
      
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Reviewed-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9eed21c0
    • Arnd Bergmann's avatar
      qed: reduce maximum stack frame size · 7c116e02
      Arnd Bergmann authored
      
      
      clang warns about an overly large stack frame in one function
      when it decides to inline all __qed_get_vport_*() functions into
      __qed_get_vport_stats():
      
      drivers/net/ethernet/qlogic/qed/qed_l2.c:1889:13: error: stack frame size of 1128 bytes in function '_qed_get_vport_stats' [-Werror,-Wframe-larger-than=]
      
      Use a noinline_for_stack annotation to prevent clang from inlining
      these, which keeps the maximum stack usage at around half of that
      in the worst case, similar to what we get with gcc.
      
      Fixes: 86622ee7 ("qed: Move statistics to L2 code")
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7c116e02
    • Heiner Kallweit's avatar
      r8169: improve rtl_set_rx_mode · 81cd17a4
      Heiner Kallweit authored
      
      
      This patch improves and simplifies rtl_set_rx_mode a little.
      No functional change intended.
      
      Signed-off-by: default avatarHeiner Kallweit <hkallweit1@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      81cd17a4
    • David S. Miller's avatar
      Merge branch '1GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue · ce599b1a
      David S. Miller authored
      
      
      Jeff Kirsher says:
      
      ====================
      1GbE Intel Wired LAN Driver Updates 2019-07-24
      
      This series contains updates to igc and e1000e client drivers only.
      
      Sasha provides a couple of cleanups to remove code that is not needed
      and reduce structure sizes.  Updated the MAC reset flow to use the
      device reset flow instead of a port reset flow.  Added addition device
      id's that will be supported.
      
      Kai-Heng Feng provides a workaround for a possible stalled packet issue
      in our ICH devices due to a clock recovery from the PCH being too slow.
      
      v2: removed the last patch in the series that supposedly fixed a MAC/PHY
          de-sync potential issue while waiting for additional information from
          hardware engineers.
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ce599b1a
    • Qian Cai's avatar
      net/ixgbevf: fix a compilation error of skb_frag_t · d601be97
      Qian Cai authored
      The linux-next commit "net: Rename skb_frag_t size to bv_len" [1]
      introduced a compilation error on powerpc as it forgot to deal with the
      renaming from "size" to "bv_len" for ixgbevf.
      
      [1] https://lore.kernel.org/netdev/20190723030831.11879-1-willy@infradead.org/T/#md052f1c7de965ccd1bdcb6f92e1990a52298eac5
      
      
      
      In file included from ./include/linux/cache.h:5,
                       from ./include/linux/printk.h:9,
                       from ./include/linux/kernel.h:15,
                       from ./include/linux/list.h:9,
                       from ./include/linux/module.h:9,
                       from
      drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c:12:
      drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c: In function
      'ixgbevf_xmit_frame_ring':
      drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c:4138:51: error:
      'skb_frag_t' {aka 'struct bio_vec'} has no member named 'size'
         count += TXD_USE_COUNT(skb_shinfo(skb)->frags[f].size);
                                                         ^
      ./include/uapi/linux/kernel.h:13:40: note: in definition of macro
      '__KERNEL_DIV_ROUND_UP'
       #define __KERNEL_DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d))
                                              ^
      drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c:4138:12: note: in
      expansion of macro 'TXD_USE_COUNT'
         count += TXD_USE_COUNT(skb_shinfo(skb)->frags[f].size);
      
      Signed-off-by: default avatarQian Cai <cai@lca.pw>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d601be97