1. 15 Oct, 2015 8 commits
  2. 14 Oct, 2015 22 commits
  3. 13 Oct, 2015 10 commits
    • Alexandre Belloni's avatar
      can: at91: remove at91_can_data · 42160a04
      Alexandre Belloni authored
      struct at91_can_data was used to pass a callback to the driver, allowing it
      to switch the transceiver on and off. As all at91 boards are now using DT,
      this is not used anymore, remove that structure.
      Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@free-electrons.com>
      Signed-off-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
      42160a04
    • Arnd Bergmann's avatar
      can: avoid using timeval for uapi · ba61a8d9
      Arnd Bergmann authored
      The can subsystem communicates with user space using a bcm_msg_head
      header, which contains two timestamps. This is problematic for
      multiple reasons:
      
      a) The structure layout is currently incompatible between 64-bit
         user space and 32-bit user space, and cannot work in compat
         mode (other than x32).
      
      b) The timeval structure layout will change in 32-bit user
         space when we fix the y2038 overflow problem by redefining
         time_t to 64-bit, making new 32-bit user space incompatible
         with the current kernel interface.
         Cars last a long time and often use old kernels, so the actual
         users of this code are the most likely ones to migrate to y2038
         safe user space.
      
      This tries to work around part of the problem by changing the
      publicly visible user interface in the header, but not the binary
      interface. Fortunately, the values passed around in the structure
      are relative times and do not actually suffer from the y2038
      overflow, so 32-bit is enough here.
      
      We replace the use of 'struct timeval' with a newly defined
      'struct bcm_timeval' that uses the exact same binary layout
      as before and that still suffers from problem a) but not problem
      b).
      
      The downside of this approach is that any user space program
      that currently assigns a timeval structure to these members
      rather than writing the tv_sec/tv_usec portions individually
      will suffer a compile-time error when built with an updated
      kernel header. Fixing this error makes it work fine with old
      and new headers though.
      
      We could address problem a) by using '__u32' or 'int' members
      rather than 'long', but that would have a more significant
      downside in also breaking support for all existing 64-bit user
      binaries that might be using this interface, which is likely
      not acceptable.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Acked-by: default avatarOliver Hartkopp <socketcan@hartkopp.net>
      Cc: linux-can@vger.kernel.org
      Cc: linux-api@vger.kernel.org
      Signed-off-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
      ba61a8d9
    • Gerhard Bertelsmann's avatar
      can: sun4i: fix MODULE_DESCRIPTION · 3c200db5
      Gerhard Bertelsmann authored
      This patch change description of the module.
      Signed-off-by: default avatarGerhard Bertelsmann <info@gerhard-bertelsmann.de>
      Signed-off-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
      3c200db5
    • Gerhard Bertelsmann's avatar
      can: sun4i: fix arbitration lost error reporting · 887e07be
      Gerhard Bertelsmann authored
      This patch fixes a bug in arbitration error reporting
      Reported-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarGerhard Bertelsmann <info@gerhard-bertelsmann.de>
      Signed-off-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
      887e07be
    • David S. Miller's avatar
      Merge branch 'bridge-vlan' · bbb300eb
      David S. Miller authored
      Nikolay Aleksandrov says:
      
      ====================
      bridge: vlan: cleanups & fixes (part 3)
      
      Patch 01 converts the vlgrp member to use rcu as it was already used in a
      similar way so better to make it official and use all the available RCU
      instrumentation. Patch 02 fixes a bug where the vlan_list can be traversed
      without rtnl or rcu held which could lead to using freed entries.
      Patch 03 removes some redundant code that isn't needed anymore.
      Patch 04 fixes a bug reported by Ido Schimmel about the vlan_flush order
      and switchdevs, it moves it back.
      
      v2: patch 03 and 04 are new, couldn't escape the second synchronize_rcu()
      since the rhtable destruction can sleep
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bbb300eb
    • Nikolay Aleksandrov's avatar
      bridge: vlan: move back vlan_flush · f409d0ed
      Nikolay Aleksandrov authored
      Ido Schimmel reported a problem with switchdev devices because of the
      order change of del_nbp operations, more specifically the move of
      nbp_vlan_flush() which deletes all vlans and frees vlgrp after the
      rx_handler has been unregistered. So in order to fix this move
      vlan_flush back where it was and make it destroy the rhtable after
      NULLing vlgrp and waiting a grace period to make sure noone can see it.
      Reported-by: default avatarIdo Schimmel <idosch@mellanox.com>
      Signed-off-by: default avatarNikolay Aleksandrov <nikolay@cumulusnetworks.com>
      Reviewed-by: default avatarIdo Schimmel <idosch@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f409d0ed
    • Nikolay Aleksandrov's avatar
      bridge: vlan: drop unnecessary flush code · b8d02c3c
      Nikolay Aleksandrov authored
      As Ido Schimmel pointed out the vlan_vid_del() code in nbp_vlan_flush is
      unnecessary (and is actually a remnant of the old vlan code) so we can
      remove it.
      Signed-off-by: default avatarNikolay Aleksandrov <nikolay@cumulusnetworks.com>
      Reviewed-by: default avatarIdo Schimmel <idosch@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b8d02c3c
    • Nikolay Aleksandrov's avatar
      bridge: vlan: use rcu for vlan_list traversal in br_fill_ifinfo · e9c953ef
      Nikolay Aleksandrov authored
      br_fill_ifinfo is called by br_ifinfo_notify which can be called from
      many contexts with different locks held, sometimes it relies upon
      bridge's spinlock only which is a problem for the vlan code, so use
      explicitly rcu for that to avoid problems.
      Signed-off-by: default avatarNikolay Aleksandrov <nikolay@cumulusnetworks.com>
      Reviewed-by: default avatarIdo Schimmel <idosch@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e9c953ef
    • Nikolay Aleksandrov's avatar
      bridge: vlan: use proper rcu for the vlgrp member · 907b1e6e
      Nikolay Aleksandrov authored
      The bridge and port's vlgrp member is already used in RCU way, currently
      we rely on the fact that it cannot disappear while the port exists but
      that is error-prone and we might miss places with improper locking
      (either RCU or RTNL must be held to walk the vlan_list). So make it
      official and use RCU for vlgrp to catch offenders. Introduce proper vlgrp
      accessors and use them consistently throughout the code.
      Signed-off-by: default avatarNikolay Aleksandrov <nikolay@cumulusnetworks.com>
      Reviewed-by: default avatarIdo Schimmel <idosch@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      907b1e6e
    • David S. Miller's avatar
      Merge branch 'vrf-ipv6' · 4b918163
      David S. Miller authored
      David Ahern says:
      
      ====================
      net: VRF support in IPv6 stack
      
      Initial support for VRF in IPv6 stack. Makes IPv6 functionality on par
      with IPv4 -- ping, tcp client/server and udp client/server all work fine.
      tcpdump on vrf device and external tap (e.g., host side tap device) shows
      all packets with proper addresses. IPv6 does not need the source address
      operation like IPv4. Verified vti6 works properly in my setup as does use
      of an IPv6 address on the VRF device.
      
      v3
      - re-based to top of net-next (updates per net namespace changes by Eric)
      - fixed dst_entry typecasts as requested by Dave
      - added flags to inet6_rtm_getroute (IPv6 version of deaa0a6a)
      
      v2
      - fixed CONFIG_IPV6 dependency as questioned by Cong
        - if IPV6 is a module, kbuild ensures VRF is a module
        - if IPV6 is disabled IPV6 functionality is compiled out of VRF module
      - addressed comments from Nik over IRC
        - removed duplicate call to netif_is_l3_master in l3mdev_rt6_dst_by_oif
        - changed allocation flag from GFP_ATOMIC to GFP_KERNEL since it is init time
        - added free of rt6i_pcpu
        - check_ipv6_frame returns false only if packet is NDISC type
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4b918163