1. 15 Oct, 2015 12 commits
  2. 14 Oct, 2015 22 commits
  3. 13 Oct, 2015 6 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