21 Jul, 2015

5 commits

  • If device flags ingress packet as "fwd offload", mark the
    skb->offlaod_fwd_mark using the ingress port's dev->offlaod_fwd_mark. This
    will be the hint to the kernel that this packet has already been forwarded
    by device to egress ports matching skb->offlaod_fwd_mark.

    For rocker, derive port dev->offlaod_fwd_mark based on device switch ID and
    port ifindex. If port is bridged, use the bridge ifindex rather than the
    port ifindex.

    Signed-off-by: Scott Feldman
    Acked-by: Jiri Pirko
    Signed-off-by: David S. Miller

    Scott Feldman
     
  • Teach rocker to forward packets to CPU when a port is joined to Open vSwitch.
    There is scope to later refine what is passed up as per Open vSwitch flows
    on a port.

    This does not change the behaviour of rocker ports that are
    not joined to Open vSwitch.

    Signed-off-by: Simon Horman
    Acked-by: Scott Feldman
    Signed-off-by: David S. Miller

    Simon Horman
     
  • Get rid of these:
    drivers/net/bonding//bond_main.c: In function ‘bond_update_slave_arr’:
    drivers/net/bonding//bond_main.c:3754:6: warning: variable
    ‘slaves_in_agg’ set but not used [-Wunused-but-set-variable]
    int slaves_in_agg;
    ^
    CC [M] drivers/net/bonding//bond_3ad.o
    drivers/net/bonding//bond_3ad.c: In function
    ‘ad_marker_response_received’:
    drivers/net/bonding//bond_3ad.c:1870:61: warning: parameter ‘marker’
    set but not used [-Wunused-but-set-parameter]
    static void ad_marker_response_received(struct bond_marker *marker,
    ^
    drivers/net/bonding//bond_3ad.c:1871:19: warning: parameter ‘port’ set
    but not used [-Wunused-but-set-parameter]
    struct port *port)
    ^

    Signed-off-by: Nikolay Aleksandrov
    Signed-off-by: David S. Miller

    Nikolay Aleksandrov
     
  • * Allow setting of adaptive coalescing setting for all types of interrupt.

    * In msi & legacy intr, we use single interrupt for rx & tx. In this case
    tx_coalesce_usecs is invalid. We should use only rx_coalesce_usecs.
    Do not display tx_coal values for msi/intx. And do not allow user to set
    this as well.

    * Driver supports only tx/rx_coalesce_usec and adaptive coalesce settings.
    For other values, driver does not return error. So ethtool succeeds for
    unsupported values. Introduce enic_coalesce_valid() function to validate
    the coalescing values.

    * If user requests for coalesce value greater than what adaptor supports,
    driver uses the max value. We should at least log this.

    Signed-off-by: Govindarajulu Varadarajan
    Signed-off-by: David S. Miller

    Govindarajulu Varadarajan
     
  • Adaptive interrupt coalescing is available for msix. This patch adds the support
    for msi poll. Interface for adaptive interrupt coalescing is already added in
    driver. We just did not enable it for legacy intr & msi.

    enic_calc_int_moderation() & enic_set_int_moderation() are defined as static
    after enic_poll. Since enic_poll needs it, move both of these function
    definitions above enic_poll. No change in functionality.

    Signed-off-by: Govindarajulu Varadarajan
    Signed-off-by: David S. Miller

    Govindarajulu Varadarajan
     

16 Jul, 2015

9 commits

  • protodown can be set by user space applications like MLAG on detecting
    errors on a switch port. This patch provides sample switch driver changes
    for handling protodown. Rocker PHYS disables the port in response to
    protodown.

    Signed-off-by: Anuradha Karuppiah
    Signed-off-by: Andy Gospodarek
    Signed-off-by: Roopa Prabhu
    Signed-off-by: Wilson Kok
    Signed-off-by: David S. Miller

    Anuradha Karuppiah
     
  • This patch adds support for a new method of signalling the firmware
    that TSO packets are being sent. The new method removes the need to
    alter the ip and tcp checksums and allows TSO6 support.

    Signed-off-by: Thomas Falcon
    Signed-off-by: David S. Miller

    Thomas Falcon
     
  • The current change mtu call only stops tx before removing RNDIS filter.
    In case ringbufer is not empty, the rndis_filter_device_remove() may
    hang on removing the buffers.

    This patch adds close of RNDIS filter before removing it, also a
    gradual waiting loop until the ring is empty. The change_mtu hang
    issue under heavy traffic is solved by this patch.

    Signed-off-by: Haiyang Zhang
    Reviewed-by: K. Y. Srinivasan
    Signed-off-by: David S. Miller

    Haiyang Zhang
     
  • Jeff Kirsher says:

    ====================
    Intel Wired LAN Driver Updates 2015-07-14

    This series contains updates to i40e and i40evf only.

    Joe Stringer and Jesse Gross add a ndo_features_check function to ensure
    that the i40e driver does not try to offload packets that exceed 80 bytes
    in length.

    Anjali adds additional stats to track flow director ATR and SB current
    state and flow director flush count which will help the need for verbose
    debug logs with respect to flow director. Also refines an error message
    to avoid confusion, so that it indicates what may have really happened
    when the init_shared_code() call possibly fails.

    Pawel adds new fields to the capabilities structures to handle Flex-10
    device/function capabilities which is needed to support Flex-10 configs.

    Jesse improves the transmit performance by added a prefetch for the
    next transmit descriptor to be used when we know there are more coming.

    Mitch modifies i40evf driver to handle/allow an abundance of vectors.
    Currently the driver only maps transmit and receive queues to a single
    MSI-X vector per queue if there are exactly enough vectors for this, but
    if we have too many vectors, it will fail and allocate queues to vectors
    in a suboptimal manner. So change the condition check to allow for an
    excess number of vectors and won't use the extras. Also update the
    driver to just return success if the user attempts to set a port VLAN on
    a VF that already has the same port VLAN configured, instead of going
    through unnecessary filter removals & adds. Fix the MAC filters for VFs,
    which were being programmed with 0 for the VLAN value when there was no
    VLAN assigned. Instead, we must use -1 to indicate that no VLAN is in
    use. Fix the VF disable code, which was not properly cleaning up the VF
    and would leave the VF in an indeterminate state, so fix this by
    notifying the VF and then call the normal VF reset routine. Fix the
    logic in the driver so that MAC filters are added and removed correctly
    and added a check for the driver's hardware MAC address so that this
    filter does not get removed incorrectly.

    Carolyn removes incorrect #ifdef's which should not have been added in
    the first place and with the #ifdef's removed, make the necessary
    changes in the driver to resolve compile errors.

    Greg updates the admin queue command header defines.

    v2: fix indentation in patch 12 based on feedback from Sergei Shtylyov
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • There is no need to memset memory allocated with vzalloc.

    Signed-off-by: Christophe JAILLET
    Acked-by: Shahed Shaikh
    Signed-off-by: David S. Miller

    Christophe Jaillet
     
  • The eTSEC h/w is capable of scatter/gather on the receive side
    too if MAXFRM > MRBLR, when the allowed maximum Rx frame size
    is set to be greater than the maximum Rx buffer size (MRBLR).
    It's about time the driver makes use of this h/w capability,
    by supporting fixed buffer sizes and Rx S/G.

    The buffer size given to eTSEC for reception is fixed to
    1536B (must be multiple of 64), which is the same default
    buffer size as before, used to accommodate standard MTU
    (1500B) size frames. As before, eTSEC can receive frames of
    up to 9600B. Individual Rx buffers are mapped to page halves
    (page size for eTSEC systems is 4KB). The skb is built around
    the first buffer of a frame (using build_skb()). In case the
    frame spans multiple buffers, the trailing buffers are added
    as Rx fragments to the skb. The last buffer in frame is marked
    by the L status flag. A mechanism is in place to reuse the pages
    owned by the driver (for Rx) for subsequent receptions.

    Supporting fixed size buffers allows the implementation of Rx S/G,
    which in turn removes the memory pressure issues the driver had
    before when MTU was set for jumbo frame reception.
    Also, in most cases, the Rx path becomes faster due to Rx page
    reusal, since the overhead of allocating new rx buffers is removed
    from the fast path.

    Signed-off-by: Claudiu Manoil
    Signed-off-by: David S. Miller

    Claudiu Manoil
     
  • Use "ndev" instead of "dev", as the rx queue back pointer
    to a net_device struct, to avoid name clashing with a
    "struct device" reference. This prepares the addition of a
    "struct device" back pointer to the rx queue structure.

    Remove duplicated rxq registration in the process.
    Move napi_gro_receive() outside gfar_process_frame().

    Signed-off-by: Claudiu Manoil
    Signed-off-by: David S. Miller

    Claudiu Manoil
     
  • There are several (long standing) problems about how the status
    field of the rx buffer descriptor (rxbd) is currently handled on
    the error path:
    - too many unnecessary 16bit reads of the two halves of the rxbd
    status field (32bit), also resulting in overuse of endianness
    convesion macros;
    - "bdp->status = RXBD_LARGE" makes no sense, since the "large"
    flag is read only (only eTSEC can write it), and trying to clear
    the other status bits is also error prone in this context
    (most of the rx status bits are read only anyway).

    This is fixed with a single 32bit read of the "status" field,
    and then the appropriate 16bit shifting is applied to access
    the various status bits or the rx frame length. Also corrected
    the use of the RXBD_LARGE flag.

    Additional fix:
    "rx_over_errors" stat is incremented instead of "rx_crc_errors"
    in case of RXBD_OVERRUN occurrence.

    Signed-off-by: Claudiu Manoil
    Signed-off-by: David S. Miller

    Claudiu Manoil
     
  • Use a more common consumer/ producer index design to improve
    rx buffer allocation. Instead of allocating a single new buffer
    (skb) on each iteration, bundle the allocation of several rx
    buffers at a time. This also opens the path for further memory
    optimizations.

    Remove useless check of rxq->rfbptr, since this patch touches
    rx pause frame handling code as well. rxq->rfbptr is always
    initialized as part of Rx BD ring init.
    Remove redundant (and misleading) 'amount_pull' parameter.

    Signed-off-by: Claudiu Manoil
    Signed-off-by: David S. Miller

    Claudiu Manoil
     

15 Jul, 2015

17 commits

  • Bump.

    Change-ID: I84573d9fa51effc5b29bf5b8c74e3cc8b2673f48
    Signed-off-by: Catherine Sullivan
    Tested-by: Jim Young
    Signed-off-by: Jeff Kirsher

    Catherine Sullivan
     
  • Change a warning message to indicate what may have really happened when
    the init_shared_code call fails.

    Change-ID: I616ace40fed120d0dec86dfc91ab2d7cde466904
    Signed-off-by: Anjali Singhai Jain
    Tested-by: Jim Young
    Signed-off-by: Jeff Kirsher

    Anjali Singhai Jain
     
  • The i40e_add_pd_table_entry() routine is being modified to handle both
    cases where a backing page is passed and where backing page is allocated
    in i40e_add_pd_table_entry().

    For PBLE resource management, it is more efficient for it to manage its
    backing pages. For VF, PBLE backing page addresses will be send to PF
    driver for PBLE resource.

    The i40e_remove_pd_bp() is also modified to not free pre-allocated pages and
    free only ones which were allocated in i40e_add_pd_table_entry().

    Change-ID: Ie673f0403f22979e9406f5a94048dceb91bcf9a8
    Signed-off-by: Faisal Latif
    Tested-by: Jim Young
    Signed-off-by: Jeff Kirsher

    Faisal Latif
     
  • During close, all of the MAC filters are cleared, so the driver would be
    unable to receive unicast packets after being closed and reopened.

    Add the adapter's "hardware" MAC address filter in open, not init. This
    ensures that the correct filter is present each time.

    Change-ID: I51a11e9c1200139dab6f66a5353bd38c7d26f875
    Signed-off-by: Mitch Williams
    Tested-by: Jim Young
    Signed-off-by: Jeff Kirsher

    Mitch Williams
     
  • Due to an inverted conditional, the driver was marking all of its MAC
    filters for deletion every time set_rx_mode was called. Depending upon
    the timing of the calls to set_rx_mode and the processing of the admin
    queue, the driver would (accidentally) end up with a varying number of
    functional filters.

    Correct this logic so that MAC filters are added and removed correctly.
    Add a check for the driver's "hardware" MAC address so that this filter
    doesn't get removed incorrectly.

    Change-ID: Ib3e7c4a5b53df6835f164fe44cb778cb71f8aff8
    Signed-off-by: Mitch Williams
    Tested-by: Jim Young
    Signed-off-by: Jeff Kirsher

    Mitch Williams
     
  • When a VF is disabled, there is no way for it to recover until either
    the PF driver is reloaded or SR-IOV is disabled and enabled. To correct
    this, enable the VF after a successful reset.

    Change-ID: I9e0788476c4d53d5407961b503febdfff2b8a7c6
    Signed-off-by: Mitch Williams
    Tested-by: Jim Young
    Signed-off-by: Jeff Kirsher

    Mitch Williams
     
  • The VF disable code was just whanging on the reset bit without properly
    cleaning up the VF, which would leave the VF in an indeterminate state
    from which it could not recover. Fix this by notifying the VF and then
    by calling the normal VF reset routine.

    Change-ID: I862b9dfa919368773cbdc212b805b520db2f7430
    Signed-off-by: Mitch Williams
    Tested-by: Jim Young
    Signed-off-by: Jeff Kirsher

    Mitch Williams
     
  • MAC filters for VFs were being programmed with 0 for the VLAN value when
    there was no VLAN assigned. This is incorrect and actually assigns the
    VF to VLAN 0. Instead, we must use -1 to indicate that no VLAN is in
    use. This change programs the filters correctly and gets rid of a bogus
    error message when setting a port VLAN on an active VF.

    Change-ID: Ica9a9906d768405377ff3308e27f7d0b5b2ea96e
    Signed-off-by: Mitch Williams
    Tested-by: Jim Young
    Signed-off-by: Jeff Kirsher

    Mitch Williams
     
  • Make the necessary updates to i40e_adminq_cmd.h.

    Change-ID: Ib031c86cc6cab78e5aa44c64d8ce5474be8d7e42
    Signed-off-by: Greg Rose
    Tested-by: Jim Young
    Signed-off-by: Jeff Kirsher

    Greg Rose
     
  • This patch removes some #ifdef's that should not be there. They
    were stopping code that is needed from being compiled in.

    With these #ifdef's removed, changes are needed in the driver
    to fix some compile errors: adding missing parameters to
    the definition of ndo_bridge_setlink and a ndo_dflt_brige_getlink call.

    Change-ID: I5516614e1bc50b6bca0647cef971bc96161ba2de
    Signed-off-by: Carolyn Wyborny
    Signed-off-by: Catherine Sullivan
    Tested-by: Jim Young
    Signed-off-by: Jeff Kirsher

    Carolyn Wyborny
     
  • If user attempts to set a port VLAN on a VF that already has the same
    port VLAN configured, the driver will go through a completely
    unnecessary flurry of filter removals and filter adds. Just check for
    this condition and return success instead of doing a bunch of busywork.

    Change-ID: Ia1a9e83e6ed48b3f4658bc20dfc6af0cf525d54a
    Signed-off-by: Mitch Williams
    Tested-by: Jim Young
    Signed-off-by: Jeff Kirsher

    Mitch Williams
     
  • The driver currently only maps TX and RX queues to a single MSI-X vector
    per queue pair if there are exactly enough vectors for this.
    Unfortunately, if we have too many vectors it will fail and allocate
    queues to vectors in a suboptimal manner. Change the condition check to
    allow for excess vectors. In this case, the extras just won't be used.

    Change-ID: I23e1e2955c64739c86612db88a25583e6a7e0b17
    Signed-off-by: Mitch Williams
    Tested-by: Jim Young
    Signed-off-by: Jeff Kirsher

    Mitch Williams
     
  • Add a prefetch for the next Tx descriptor to be used when we know
    there are more coming.

    Change-ID: Ibb9acab11d508eec2db7da795df74debc16eeacb
    Signed-off-by: Jesse Brandeburg
    Tested-by: Jim Young
    Signed-off-by: Jeff Kirsher

    Jesse Brandeburg
     
  • The Flex10 device/function capability has been upgraded to include
    information needed to support Flex-10 configurations. This patch adds new
    fields to the i40e_hw_capabilities structure and updates
    i40e_parse_discover_capabilities functions to extract them from the AQ
    response. Naming convention has changed to use flex10 mode instead of
    existing mfp_mode_1.

    Change-ID: I305dd888866985a30293acb3fb14fa43ca6b79ea
    Signed-off-by: Pawel Orlowski
    Signed-off-by: Akeem G Abodunrin
    Signed-off-by: Shannon Nelson
    Tested-by: Jim Young
    Signed-off-by: Jeff Kirsher

    Pawel Orlowski
     
  • Since the driver can dynamically enable/disable FD ATR and SB features,
    these stats help keep track of the current state and along with
    fd_flush count provide a means to debug what could be going on
    with the flow director filters. This will take away the need for
    being verbose in our debug logs with respect to FD.

    Change-ID: I29224f750fe6602391043655d18996570720377d
    Signed-off-by: Anjali Singhai Jain
    Tested-by: Jim Young
    Signed-off-by: Jeff Kirsher

    Anjali Singhai Jain
     
  • i40e supports UDP tunnel headers up to 80 bytes in length, so
    this adds a check to ensure that it doesn't try to offload
    packets that exceed that.

    Signed-off-by: Joe Stringer
    Signed-off-by: Jesse Gross
    Acked-by: Jesse Brandeburg
    Signed-off-by: Jeff Kirsher

    Joe Stringer
     
  • Some of the local variable intializers in the driver turned out to be pointless,
    kill them.

    Signed-off-by: Sergei Shtylyov
    Signed-off-by: David S. Miller

    Sergei Shtylyov
     

14 Jul, 2015

3 commits

  • Conflicts:
    net/bridge/br_mdb.c

    Minor conflict in br_mdb.c, in 'net' we added a memset of the
    on-stack 'ip' variable whereas in 'net-next' we assign a new
    member 'vid'.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Pull networking fixes from David Miller:

    1) Missing list head init in bluetooth hidp session creation, from Tedd
    Ho-Jeong An.

    2) Don't leak SKB in bridge netfilter error paths, from Florian
    Westphal.

    3) ipv6 netdevice private leak in netfilter bridging, fixed by Julien
    Grall.

    4) Fix regression in IP over hamradio bpq encapsulation, from Ralf
    Baechle.

    5) Fix race between rhashtable resize events and table walks, from Phil
    Sutter.

    6) Missing validation of IFLA_VF_INFO netlink attributes, fix from
    Daniel Borkmann.

    7) Missing security layer socket state initialization in tipc code,
    from Stephen Smalley.

    8) Fix shared IRQ handling in boomerang 3c59x interrupt handler, from
    Denys Vlasenko.

    9) Missing minor_idr destroy on module unload on macvtap driver, from
    Johannes Thumshirn.

    10) Various pktgen kernel thread races, from Oleg Nesterov.

    11) Fix races that can cause packets to be processed in the backlog even
    after a device attached to that SKB has been fully unregistered.
    From Julian Anastasov.

    12) bcmgenet driver doesn't account packet drops vs. errors properly,
    fix from Petri Gynther.

    13) Array index validation and off by one fix in DSA layer from Florian
    Fainelli

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (66 commits)
    can: replace timestamp as unique skb attribute
    ARM: dts: dra7x-evm: Prevent glitch on DCAN1 pinmux
    can: c_can: Fix default pinmux glitch at init
    can: rcar_can: unify error messages
    can: rcar_can: print request_irq() error code
    can: rcar_can: fix typo in error message
    can: rcar_can: print signed IRQ #
    can: rcar_can: fix IRQ check
    net: dsa: Fix off-by-one in switch address parsing
    net: dsa: Test array index before use
    net: switchdev: don't abort unsupported operations
    net: bcmgenet: fix accounting of packet drops vs errors
    cdc_ncm: update specs URL
    Doc: z8530book: Fix typo in API-z8530-sync-txdma-open.html
    net: inet_diag: always export IPV6_V6ONLY sockopt for listening sockets
    bridge: mdb: allow the user to delete mdb entry if there's a querier
    net: call rcu_read_lock early in process_backlog
    net: do not process device backlog during unregistration
    bridge: fix potential crash in __netdev_pick_tx()
    net: axienet: Fix devm_ioremap_resource return value check
    ...

    Linus Torvalds
     
  • Pull crypto fixes from Herbert Xu:
    "This fixes a duplicate dma_unmap_sg call in omap-des and reentrancy
    bugs in the powerpc nx driver which may cause bogus output or worse
    memory corruption"

    * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
    crypto: nx - Fix reentrancy bugs
    crypto: omap-des - Fix unmapping of dma channels

    Linus Torvalds
     

13 Jul, 2015

6 commits

  • This reverts commit dec4f799d0a4c9edae20512fa60b0a36f3299ca2.

    Jörg Otte reports a NULL pointder dereference due to this commit, as
    'crtc_state' very much can be NULL:

    crtc_state = state->base.state ?
    intel_atomic_get_crtc_state(state->base.state, intel_crtc) : NULL;

    So the change to test 'crtc_state->base.active' cannot possibly be
    correct as-is.

    There may be some other minimal fix (like just checking crtc_state for
    NULL), but I'm just reverting it now for the rc2 release, and people
    like Daniel Vetter who actually know this code will figure out what the
    right solution is in the longer term.

    Reported-and-bisected-by: Jörg Otte
    Cc: Ander Conselvan de Oliveira
    Cc: Jani Nikula
    Cc: Daniel Vetter
    CC: Maarten Lankhorst
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • Pull MIPS fixes from Ralf Baechle:
    "A fair number of 4.2 fixes also because Markos opened the flood gates.

    - Patch up the math used calculate the location for the page bitmap.

    - The FDC (Not what you think, FDC stands for Fast Debug Channel) IRQ
    around was causing issues on non-Malta platforms, so move the code
    to a Malta specific location.

    - A spelling fix replicated through several files.

    - Fix to the emulation of an R2 instruction for R6 cores.

    - Fix the JR emulation for R6.

    - Further patching of mindless 64 bit issues.

    - Ensure the kernel won't crash on CPUs with L2 caches with >= 8
    ways.

    - Use compat_sys_getsockopt for O32 ABI on 64 bit kernels.

    - Fix cache flushing for multithreaded cores.

    - A build fix"

    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
    MIPS: O32: Use compat_sys_getsockopt.
    MIPS: c-r4k: Extend way_string array
    MIPS: Pistachio: Support CDMM & Fast Debug Channel
    MIPS: Malta: Make GIC FDC IRQ workaround Malta specific
    MIPS: c-r4k: Fix cache flushing for MT cores
    Revert "MIPS: Kconfig: Disable SMP/CPS for 64-bit"
    MIPS: cps-vec: Use macros for various arithmetics and memory operations
    MIPS: kernel: cps-vec: Replace KSEG0 with CKSEG0
    MIPS: kernel: cps-vec: Use ta0-ta3 pseudo-registers for 64-bit
    MIPS: kernel: cps-vec: Replace mips32r2 ISA level with mips64r2
    MIPS: kernel: cps-vec: Replace 'la' macro with PTR_LA
    MIPS: kernel: smp-cps: Fix 64-bit compatibility errors due to pointer casting
    MIPS: Fix erroneous JR emulation for MIPS R6
    MIPS: Fix branch emulation for BLTC and BGEC instructions
    MIPS: kernel: traps: Fix broken indentation
    MIPS: bootmem: Don't use memory holes for page bitmap
    MIPS: O32: Do not handle require 32 bytes from the stack to be readable.
    MIPS, CPUFREQ: Fix spelling of Institute.
    MIPS: Lemote 2F: Fix build caused by recent mass rename.

    Linus Torvalds
     
  • Commit 514ac99c64b "can: fix multiple delivery of a single CAN frame for
    overlapping CAN filters" requires the skb->tstamp to be set to check for
    identical CAN skbs.

    Without timestamping to be required by user space applications this timestamp
    was not generated which lead to commit 36c01245eb8 "can: fix loss of CAN frames
    in raw_rcv" - which forces the timestamp to be set in all CAN related skbuffs
    by introducing several __net_timestamp() calls.

    This forces e.g. out of tree drivers which are not using alloc_can{,fd}_skb()
    to add __net_timestamp() after skbuff creation to prevent the frame loss fixed
    in mainline Linux.

    This patch removes the timestamp dependency and uses an atomic counter to
    create an unique identifier together with the skbuff pointer.

    Btw: the new skbcnt element introduced in struct can_skb_priv has to be
    initialized with zero in out-of-tree drivers which are not using
    alloc_can{,fd}_skb() too.

    Signed-off-by: Oliver Hartkopp
    Cc: linux-stable
    Signed-off-by: Marc Kleine-Budde

    Oliver Hartkopp
     
  • The previous change 3973c526ae9c (net: can: c_can: Disable pins when CAN
    interface is down) causes a slight glitch on the pinctrl settings when used.
    Since commit ab78029 (drivers/pinctrl: grab default handles from device core),
    the device core will automatically set the default pins. This causes the pins
    to be momentarily set to the default and then to the sleep state in
    register_c_can_dev(). By adding an optional "enable" state, boards can set the
    default pin state to be disabled and avoid the glitch when the switch from
    default to sleep first occurs. If the "enable" state is not available
    c_can_pinctrl_select_state() falls back to using the "default" pinctrl state.

    [Roger Q] - Forward port to v4.2 and use pinctrl_get_select().

    Signed-off-by: J.D. Schroeder
    Signed-off-by: Roger Quadros
    Reviewed-by: Grygorii Strashko
    Cc: linux-stable
    Signed-off-by: Marc Kleine-Budde

    J.D. Schroeder
     
  • All the error messages in the driver but the ones from devm_clk_get() failures
    use similar format. Make those two messages consitent with others.

    Signed-off-by: Sergei Shtylyov
    Signed-off-by: Marc Kleine-Budde

    Sergei Shtylyov
     
  • Also print the error code when the request_irq() call fails in rcar_can_open(),
    rewording the error message...

    Signed-off-by: Sergei Shtylyov
    Signed-off-by: Marc Kleine-Budde

    Sergei Shtylyov