22 Mar, 2014

22 commits

  • With this patch a node may additionally perform the dropping or
    unicasting behaviour for a link-local IPv4 and link-local-all-nodes
    IPv6 multicast packet, too.

    The extra counter and BATADV_MCAST_WANT_ALL_UNSNOOPABLES flag is needed
    because with a future bridge snooping support integration a node with a
    bridge on top of its soft interface is not able to reliably detect its
    multicast listeners for IPv4 link-local and the IPv6
    link-local-all-nodes addresses anymore (see RFC4541, section 2.1.2.2
    and section 3).

    Even though this new flag does make "no difference" now, it'll ensure
    a seamless integration of multicast bridge support without needing to
    break compatibility later.

    Also note, that even with multicast bridge support it won't be possible
    to optimize 224.0.0.x and ff02::1 towards nodes with bridges, they will
    always receive these ranges.

    Signed-off-by: Linus Lüssing
    Signed-off-by: Marek Lindner
    Signed-off-by: Antonio Quartulli

    Linus Lüssing
     
  • With this patch a multicast packet is not always simply flooded anymore,
    the behaviour for the following cases is changed to reduce
    unnecessary overhead:

    If all nodes within the horizon of a certain node have signalized
    multicast listener announcement capability then an IPv6 multicast packet
    with a destination of IPv6 link-local scope (excluding ff02::1) coming
    from the upstream of this node...

    * ...is dropped if there is no according multicast listener in the
    translation table,
    * ...is forwarded via unicast if there is a single node with interested
    multicast listeners
    * ...and otherwise still gets flooded.

    Signed-off-by: Linus Lüssing
    Signed-off-by: Marek Lindner
    Signed-off-by: Antonio Quartulli

    Linus Lüssing
     
  • If the soft interface of a node is not part of a bridge then a node
    announces a new multicast TVLV: The existence of this TVLV
    signalizes that this node is announcing all of its multicast listeners
    via the translation table infrastructure.

    Signed-off-by: Linus Lüssing
    Signed-off-by: Marek Lindner
    Signed-off-by: Antonio Quartulli

    Linus Lüssing
     
  • The new bitfield allows us to keep track whether capability subsets of
    an originator have gone through their initialization phase yet.

    The translation table is the only user right now, but a new one will be
    added soon.

    Signed-off-by: Linus Lüssing
    Signed-off-by: Marek Lindner
    Signed-off-by: Antonio Quartulli

    Linus Lüssing
     
  • With this patch a node which has no bridge interface on top of its soft
    interface announces its local multicast listeners via the translation
    table.

    Signed-off-by: Linus Lüssing
    Signed-off-by: Marek Lindner
    Signed-off-by: Antonio Quartulli

    Linus Lüssing
     
  • Some helper functions used along the TX path have now a new
    "dst_hint" argument but the kerneldoc was missing.

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

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

    Marek Lindner
     
  • Reported-by: Antonio Quartulli
    Signed-off-by: Simon Wunderlich
    Signed-off-by: Marek Lindner
    Signed-off-by: Antonio Quartulli

    Simon Wunderlich
     
  • On some architectures ether_addr_copy() is slightly faster
    than memcpy() therefore use the former when possible.

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

    Antonio Quartulli
     
  • Our .ndo_start_xmit handler (batadv_interface_tx()) can rely on having
    the skb mac header pointer set correctly since the following commit
    present in kernels >= 3.9:

    "net: reset mac header in dev_start_xmit()" (6d1ccff627)

    Therefore this commit removes the according, now redundant,
    skb_reset_mac_header() call in batadv_bla_tx().

    Signed-off-by: Linus Lüssing
    Signed-off-by: Marek Lindner
    Signed-off-by: Antonio Quartulli

    Linus Lüssing
     
  • Our .ndo_start_xmit handler (batadv_interface_tx()) can rely on having
    the skb mac header pointer set correctly since the following commit
    present in kernels >= 3.9:

    "net: reset mac header in dev_start_xmit()" (6d1ccff627)

    Therefore we can safely use eth_hdr() and vlan_eth_hdr() instead of
    skb->data now, which spares us some ugly type casts.

    At the same time set the mac_header in batadv_dat_snoop_incoming_arp_request()
    before sending the skb along the TX path.

    Signed-off-by: Linus Lüssing
    Signed-off-by: Marek Lindner
    Signed-off-by: Antonio Quartulli

    Linus Lüssing
     
  • net/batman-adv/network-coding.c:1535:1-7: Replace memcpy with struct assignment

    Generated by: coccinelle/misc/memcpy-assign.cocci
    Signed-off-by: Fengguang Wu
    Signed-off-by: Martin Hundebøll
    Signed-off-by: Marek Lindner
    Signed-off-by: Antonio Quartulli

    Fengguang Wu
     
  • Richard Cochran says:

    ====================
    ptp: dynamic pin control

    This patch series introduces a way of changing the auxiliary PTP
    Hardware Clock functions (periodic output signals and time stamping
    external signals) at run time. In the past on the netdev list, we have
    discussed other ways to handle this, such as module parameters and
    ethtool. This series implements a new PHC ioctl because that is the
    most natural way. Users already activate the auxiliary functions via
    the ioctls. The sysfs interface has also been expanded so that the pin
    configuration can be programmed using shell scripts.

    The first patch adds the new ioctls. The PHC subsystem does most of
    the work of maintaining the function-to-pin mapping. Drivers will only
    need to allocate and initialize a pin configuration table and also
    provide a new method that validates a particular assignment.

    Patches 5 and 6 just clean up a couple of issues in the phyter driver,
    and the remaining patches actually hook the phyter's pins into the new
    system.

    * ChangeLog
    ** V3
    - simplify locking in the set pin logic
    ** V2
    - fix bug in sysfs code on init error path
    - rename ptp_setpin() to ptp_set_pinfunc()
    - rename .setpin() to .verify() in the driver interface
    - simplify ptp_find_pin() logic
    - use correct test when checking whether the pin with the
    calibration function is being reprogrammed
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • This patch changes the driver use the new pin configuration method when
    programming the periodic output signal.

    Signed-off-by: Richard Cochran
    Signed-off-by: David S. Miller

    Richard Cochran
     
  • This patch changes the driver to use the new pin configuration method when
    programming the external time stamp input signals.

    Signed-off-by: Richard Cochran
    Signed-off-by: David S. Miller

    Richard Cochran
     
  • This patch adapts the dp83640 driver to allow reconfiguration of which
    auxiliary function goes on which pin. The functions may be reassigned
    freely with the one exception of the calibration function.

    Signed-off-by: Richard Cochran
    Signed-off-by: David S. Miller

    Richard Cochran
     
  • The phyter driver incorrectly feeds the value of the period into what
    is in fact a pulse width register, resulting in the actual period
    being twice the dialed value. This patch fixes the issue and renames a
    variable to make the code at bit more clear.

    Signed-off-by: Richard Cochran
    Signed-off-by: David S. Miller

    Richard Cochran
     
  • This patch cleans up the input checking code on the external time stamp
    function by using an unsigned rather than a signed channel index.

    Also, this patch corrects the author's email address. When this macro
    was last changed, the top level domain part of the email address was
    left behind.

    Signed-off-by: Richard Cochran
    Signed-off-by: David S. Miller

    Richard Cochran
     
  • This patch updates the many PTP Hardware Clock drivers with the
    newly introduced field that advertises the number of programmable
    pins. Some of these devices do have programmable pins, but the
    implementation will have to wait for follow on patches.

    Signed-off-by: Richard Cochran
    Acked-by: Jeff Kirsher
    Signed-off-by: David S. Miller

    Richard Cochran
     
  • This patch adds the sysfs hooks needed in order to get and set the
    programmable pin settings.

    Signed-off-by: Richard Cochran
    Signed-off-by: David S. Miller

    Richard Cochran
     
  • This patch adds a option to the test program that lists the
    programmable pins on a PTP Hardware Clock device, assuming there
    are any such pins. A second option lets the user reprogram the
    auxiliary function of a single pin.

    Signed-off-by: Richard Cochran
    Signed-off-by: David S. Miller

    Richard Cochran
     
  • This patch adds a pair of new ioctls to the PTP Hardware Clock device
    interface. Using the ioctls, user space programs can query each pin to
    find out its current function and also reprogram a different function
    if desired.

    Signed-off-by: Richard Cochran
    Signed-off-by: David S. Miller

    Richard Cochran
     

21 Mar, 2014

18 commits

  • Florian Fainelli says:

    ====================
    net: bcmgenet: misc fixes

    This patch series contains some misc. fixes for the bcmgenet driver.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Instead of always invoking netdev_get_tx_queue() in bcmgenet_xmit() and
    bcmgenet_tx_reclaim(), just get the corresponding netdev_queue pointer
    once and for all and manipulate it throughout bcmgenet_xmit() and
    bcmgenet_tx_reclaim().

    Signed-off-by: Florian Fainelli
    Signed-off-by: David S. Miller

    Florian Fainelli
     
  • netdev_pick_tx already takes care of making sure that a given
    skb->queue_mapping value will remain within the number of advertised
    hardware queue number, there is no need to re-do this again in the
    driver.

    Signed-off-by: Florian Fainelli
    Signed-off-by: David S. Miller

    Florian Fainelli
     
  • The BCMGENET driver was not TX timestamping the SKBs it queued for
    transmission, do this in bcmgenet_xmit() right before kicking the
    Transmit DMA engine.

    Signed-off-by: Florian Fainelli
    Signed-off-by: David S. Miller

    Florian Fainelli
     
  • The spinlock cookie in bcmgenet_priv is never used, get rid of it.

    Signed-off-by: Florian Fainelli
    Signed-off-by: David S. Miller

    Florian Fainelli
     
  • Laurent Pinchart says:

    ====================
    sh_eth: Fix the race between open and MDIO bus registration

    This patch series fixes the race condition that exists in the sh_eth driver
    between network device open and MDIO bus registration. The actual fix is in
    patch 4/5, with previous patches preparing the driver and patch 5/5 cleaning
    up an unrelated issue.

    I've based the idea on Sergei's attempt to fix the problem and can successfully
    boot the Koelsch board over NFS with this series. I might have missed other
    issues though, hence the RFC status.

    The patches are based on top of the latest net-next master branch.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • "goto" is well accepted for error paths in the kernel but should not be
    used unnecessarily. Return the correct value directly instead of using a
    goto when possible.

    Signed-off-by: Laurent Pinchart
    Acked-by: Geert Uytterhoeven
    Signed-off-by: David S. Miller

    Laurent Pinchart
     
  • Network API functions that rely on the MDIO bus can be called as soon as
    the driver calls register_netdev(). Register the MDIO bus before the
    network device to avoid race conditions.

    Signed-off-by: Laurent Pinchart
    Acked-by: Geert Uytterhoeven
    Signed-off-by: David S. Miller

    Laurent Pinchart
     
  • The network device passed to the sh_mdio_init and sh_mdio_release
    functions is only used to access the sh_eth_private instance. Pass it
    directly to those functions.

    Signed-off-by: Laurent Pinchart
    Acked-by: Geert Uytterhoeven
    Signed-off-by: David S. Miller

    Laurent Pinchart
     
  • The MDIO bus parent is set to the network device. Beside not reflecting
    the hardware topology, this prevents registering the MDIO bus before
    initializing the network device. Fix it by setting the MDIO bus parent
    to the platform device.

    Signed-off-by: Laurent Pinchart
    Acked-by: Geert Uytterhoeven
    Signed-off-by: David S. Miller

    Laurent Pinchart
     
  • Memory allocated for the MDIO bus with the devm_kzalloc() API is
    associated with the network device. While this will cause memory to be
    freed at the right time, it doesn't allow allocating memory before the
    network device is initialized.

    Replace the network device with the parent platform device for memory
    allocation to remove that dependency. This also improves consistency
    with the other devm_* calls in the driver that all use the platform
    device.

    Signed-off-by: Laurent Pinchart
    Acked-by: Geert Uytterhoeven
    Signed-off-by: David S. Miller

    Laurent Pinchart
     
  • This patch is only a cleanup to use the right define for a panid field.
    The broadcast address and panid broadcast is still the same value.

    Signed-off-by: Alexander Aring
    Cc: Phoebe Buckheister
    Signed-off-by: David S. Miller

    Alexander Aring
     
  • This patch fixes an issue which was introduced by commit
    b70ab2e87f17176d18f67ef331064441a032b5f3 ("ieee802154: enforce
    consistent endianness in the 802.15.4 stack").

    The correct behaviour should be a check on the broadcast address field
    which is 0xffff.

    Signed-off-by: Alexander Aring
    Reported-by: Jan Luebbe
    Cc: Phoebe Buckheister
    Signed-off-by: David S. Miller

    Alexander Aring
     
  • This makes the generic of_mdiobus_register parse the DT compatible string for
    the pattern ethernet-phy-idAAAA.BBBB. If present it should be a value that
    matches the phy-id register normally readable through MDIO.

    When the ID is given the phy autoprobing is defeated and the phy is
    created directly.

    This is necessary to support phy's that cannot be autoprobed when
    of_mdiobus_register is called. Specifically, my case has the phy in reset at
    of_mdiobus_register, the reset is only released once the ethernet driver
    starts, before it attaches to the phy.

    Tested on ARM Kirkwood with phy id 0x01410e90 (Marvell 88E1318)

    Signed-off-by: Jason Gunthorpe
    Acked-by: Florian Fainelli
    Acked-by: Rob Herring
    Signed-off-by: David S. Miller

    Jason Gunthorpe
     
  • This describes a compatible entry of the form:
    ethernet-phy-idAAAA,BBBB
    Which is modelled after the PCI structured compatible entry
    (pciVVVV,DDDD.SSSS.ssss.RR)

    If present the OF core will be able to use this information to
    directly create the correct phy without auto probing the bus.

    Signed-off-by: Jason Gunthorpe
    Acked-by: Rob Herring
    Acked-by: Florian Fainelli
    Signed-off-by: David S. Miller

    Jason Gunthorpe
     
  • Ben Chan says:

    ====================
    Adjust MTU as indicated by MBIM extended functional descriptor.

    The MBIM extended functional descriptor, defined in "Universal Serial Bus
    Communications Class Subclass Specification for Mobile Broadband Interface
    Model, Revision 1.0, Errata-1" by USB-IF, indicates the operator preferred MTU
    value via a wMTU field.

    This patch set ensures that the initial MTU value set by cdc_ncm on a MBIM net
    device does not exceed the wMTU value, provided the MBIM device exposes a MBIM
    extended functional descriptor.

    * Changelog
    v2: Fixed a le16_to_cpu conversion issue in patch 2/2 pointed out by
    Bjørn Mork
    v3: No code changes. Resubmitted to include patch 1/2 as suggested by
    David Miller
    v4: No code changes. Resubmitted as suggested by David Miller:
    - Added a summary of the patch set
    - Carried the ACK from Greg Kroah-Hartman
    - Added a specified the tree (net-next) to apply the patch set to
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • According to "Universal Serial Bus Communications Class Subclass
    Specification for Mobile Broadband Interface Model, Revision 1.0,
    Errata-1" published by USB-IF, the wMTU field of the MBIM extended
    functional descriptor indicates the operator preferred MTU for IP data
    streams.

    This patch modifies cdc_ncm_setup to ensure that the MTU value set on
    the usbnet device does not exceed the operator preferred MTU indicated
    by wMTU if the MBIM device exposes a MBIM extended functional
    descriptor.

    Signed-off-by: Ben Chan
    Signed-off-by: David S. Miller

    Ben Chan
     
  • This patch adds the MBIM extended functional descriptor structure
    defined in "Universal Serial Bus Communications Class Subclass
    Specification for Mobile Broadband Interface Model, Revision 1.0,
    Errata-1" published by USB-IF.

    Signed-off-by: Ben Chan
    Acked-by: Greg Kroah-Hartman
    Signed-off-by: David S. Miller

    Ben Chan