Skip to content
  1. Sep 22, 2012
    • AnilKumar Ch's avatar
      can: c_can: Add runtime PM support to Bosch C_CAN/D_CAN controller · 4cdd34b2
      AnilKumar Ch authored
      
      
      Add Runtime PM support to C_CAN/D_CAN controller. The runtime PM
      APIs control clocks for C_CAN/D_CAN IP and prevent access to the
      register of C_CAN/D_CAN IP when clock is turned off.
      
      Signed-off-by: default avatarAnilKumar Ch <anilkumar@ti.com>
      Signed-off-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
      4cdd34b2
    • AnilKumar Ch's avatar
      can: c_can: Add device tree support to Bosch C_CAN/D_CAN controller · 2469627d
      AnilKumar Ch authored
      
      
      Add device tree support to C_CAN/D_CAN controller and usage details
      are added to device tree documentation. Driver was tested on AM335x
      EVM.
      
      Signed-off-by: default avatarAnilKumar Ch <anilkumar@ti.com>
      For the of binding doc:
      Reviewed-by: default avatarStephen Warren <swarren@nvidia.com>
      Signed-off-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
      2469627d
    • AnilKumar Ch's avatar
      can: c_can: Modify c_can device names · f27b1db9
      AnilKumar Ch authored
      
      
      Modify c_can device names from *_CAN_DEVTYPE to BOSCH_*_CAN to make
      use of same names for array indexes in c_can_id_table[] as well as
      device names.
      
      This patch also add indexes to c_can_id_table array.
      
      Signed-off-by: default avatarAnilKumar Ch <anilkumar@ti.com>
      Signed-off-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
      f27b1db9
    • Pablo Neira Ayuso's avatar
      netlink: use <linux/export.h> instead of <linux/module.h> · abb17e6c
      Pablo Neira Ayuso authored
      Since (9f00d977
      
       netlink: hide struct module parameter in netlink_kernel_create),
      linux/netlink.h includes linux/module.h because of the use of THIS_MODULE.
      
      Use linux/export.h instead, as suggested by Stephen Rothwell, which is
      significantly smaller and defines THIS_MODULES.
      
      Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      abb17e6c
    • David S. Miller's avatar
      sunbmac: Remove unused local variable. · 0bfd6075
      David S. Miller authored
      Commit eb716c54
      
       ("sunbmac: remove
      unnecessary setting of skb->dev") caused the local varible 'dev'
      in bigmac_init_rings to become unused.  And now the compiler
      warns about it.
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0bfd6075
    • Jiri Pirko's avatar
      team: send port changed when added · 10f3f51d
      Jiri Pirko authored
      
      
      On some hw, link is not up during adding iface to team. That causes event
      not being sent to userspace and that may cause confusion.
      Fix this bug by sending port changed event once it's added to team.
      
      Signed-off-by: default avatarJiri Pirko <jiri@resnulli.us>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      10f3f51d
    • Christoph Fritz's avatar
      ipconfig: add nameserver IPs to kernel-parameter ip= · 5e953778
      Christoph Fritz authored
      
      
      On small systems (e.g. embedded ones) IP addresses are often configured
      by bootloaders and get assigned to kernel via parameter "ip=".  If set to
      "ip=dhcp", even nameserver entries from DHCP daemons are handled. These
      entries exported in /proc/net/pnp are commonly linked by /etc/resolv.conf.
      
      To configure nameservers for networks without DHCP, this patch adds option
      <dns0-ip> and <dns1-ip> to kernel-parameter 'ip='.
      
      Signed-off-by: default avatarChristoph Fritz <chf.fritz@googlemail.com>
      Tested-by: default avatarJan Weitzel <j.weitzel@phytec.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5e953778
    • Bjørn Mork's avatar
      net: qmi_wwan: adding Huawei E367, ZTE MF683 and Pantech P4200 · 42d94dcb
      Bjørn Mork authored
      
      
      One of the modes of Huawei E367 has this QMI/wwan interface:
      
       I:* If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=07 Driver=(none)
       E:  Ad=83(I) Atr=03(Int.) MxPS=  64 Ivl=2ms
       E:  Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
       E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
      
      Huawei use subclass and protocol to identify vendor specific
      functions, so adding a new vendor rule for this combination.
      
      The Pantech devices UML290 (106c:3718) and P4200 (106c:3721) use
      the same subclass to identify the QMI/wwan function.  Replace the
      existing device specific UML290 entries with generic vendor matching,
      adding support for the Pantech P4200.
      
      The ZTE MF683 has 6 vendor specific interfaces, all using
      ff/ff/ff for cls/sub/prot.  Adding a match on interface #5 which
      is a QMI/wwan interface.
      
      Cc: Fangxiaozhi (Franko) <fangxiaozhi@huawei.com>
      Cc: Thomas Schäfer <tschaefer@t-online.de>
      Cc: Dan Williams <dcbw@redhat.com>
      Cc: Shawn J. Goff <shawn7400@gmail.com>
      Signed-off-by: default avatarBjørn Mork <bjorn@mork.no>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      42d94dcb
    • Amerigo Wang's avatar
      l2tp: fix compile error when CONFIG_IPV6=m and CONFIG_L2TP=y · fc181625
      Amerigo Wang authored
      
      
      When CONFIG_IPV6=m and CONFIG_L2TP=y, I got the following compile error:
      
        LD      init/built-in.o
      net/built-in.o: In function `l2tp_xmit_core':
      l2tp_core.c:(.text+0x147781): undefined reference to `inet6_csk_xmit'
      net/built-in.o: In function `l2tp_tunnel_create':
      (.text+0x149067): undefined reference to `udpv6_encap_enable'
      net/built-in.o: In function `l2tp_ip6_recvmsg':
      l2tp_ip6.c:(.text+0x14e991): undefined reference to `ipv6_recv_error'
      net/built-in.o: In function `l2tp_ip6_sendmsg':
      l2tp_ip6.c:(.text+0x14ec64): undefined reference to `fl6_sock_lookup'
      l2tp_ip6.c:(.text+0x14ed6b): undefined reference to `datagram_send_ctl'
      l2tp_ip6.c:(.text+0x14eda0): undefined reference to `fl6_sock_lookup'
      l2tp_ip6.c:(.text+0x14ede5): undefined reference to `fl6_merge_options'
      l2tp_ip6.c:(.text+0x14edf4): undefined reference to `ipv6_fixup_options'
      l2tp_ip6.c:(.text+0x14ee5d): undefined reference to `fl6_update_dst'
      l2tp_ip6.c:(.text+0x14eea3): undefined reference to `ip6_dst_lookup_flow'
      l2tp_ip6.c:(.text+0x14eee7): undefined reference to `ip6_dst_hoplimit'
      l2tp_ip6.c:(.text+0x14ef8b): undefined reference to `ip6_append_data'
      l2tp_ip6.c:(.text+0x14ef9d): undefined reference to `ip6_flush_pending_frames'
      l2tp_ip6.c:(.text+0x14efe2): undefined reference to `ip6_push_pending_frames'
      net/built-in.o: In function `l2tp_ip6_destroy_sock':
      l2tp_ip6.c:(.text+0x14f090): undefined reference to `ip6_flush_pending_frames'
      l2tp_ip6.c:(.text+0x14f0a0): undefined reference to `inet6_destroy_sock'
      net/built-in.o: In function `l2tp_ip6_connect':
      l2tp_ip6.c:(.text+0x14f14d): undefined reference to `ip6_datagram_connect'
      net/built-in.o: In function `l2tp_ip6_bind':
      l2tp_ip6.c:(.text+0x14f4fe): undefined reference to `ipv6_chk_addr'
      net/built-in.o: In function `l2tp_ip6_init':
      l2tp_ip6.c:(.init.text+0x73fa): undefined reference to `inet6_add_protocol'
      l2tp_ip6.c:(.init.text+0x740c): undefined reference to `inet6_register_protosw'
      net/built-in.o: In function `l2tp_ip6_exit':
      l2tp_ip6.c:(.exit.text+0x1954): undefined reference to `inet6_unregister_protosw'
      l2tp_ip6.c:(.exit.text+0x1965): undefined reference to `inet6_del_protocol'
      net/built-in.o:(.rodata+0xf2d0): undefined reference to `inet6_release'
      net/built-in.o:(.rodata+0xf2d8): undefined reference to `inet6_bind'
      net/built-in.o:(.rodata+0xf308): undefined reference to `inet6_ioctl'
      net/built-in.o:(.data+0x1af40): undefined reference to `ipv6_setsockopt'
      net/built-in.o:(.data+0x1af48): undefined reference to `ipv6_getsockopt'
      net/built-in.o:(.data+0x1af50): undefined reference to `compat_ipv6_setsockopt'
      net/built-in.o:(.data+0x1af58): undefined reference to `compat_ipv6_getsockopt'
      make: *** [vmlinux] Error 1
      
      This is due to l2tp uses symbols from IPV6, so when IPV6
      is a module, l2tp is not allowed to be builtin.
      
      Cc: David Miller <davem@davemloft.net>
      Signed-off-by: default avatarCong Wang <amwang@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      fc181625
  2. Sep 21, 2012
  3. Sep 20, 2012
    • John Fastabend's avatar
      ixgbevf: scheduling while atomic in reset hw path · 012dc19a
      John Fastabend authored
      
      
      In ixgbevf_reset_hw_vf() msleep is called while holding mbx_lock
      resulting in a schedule while atomic bug with trace below.
      
      This patch uses mdelay instead.
      
      BUG: scheduling while atomic: ip/6539/0x00000002
      2 locks held by ip/6539:
       #0:  (rtnl_mutex){+.+.+.}, at: [<ffffffff81419cc3>] rtnl_lock+0x17/0x19
       #1:  (&(&adapter->mbx_lock)->rlock){+.+...}, at: [<ffffffffa0030855>] ixgbevf_reset+0x30/0xc1 [ixgbevf]
      Modules linked in: ixgbevf ixgbe mdio libfc scsi_transport_fc 8021q scsi_tgt garp stp llc cpufreq_ondemand acpi_cpufreq freq_table mperf ipv6 uinput igb coretemp hwmon crc32c_intel ioatdma i2c_i801 shpchp microcode lpc_ich mfd_core i2c_core joydev dca pcspkr serio_raw pata_acpi ata_generic usb_storage pata_jmicron
      Pid: 6539, comm: ip Not tainted 3.6.0-rc3jk-net-next+ #104
      Call Trace:
       [<ffffffff81072202>] __schedule_bug+0x6a/0x79
       [<ffffffff814bc7e0>] __schedule+0xa2/0x684
       [<ffffffff8108f85f>] ? trace_hardirqs_off+0xd/0xf
       [<ffffffff814bd0c0>] schedule+0x64/0x66
       [<ffffffff814bb5e2>] schedule_timeout+0xa6/0xca
       [<ffffffff810536b9>] ? lock_timer_base+0x52/0x52
       [<ffffffff812629e0>] ? __udelay+0x15/0x17
       [<ffffffff814bb624>] schedule_timeout_uninterruptible+0x1e/0x20
       [<ffffffff810541c0>] msleep+0x1b/0x22
       [<ffffffffa002e723>] ixgbevf_reset_hw_vf+0x90/0xe5 [ixgbevf]
       [<ffffffffa0030860>] ixgbevf_reset+0x3b/0xc1 [ixgbevf]
       [<ffffffffa0032fba>] ixgbevf_open+0x43/0x43e [ixgbevf]
       [<ffffffff81409610>] ? dev_set_rx_mode+0x2e/0x33
       [<ffffffff8140b0f1>] __dev_open+0xa0/0xe5
       [<ffffffff814097ed>] __dev_change_flags+0xbe/0x142
       [<ffffffff8140b01c>] dev_change_flags+0x21/0x56
       [<ffffffff8141a843>] do_setlink+0x2e2/0x7f4
       [<ffffffff81016e36>] ? native_sched_clock+0x37/0x39
       [<ffffffff8141b0ac>] rtnl_newlink+0x277/0x4bb
       [<ffffffff8141aee9>] ? rtnl_newlink+0xb4/0x4bb
       [<ffffffff812217d1>] ? selinux_capable+0x32/0x3a
       [<ffffffff8104fb17>] ? ns_capable+0x4f/0x67
       [<ffffffff81419cc3>] ? rtnl_lock+0x17/0x19
       [<ffffffff81419f28>] rtnetlink_rcv_msg+0x236/0x253
       [<ffffffff81419cf2>] ? rtnetlink_rcv+0x2d/0x2d
       [<ffffffff8142fd42>] netlink_rcv_skb+0x43/0x94
       [<ffffffff81419ceb>] rtnetlink_rcv+0x26/0x2d
       [<ffffffff8142faf1>] netlink_unicast+0xee/0x174
       [<ffffffff81430327>] netlink_sendmsg+0x26a/0x288
       [<ffffffff813fb04f>] ? rcu_read_unlock+0x56/0x67
       [<ffffffff813f5e6d>] __sock_sendmsg_nosec+0x58/0x61
       [<ffffffff813f81b7>] __sock_sendmsg+0x3d/0x48
       [<ffffffff813f8339>] sock_sendmsg+0x6e/0x87
       [<ffffffff81107c9f>] ? might_fault+0xa5/0xac
       [<ffffffff81402a72>] ? copy_from_user+0x2a/0x2c
       [<ffffffff81402e62>] ? verify_iovec+0x54/0xaa
       [<ffffffff813f9834>] __sys_sendmsg+0x206/0x288
       [<ffffffff810694fa>] ? up_read+0x23/0x3d
       [<ffffffff811307e5>] ? fcheck_files+0xac/0xea
       [<ffffffff8113095e>] ? fget_light+0x3a/0xb9
       [<ffffffff813f9a2e>] sys_sendmsg+0x42/0x60
       [<ffffffff814c5ba9>] system_call_fastpath+0x16/0x1b
      
      CC: Eric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarJohn Fastabend <john.r.fastabend@intel.com>
      Tested-By: default avatarRobert Garrett <robertx.e.garrett@intel.com>
      Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      012dc19a
    • Alexander Duyck's avatar
      ixgbevf: Add support for VF API negotiation · 31186785
      Alexander Duyck authored
      
      
      This change makes it so that the VF can support the PF/VF API negotiation
      protocol.  Specifically in this case we are adding support for API 1.0
      which will mean that the VF is capable of cleaning up buffers that span
      multiple descriptors without triggering an error.
      
      Signed-off-by: default avatarAlexander Duyck <alexander.h.duyck@intel.com>
      Tested-by: default avatarSibai Li <sibai.li@intel.com>
      Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      31186785
    • Akeem G. Abodunrin's avatar
      igb: Support to enable EEE on all eee_supported devices · e5461112
      Akeem G. Abodunrin authored
      
      
      Current implementation enables EEE on only i350 device. This patch enables
      EEE on all eee_supported devices. Also, configured LPI clock to keep
      running before EEE is enabled on i210 and i211 devices.
      
      Signed-off-by: default avatarAkeem G. Abodunrin <akeem.g.abodunrin@intel.com>
      Tested-by: default avatarJeff Pieper <jeffrey.e.pieper@intel.com>
      Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      e5461112
    • Alexander Duyck's avatar
      igb: Remove artificial restriction on RQDPC stat reading · ae1c07a6
      Alexander Duyck authored
      
      
      For some reason the reading of the RQDPC register was being artificially
      limited to 4K.  Instead of limiting the value we should read the value and
      add the full amount.  Otherwise this can lead to a misleading number of
      dropped packets when the actual value is in fact much higher.
      
      Signed-off-by: default avatarAlexander Duyck <alexander.h.duyck@intel.com>
      Tested-by: default avatarJeff Pieper <jeffrey.e.pieper@intel.com>
      Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      ae1c07a6
    • Michal Schmidt's avatar
      r8169: use unlimited DMA burst for TX · aee77e4a
      Michal Schmidt authored
      The r8169 driver currently limits the DMA burst for TX to 1024 bytes. I have
      a box where this prevents the interface from using the gigabit line to its full
      potential. This patch solves the problem by setting TX_DMA_BURST to unlimited.
      
      The box has an ASRock B75M motherboard with on-board RTL8168evl/8111evl
      (XID 0c900880). TSO is enabled.
      
      I used netperf (TCP_STREAM test) to measure the dependency of TX throughput
      on MTU. I did it for three different values of TX_DMA_BURST ('5'=512, '6'=1024,
      '7'=unlimited). This chart shows the results:
      http://michich.fedorapeople.org/r8169/r8169-effects-of-TX_DMA_BURST.png
      
      
      
      Interesting points:
       - With the current DMA burst limit (1024):
         - at the default MTU=1500 I get only 842 Mbit/s.
         - when going from small MTU, the performance rises monotonically with
           increasing MTU only up to a peak at MTU=1076 (908 MBit/s). Then there's
           a sudden drop to 762 MBit/s from which the throughput rises monotonically
           again with further MTU increases.
       - With a smaller DMA burst limit (512):
         - there's a similar peak at MTU=1076 and another one at MTU=564.
       - With unlimited DMA burst:
         - at the default MTU=1500 I get nice 940 Mbit/s.
         - the throughput rises monotonically with increasing MTU with no strange
           peaks.
      
      Notice that the peaks occur at MTU sizes that are multiples of the DMA burst
      limit plus 52. Why 52? Because:
        20 (IP header) + 20 (TCP header) + 12 (TCP options) = 52
      
      The Realtek-provided r8168 driver (v8.032.00) uses unlimited TX DMA burst too,
      except for CFG_METHOD_1 where the TX DMA burst is set to 512 bytes.
      CFG_METHOD_1 appears to be the oldest MAC version of "RTL8168B/8111B",
      i.e. RTL_GIGA_MAC_VER_11 in r8169. Not sure if this MAC version really needs
      the smaller burst limit, or if any other versions have similar requirements.
      
      Signed-off-by: default avatarMichal Schmidt <mschmidt@redhat.com>
      Acked-by: default avatarFrancois Romieu <romieu@fr.zoreil.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      aee77e4a
    • Amerigo Wang's avatar
      ipv6: unify fragment thresh handling code · 6b102865
      Amerigo Wang authored
      
      
      Cc: Herbert Xu <herbert@gondor.apana.org.au>
      Cc: Michal Kubeček <mkubecek@suse.cz>
      Cc: David Miller <davem@davemloft.net>
      Signed-off-by: default avatarCong Wang <amwang@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6b102865
    • Amerigo Wang's avatar
      ipv6: make ip6_frag_nqueues() and ip6_frag_mem() static inline · d4915c08
      Amerigo Wang authored
      
      
      Cc: Herbert Xu <herbert@gondor.apana.org.au>
      Cc: Michal Kubeček <mkubecek@suse.cz>
      Cc: David Miller <davem@davemloft.net>
      Signed-off-by: default avatarCong Wang <amwang@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d4915c08
    • Amerigo Wang's avatar
      ipv6: unify conntrack reassembly expire code with standard one · b836c99f
      Amerigo Wang authored
      Two years ago, Shan Wei tried to fix this:
      http://patchwork.ozlabs.org/patch/43905/
      
      
      
      The problem is that RFC2460 requires an ICMP Time
      Exceeded -- Fragment Reassembly Time Exceeded message should be
      sent to the source of that fragment, if the defragmentation
      times out.
      
      "
         If insufficient fragments are received to complete reassembly of a
         packet within 60 seconds of the reception of the first-arriving
         fragment of that packet, reassembly of that packet must be
         abandoned and all the fragments that have been received for that
         packet must be discarded.  If the first fragment (i.e., the one
         with a Fragment Offset of zero) has been received, an ICMP Time
         Exceeded -- Fragment Reassembly Time Exceeded message should be
         sent to the source of that fragment.
      "
      
      As Herbert suggested, we could actually use the standard IPv6
      reassembly code which follows RFC2460.
      
      With this patch applied, I can see ICMP Time Exceeded sent
      from the receiver when the sender sent out 3/4 fragmented
      IPv6 UDP packet.
      
      Cc: Herbert Xu <herbert@gondor.apana.org.au>
      Cc: Michal Kubeček <mkubecek@suse.cz>
      Cc: David Miller <davem@davemloft.net>
      Cc: Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org>
      Cc: Patrick McHardy <kaber@trash.net>
      Cc: Pablo Neira Ayuso <pablo@netfilter.org>
      Cc: netfilter-devel@vger.kernel.org
      Signed-off-by: default avatarCong Wang <amwang@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b836c99f
    • Amerigo Wang's avatar
      ipv6: add a new namespace for nf_conntrack_reasm · c038a767
      Amerigo Wang authored
      
      
      As pointed by Michal, it is necessary to add a new
      namespace for nf_conntrack_reasm code, this prepares
      for the second patch.
      
      Cc: Herbert Xu <herbert@gondor.apana.org.au>
      Cc: Michal Kubeček <mkubecek@suse.cz>
      Cc: David Miller <davem@davemloft.net>
      Cc: Patrick McHardy <kaber@trash.net>
      Cc: Pablo Neira Ayuso <pablo@netfilter.org>
      Cc: netfilter-devel@vger.kernel.org
      Signed-off-by: default avatarCong Wang <amwang@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c038a767
    • Amerigo Wang's avatar
      netpoll: call ->ndo_select_queue() in tx path · 8c4c49df
      Amerigo Wang authored
      
      
      In netpoll tx path, we miss the chance of calling ->ndo_select_queue(),
      thus could cause problems when bonding is involved.
      
      This patch makes dev_pick_tx() extern (and rename it to netdev_pick_tx())
      to let netpoll call it in netpoll_send_skb_on_dev().
      
      Reported-by: default avatarSylvain Munaut <s.munaut@whatever-company.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Eric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarCong Wang <amwang@redhat.com>
      Tested-by: default avatarSylvain Munaut <s.munaut@whatever-company.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8c4c49df
    • stephen hemminger's avatar
      netdev: make address const in device address management · 6b6e2725
      stephen hemminger authored
      
      
      The internal functions for add/deleting addresses don't change
      their argument.
      
      Signed-off-by: default avatarStephen Hemminger <shemminger@vyatta.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6b6e2725
    • Mika Westerberg's avatar
      i825xx: znet: fix compiler warnings when building a 64-bit kernel · 1d3ff767
      Mika Westerberg authored
      
      
      When building 64-bit kernel with this driver we get following warnings from
      the compiler:
      
      drivers/net/ethernet/i825xx/znet.c: In function ‘hardware_init’:
      drivers/net/ethernet/i825xx/znet.c:863:29: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
      drivers/net/ethernet/i825xx/znet.c:870:29: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
      
      Fix these by calling isa_virt_to_bus() before passing the pointers to
      set_dma_addr().
      
      Signed-off-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1d3ff767
    • Eric Dumazet's avatar
      gre: add GSO support · 6b78f16e
      Eric Dumazet authored
      
      
      Add GSO support to GRE tunnels.
      
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Cc: Maciej Żenczykowski <maze@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6b78f16e
    • Eric Dumazet's avatar
      net: provide a default dev->ethtool_ops · 2c60db03
      Eric Dumazet authored
      
      
      Instead of forcing device drivers to provide empty ethtool_ops or tweak
      net/core/ethtool.c again, we could provide a generic ethtool_ops.
      
      This occurred to me when I wanted to add GSO support to GRE tunnels.
      ethtool -k support should be generic for all drivers.
      
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Cc: Ben Hutchings <bhutchings@solarflare.com>
      Cc: Maciej Żenczykowski <maze@google.com>
      Reviewed-by: default avatarBen Hutchings <bhutchings@solarflare.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2c60db03
    • Gao feng's avatar
      net: dev: fix incorrect getting net device's name · 828de4f6
      Gao feng authored
      
      
      When moving a nic from net namespace A to net namespace B,
      in dev_change_net_namesapce,we call __dev_get_by_name to
      decide if the netns B has the device has the same name.
      
      if the netns B already has the same named device,we call
      dev_get_valid_name to try to get a valid name for this nic in
      the netns B,but net_device->nd_net still point to netns A now.
      
      this patch fix it.
      
      Signed-off-by: default avatarGao feng <gaofeng@cn.fujitsu.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      828de4f6
    • Li RongQing's avatar
      ipv6: recursive check rt->dst.from when call rt6_check_expired · 3fd91fb3
      Li RongQing authored
      
      
      If dst cache dst_a copies from dst_b, and dst_b copies from dst_c, check
      if dst_a is expired or not, we should not end with dst_a->dst.from, dst_b,
      we should check dst_c.
      
      CC: Gao feng <gaofeng@cn.fujitsu.com>
      Signed-off-by: default avatarLi RongQing <roy.qing.li@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3fd91fb3
    • Eric Dumazet's avatar
      net: more accurate network taps in transmit path · b40863c6
      Eric Dumazet authored
      
      
      dev_queue_xmit_nit() should be called right before ndo_start_xmit()
      calls or we might give wrong packet contents to taps users :
      
      Packet checksum can be changed, or packet can be linearized or
      segmented, and segments partially sent for the later case.
      
      Also a memory allocation can fail and packet never really hit the
      driver entry point.
      
      Reported-by: default avatarJamie Gloudon <jamie.gloudon@gmail.com>
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b40863c6
  4. Sep 19, 2012