27 Mar, 2013

40 commits

  • As reported by checkpatch, seq_puts has to be preferred with
    respect to seq_printf when the format is a constant string
    (no va_args)

    Signed-off-by: Antonio Quartulli
    Signed-off-by: Marek Lindner

    Antonio Quartulli
     
  • Signed-off-by: Simon Wunderlich
    Signed-off-by: Antonio Quartulli

    Antonio Quartulli
     
  • Signed-off-by: Simon Wunderlich
    Signed-off-by: Antonio Quartulli

    Simon Wunderlich
     
  • When adding a new hard interface (e.g. wlan0) to a soft interface (e.g. bat0)
    and the former is already enslaved in another virtual interface (e.g. a software
    bridge) batman-adv has to free it first and then continue with the adding
    mechanism.

    In this way the behaviour becomes consistent with what "ip link set master"
    does. At the moment batman-adv enslaves the hard interface without checking for
    the master device, possibly causing strange behaviours which are never wanted by
    the users.

    Reported-by: Marek Lindner
    Signed-off-by: Antonio Quartulli
    Signed-off-by: Marek Lindner

    Antonio Quartulli
     
  • The sysfs configuration interface of batman-adv to add/remove slaves of an
    soft-iface is not deadlock free and doesn't follow the currently common way to
    modify slaves of an interface.

    An additional configuration interface though rtnl_link is introduced which
    provides easy device adding/removing with tools like "ip":
    $ ip link set dev eth0 master bat0
    $ ip link set dev eth0 nomaster

    Signed-off-by: Sven Eckelmann
    Signed-off-by: Marek Lindner
    Acked-by: Antonio Quartulli
    Signed-off-by: Antonio Quartulli

    Sven Eckelmann
     
  • The sysfs configuration interface of batman-adv to add/remove soft-interfaces
    is not deadlock free and doesn't follow the currently common way to create new
    virtual interfaces.

    An additional interface though rtnl_link is introduced which provides easy device
    creation/deletion with tools like "ip":

    $ ip link add dev bat0 type batadv
    $ ip link del dev bat0

    Signed-off-by: Sven Eckelmann
    Signed-off-by: Marek Lindner
    Signed-off-by: Antonio Quartulli

    Sven Eckelmann
     
  • Signed-off-by: Marek Lindner
    CC: Sven Eckelmann
    Acked-by: Antonio Quartulli
    Signed-off-by: Antonio Quartulli

    Marek Lindner
     
  • batman-adv has an unusual way to manage softinterfaces. These will be created
    automatically when a user writes to the batman-adv/mesh_iface file in sysfs and
    removed when no slave device exists anymore.

    This behaviour cannot be changed without breaking compatibility with existing
    code. Instead other interfaces should be able to slightly reduce this behaviour
    and provide a more common reaction to a removal of a slave interface.

    Signed-off-by: Sven Eckelmann
    Signed-off-by: Marek Lindner
    Acked-by: Antonio Quartulli
    Signed-off-by: Antonio Quartulli

    Sven Eckelmann
     
  • The deinitialization of the soft-interface created in ndo_init/constructor
    should be done in the destructor and not directly before calling
    unregister_netdevice

    Signed-off-by: Sven Eckelmann
    Signed-off-by: Marek Lindner
    Acked-by: Antonio Quartulli
    Signed-off-by: Antonio Quartulli

    Sven Eckelmann
     
  • The initialization of an net_device object should be done in the
    init/constructor function and not from the outside after the register_netdevice
    was done to avoid race conditions.

    Signed-off-by: Sven Eckelmann
    Signed-off-by: Marek Lindner
    Acked-by: Antonio Quartulli
    Signed-off-by: Antonio Quartulli

    Sven Eckelmann
     
  • Add a htonl() in network_coding.c when reading the sequence number
    from received ogm_packet, to avoid wrong byte ordering when comparing
    with a host value. This bug was introduced in
    3ed7ada3f0bbcd058567bc0a8f9729a73eba7db6 ("batman-adv: network coding -
    detect coding nodes and remove these after timeout").

    Change the type of coded_packet->coded_len from uint16 to __be16 to
    avoid wrong assumptions about endianness in later uses. Introduced in
    c3289f3650d34b60296000a629c99f2488f7c3dd ("batman-adv: network coding -
    code and transmit packets if possible").

    Reported-by: Fengguang Wu
    Signed-off-by: Martin Hundebøll
    Signed-off-by: Marek Lindner
    Signed-off-by: Antonio Quartulli

    Martin Hundebøll
     
  • Signed-off-by: Tony Cheneau
    Signed-off-by: David S. Miller

    Tony Cheneau
     
  • This formatting issue was introduced with commit
    d4ac32365dcbfd341a87eae444c26679f889249a

    Signed-off-by: Tony Cheneau
    Signed-off-by: David S. Miller

    Tony Cheneau
     
  • The register names have been wrong since the beginning but it only showed up now
    as they are actualy used for the upcoming auto ACK support.

    Signed-off-by: Stefan Schmidt
    Signed-off-by: David S. Miller

    stefan@datenfreihafen.org
     
  • Implement the filter function to update short address, pan id and ieee
    address on change. Allowing for hardware address filtering needed for
    auto ACK.

    Signed-off-by: Stefan Schmidt
    Signed-off-by: David S. Miller

    stefan@datenfreihafen.org
     
  • This patch lets dgram_recvmsg fill in the sockaddr struct in
    msg->msg_name with the source address of the packet.
    This is used by the userland functions recvmsg and recvfrom to get the
    senders address.

    [Stefan: Changed from old zigbee legacy tree to mainline]

    Signed-off-by: Stephen Röttger
    Signed-off-by: Stefan Schmidt
    Signed-off-by: David S. Miller

    Stephen Röttger
     
  • Fixes following warning:-
    drivers/net/vxlan.c:471:35: warning: symbol 'dev' shadows an earlier one
    drivers/net/vxlan.c:433:26: originally declared here
    drivers/net/vxlan.c:794:34: warning: symbol 'vxlan' shadows an earlier one
    drivers/net/vxlan.c:757:26: originally declared here

    CC: Stephen Hemminger
    Signed-off-by: Pravin B Shelar
    Signed-off-by: David S. Miller

    Pravin B Shelar
     
  • Add myself to qlge maintainers list.

    Signed-off-by: Shahed Shaikh
    Signed-off-by: David S. Miller

    Shahed Shaikh
     
  • The TX Buffer in fec_enet_alloc_buffers was being initialized
    with the receive register define BD_ENET_RX_INT instead of
    the transmit register define BD_ENET_TX_INT

    Signed-off-by: Jim Baxter
    Signed-off-by: David S. Miller

    Jim Baxter
     
  • Giuseppe CAVALLARO says:

    ====================
    These patches enhance the driver adding the PTP support and the initial code
    for RGMII/SGMII/TBI/RTBI modes.
    Also this patches review the driver removing some Koption for selecting between
    chain and ring modes. REally useful to validate the driver also at build time.
    Before adding PTP, the extended descriptor support has been added because it
    is mandatory to save HW timestamp in new dedicated descriptors. Also in this
    case no Koption added.

    Concerning the PTP, I have hacked/reviewed and tested many
    part of these patches also verifying the back compatibility on
    several HW and chips.

    Concerning the SGMII/RGMII we have already discussed about the support
    in the net.dev Mailing list with Byungho where these patchs were partially
    analysed.
    So I have only ported them against the latest net-next (and on
    top of PTP). I have added some missing things: e.g. some parts of the
    ethtool for ANE. As we clarified with Byungho, we will add further
    enhancements on top of these patches if needed.

    I have also built all against ARM/SH/X68 platforms and no issues on
    ST-Boxes.

    Thx goes to Rayagond that wrote and tested the PTP and to Byungho for SGMII.

    V2: This Version 2 has the fixes discussed in the ML, for example:
    o completely remove the Koption... all the decisions are made at probe time
    o review the PTP patches and better organize them just in two patches
    o added all the fixes provided by Richard on PTP and CLK driver.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • This patch updates the stmmac.txt file adding information related to the PTP
    and SGMII/RGMII supports.

    Also the patch updates the driver version to: March_2013.

    Signed-off-by: Giuseppe Cavallaro
    Signed-off-by: David S. Miller

    Giuseppe CAVALLARO
     
  • This patch implements PHC (ptp hardware clock) driver for stmmac
    driver to support 1588 PTP.

    V2: added support for FINE method, reduced loop delay and review spinlock.

    Signed-off-by: Rayagond Kokatanur
    Hacked-by: Giuseppe Cavallaro
    Cc: Richard Cochran
    Signed-off-by: David S. Miller

    Rayagond Kokatanur
     
  • This patch enhances the stmmac driver to support IEEE 1588-2002
    PTP (Precision Time Protocol) version 1 and IEEE 1588-2008 PPT
    version 2.

    Precision Time Protocol(PTP),which enables precise synchronization
    of clocks in measurement and control systems implemented with
    technologies such as network communication,local computing,
    & distributed objects.

    Both PTPv1 and PTPv2 is selected at run-time using the HW capability
    register.

    The PTPv1 TimeStamp support can be used on chips that have the normal
    descriptor structures and PTPv2 TimeStamp support can be used on chips
    that have the Extended descriptors(DES4-5-6-7). All such sanity checks
    are done and verified by using HW capability register.

    V2: in this version the ethtool support has been included in this patch;
    Koptions have been completely removed (previously added to select
    PTP and PTPv2). PTPv1 and PTPv2 is now added in a single patch instead of
    two patches.
    get_timestamp() and get_systemtime() L/H have been combined into single APIs.

    Signed-off-by: Rayagond Kokatanur
    Signed-off-by: Giuseppe Cavallaro
    Cc: Richard Cochran
    Signed-off-by: David S. Miller

    Rayagond Kokatanur
     
  • This patch adds a new pointer variable called "tx_skbuff_dma" to private
    data structure. This variable will holds the physical address of packet
    to be transmitted & same will be used to free/unmap the memory once the
    corresponding packet is transmitted by device.

    Prior to this patch the descriptor buffer pointer(ie des2) itself was
    being used for freeing/unmapping the buffer memory. But in case PTP v1
    with normal descriptor the field(des2) will be overwritten by device
    with timestamp value, hence driver will loose the buffer pointer to be
    freed/unmapped.

    Signed-off-by: Rayagond Kokatanur
    Acked-by: Giuseppe Cavallaro
    Signed-off-by: David S. Miller

    Rayagond Kokatanur
     
  • This patch adds the minimal support to manage the PCS
    modes (RGMII/SGMII) and restart the ANE.
    Both TBI and RTBI are not yet supported.

    Thanks to Byungho that wrote some part of this code
    and tested SGMII too.

    The only thing to be fixed is the get/set pause in
    ethtool.

    Signed-off-by: Byungho An
    Signed-off-by: Giuseppe Cavallaro
    Signed-off-by: David S. Miller

    Giuseppe CAVALLARO
     
  • This patch starts adding in the main ISR the management of the PCS and
    RGMII/SGMII core interrupts. This is to help further development
    on this area. Currently the core irq handler only clears the
    PCS and S-R_MII interrupts and reports the event in the ethtool stats.

    Signed-off-by: Giuseppe Cavallaro
    Tested-by: Byungho An
    Cc: Udit Kumar
    Signed-off-by: David S. Miller

    Giuseppe CAVALLARO
     
  • This patch is to support the extend descriptors available
    in the chips newer than the 3.50.

    In case of the extend descriptors cannot be supported,
    at runtime, the driver will continue to work using the old style.

    In detail, this support extends the main descriptor structure
    adding new descriptors: 4, 5, 6, 7. The desc4 gives us extra
    information about the received ethernet payload when it is
    carrying PTP packets or TCP/UDP/ICMP over IP packets.
    The descriptors 6 and 7 are used for saving HW L/H timestamps (PTP).

    V2: this new version removes the Koption added in the first implementation
    because all the checks now to verify if the extended descriptors are
    actually supported happen at probe time.

    Signed-off-by: Giuseppe Cavallaro
    Signed-off-by: David S. Miller

    Giuseppe CAVALLARO
     
  • Previously we had two Koptions to decide if the stmmac
    had to use either a ring or a chain to manage its descriptors.
    This patch removes the Kernel configuration options and it allow us
    to use the chain mode by passing a module option.
    Ring mode continues to be the default.

    Also with this patch, it will be easier to validate the driver built and
    guarantee that all the two modes always compile fine.

    Signed-off-by: Giuseppe Cavallaro
    Signed-off-by: David S. Miller

    Giuseppe CAVALLARO
     
  • bond_resend_igmp_join_requests_delayed() calls _resend_igmp_join_requests()
    under rcu_read_lock(), while it gets its own rcu_read_lock() for the whole
    function. Remove the lock from the _delayed function.

    Signed-off-by: Veaceslav Falico
    Signed-off-by: David S. Miller

    Veaceslav Falico
     
  • Signed-off-by: Jiri Benc
    Signed-off-by: David S. Miller

    Jiri Benc
     
  • Signed-off-by: Jiri Benc
    Signed-off-by: David S. Miller

    Jiri Benc
     
  • Add CONFIG_PM_SLEEP to suspend/resume functions to fix the following
    build warning when CONFIG_PM_SLEEP is not selected. This is because
    sleep PM callbacks defined by SIMPLE_DEV_PM_OPS are only used when
    the CONFIG_PM_SLEEP is enabled.

    drivers/net/wireless/iwlegacy/common.c:4894:1: warning: 'il_pci_suspend' defined but not used [-Wunused-function]
    drivers/net/wireless/iwlegacy/common.c:4912:1: warning: 'il_pci_resume' defined but not used [-Wunused-function]

    Signed-off-by: Jingoo Han
    Signed-off-by: David S. Miller

    Jingoo Han
     
  • Add CONFIG_PM_SLEEP to suspend/resume functions to fix the following
    build warning when CONFIG_PM_SLEEP is not selected. This is because
    sleep PM callbacks defined by SIMPLE_DEV_PM_OPS are only used when
    the CONFIG_PM_SLEEP is enabled.

    drivers/net/ethernet/atheros/atlx/atl1.c:2861:12: warning: 'atl1_resume' defined but not used [-Wunused-function]

    Signed-off-by: Jingoo Han
    Signed-off-by: David S. Miller

    Jingoo Han
     
  • Add CONFIG_PM_SLEEP to suspend/resume functions to fix the following
    build warning when CONFIG_PM_SLEEP is not selected. This is because
    sleep PM callbacks defined by SIMPLE_DEV_PM_OPS are only used when
    the CONFIG_PM_SLEEP is enabled.

    drivers/net/ethernet/wiznet/w5100.c:758:12: warning: 'w5100_suspend' defined but not used [-Wunused-function]
    drivers/net/ethernet/wiznet/w5100.c:773:12: warning: 'w5100_resume' defined but not used [-Wunused-function]
    drivers/net/ethernet/wiznet/w5300.c:670:12: warning: 'w5300_suspend' defined but not used [-Wunused-function]
    drivers/net/ethernet/wiznet/w5300.c:685:12: warning: 'w5300_resume' defined but not used [-Wunused-function]

    Signed-off-by: Jingoo Han
    Signed-off-by: David S. Miller

    Jingoo Han
     
  • Jason Wang says:

    ====================
    We don't set transport header for untrusted packets in the past, but for the
    follwoing reasons, we need to do it now.

    - Better packet length estimation (introduced in 1def9238) needs l4 header for
    gso packets to compute the header length.
    - Some driver needs l4 header (e.g. ixgbe needs tcp header to do atr).

    So this patches tries to set transport header for packets from untrusted source
    (netback, packet, tuntap, macvtap). Plus a fix for better estimation on packet
    length for DODGY packet.

    Tested on tun/macvtap/packet, compile test on netback.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • gso_segs were reset to zero when kernel receive packets from untrusted
    source. But we use this zero value to estimate precise packet len which is
    wrong. So this patch tries to estimate the correct gso_segs value before using
    it in qdisc_pkt_len_init().

    Cc: Eric Dumazet
    Signed-off-by: Jason Wang
    Signed-off-by: David S. Miller

    Jason Wang
     
  • Currently, for the packets receives from netback, before doing header check,
    kernel just reset the transport header in netif_receive_skb() which pretends non
    l4 header. This is suboptimal for precise packet length estimation (introduced
    in 1def9238: net_sched: more precise pkt_len computation) which needs correct l4
    header for gso packets.

    The patch just reuse the header probed by netback for partial checksum packets
    and tries to use skb_flow_dissect() for other cases, if both fail, just pretend
    no l4 header.

    Cc: Eric Dumazet
    Cc: Ian Campbell
    Signed-off-by: Jason Wang
    Signed-off-by: David S. Miller

    Jason Wang
     
  • Set the transport header for 1) some drivers (e.g ixgbe needs l4 header to do
    atr) 2) precise packet length estimation (introduced in 1def9238) needs l4
    header to compute header length.

    So this patch first tries to get l4 header for packet socket through
    skb_flow_dissect(), and pretend no l4 header if skb_flow_dissect() fails.

    Cc: Eric Dumazet
    Signed-off-by: Jason Wang
    Signed-off-by: David S. Miller

    Jason Wang
     
  • Currently, for the packets receives from tuntap, before doing header check,
    kernel just reset the transport header in netif_receive_skb() which pretends no
    l4 header. This is suboptimal for precise packet length estimation (introduced
    in 1def9238) which needs correct l4 header for gso packets.

    So this patch set the transport header to csum_start for partial checksum
    packets, otherwise it first try skb_flow_dissect(), if it fails, just reset the
    transport header.

    Cc: Eric Dumazet
    Signed-off-by: Jason Wang
    Signed-off-by: David S. Miller

    Jason Wang
     
  • Set the transport header for 1) some drivers (e.g ixgbe) needs l4 header 2)
    precise packet length estimation (introduced in 1def9238) needs l4 header to
    compute header length.

    For the packets with partial checksum, the patch just set the transport header
    to csum_start. Otherwise tries to use skb_flow_dissect() to get l4 offset, if it
    fails, just pretend no l4 header.

    Cc: Eric Dumazet
    Signed-off-by: Jason Wang
    Signed-off-by: David S. Miller

    Jason Wang