1. 14 4月, 2015 1 次提交
  2. 03 2月, 2015 1 次提交
  3. 18 1月, 2015 1 次提交
    • J
      netlink: make nlmsg_end() and genlmsg_end() void · 053c095a
      Johannes Berg 提交于
      Contrary to common expectations for an "int" return, these functions
      return only a positive value -- if used correctly they cannot even
      return 0 because the message header will necessarily be in the skb.
      
      This makes the very common pattern of
      
        if (genlmsg_end(...) < 0) { ... }
      
      be a whole bunch of dead code. Many places also simply do
      
        return nlmsg_end(...);
      
      and the caller is expected to deal with it.
      
      This also commonly (at least for me) causes errors, because it is very
      common to write
      
        if (my_function(...))
          /* error condition */
      
      and if my_function() does "return nlmsg_end()" this is of course wrong.
      
      Additionally, there's not a single place in the kernel that actually
      needs the message length returned, and if anyone needs it later then
      it'll be very easy to just use skb->len there.
      
      Remove this, and make the functions void. This removes a bunch of dead
      code as described above. The patch adds lines because I did
      
      -	return nlmsg_end(...);
      +	nlmsg_end(...);
      +	return 0;
      
      I could have preserved all the function's return values by returning
      skb->len, but instead I've audited all the places calling the affected
      functions and found that none cared. A few places actually compared
      the return value with <= 0 in dump functionality, but that could just
      be changed to < 0 with no change in behaviour, so I opted for the more
      efficient version.
      
      One instance of the error I've made numerous times now is also present
      in net/phonet/pn_netlink.c in the route_dumpit() function - it didn't
      check for <0 or <=0 and thus broke out of the loop every single time.
      I've preserved this since it will (I think) have caused the messages to
      userspace to be formatted differently with just a single message for
      every SKB returned to userspace. It's possible that this isn't needed
      for the tools that actually use this, but I don't even know what they
      are so couldn't test that changing this behaviour would be acceptable.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      053c095a
  4. 03 12月, 2014 2 次提交
  5. 17 2月, 2014 1 次提交
  6. 11 12月, 2013 1 次提交
  7. 20 11月, 2013 3 次提交
  8. 15 11月, 2013 1 次提交
  9. 07 10月, 2013 1 次提交
  10. 25 9月, 2013 1 次提交
  11. 14 8月, 2013 2 次提交
  12. 31 7月, 2013 1 次提交
  13. 14 6月, 2013 4 次提交
    • S
      NFC: Add secure element enablement netlink API · be085653
      Samuel Ortiz 提交于
      Enabling or disabling an NFC accessible secure element through netlink
      requires giving both an NFC controller and a secure element indexes.
      Once enabled the secure element will handle card emulation once polling
      starts.
      Signed-off-by: NSamuel Ortiz <sameo@linux.intel.com>
      be085653
    • S
      NFC: Send netlink events for secure elements additions and removals · 2757c372
      Samuel Ortiz 提交于
      When an NFC driver or host controller stack discovers a secure element,
      it will call nfc_add_se(). In order for userspace applications to use
      these secure elements, a netlink event will then be sent with the SE
      index and its type. With that information userspace applications can
      decide wether or not to enable SEs, through their indexes.
      Signed-off-by: NSamuel Ortiz <sameo@linux.intel.com>
      2757c372
    • S
      NFC: Remove the static supported_se field · 0b456c41
      Samuel Ortiz 提交于
      Supported secure elements are typically found during a discovery process
      initiated when the NFC controller is up and running. For a given NFC
      chipset there can be many configurations (embedded SE or not, with or
      without a SIM card wired to the NFC controller SWP interface, etc...) and
      thus driver code will never know before hand which SEs are available.
      So we remove this field, it will be replaced by a real SE discovery
      mechanism.
      Signed-off-by: NSamuel Ortiz <sameo@linux.intel.com>
      0b456c41
    • E
      NFC: Add firmware upload netlink command · 9674da87
      Eric Lapuyade 提交于
      As several NFC chipsets can have their firmwares upgraded and
      reflashed, this patchset adds a new netlink command to trigger
      that the driver loads or flashes a new firmware. This will allows
      userspace triggered firmware upgrade through netlink.
      The firmware name or hint is passed as a parameter, and the driver
      will eventually fetch the firmware binary through the request_firmware
      API.
      The cmd can only be executed when the nfc dev is not in use. Actual
      firmware loading/flashing is an asynchronous operation. Result of the
      operation shall send a new event up to user space through the nfc dev
      multicast socket. During operation, the nfc dev is not openable and
      thus not usable.
      Signed-off-by: NEric Lapuyade <eric.lapuyade@intel.com>
      Signed-off-by: NSamuel Ortiz <sameo@linux.intel.com>
      9674da87
  14. 26 4月, 2013 1 次提交
  15. 11 3月, 2013 2 次提交
  16. 10 1月, 2013 1 次提交
    • S
      NFC: Initial Secure Element API · 390a1bd8
      Samuel Ortiz 提交于
      Each NFC adapter can have several links to different secure elements and
      that property needs to be exported by the drivers.
      A secure element link can be enabled and disabled, and card emulation will
      be handled by the currently active one. Otherwise card emulation will be
      host implemented.
      Signed-off-by: NSamuel Ortiz <sameo@linux.intel.com>
      390a1bd8
  17. 29 10月, 2012 1 次提交
  18. 27 10月, 2012 2 次提交
  19. 27 9月, 2012 1 次提交
    • S
      NFC: Fix sleeping in invalid context when netlink socket is closed · 3c0cc8aa
      Szymon Janc 提交于
      netlink_register_notifier requires notify functions to not sleep.
      nfc_stop_poll locks device mutex and must not be called from notifier.
      Create workqueue that will handle this for all devices.
      
      BUG: sleeping function called from invalid context at kernel/mutex.c:269
      in_atomic(): 0, irqs_disabled(): 0, pid: 4497, name: neard
      1 lock held by neard/4497:
      Pid: 4497, comm: neard Not tainted 3.5.0-999-nfc+ #5
      Call Trace:
      [<ffffffff810952c5>] __might_sleep+0x145/0x200
      [<ffffffff81743dde>] mutex_lock_nested+0x2e/0x50
      [<ffffffff816ffd19>] nfc_stop_poll+0x39/0xb0
      [<ffffffff81700a17>] nfc_genl_rcv_nl_event+0x77/0xc0
      [<ffffffff8174aa8c>] notifier_call_chain+0x5c/0x120
      [<ffffffff8174abd6>] __atomic_notifier_call_chain+0x86/0x140
      [<ffffffff8174ab50>] ? notifier_call_chain+0x120/0x120
      [<ffffffff815e1347>] ? skb_dequeue+0x67/0x90
      [<ffffffff8174aca6>] atomic_notifier_call_chain+0x16/0x20
      [<ffffffff8162119a>] netlink_release+0x24a/0x280
      [<ffffffff815d7aa8>] sock_release+0x28/0xa0
      [<ffffffff815d7be7>] sock_close+0x17/0x30
      [<ffffffff811b2a7c>] __fput+0xcc/0x250
      [<ffffffff811b2c0e>] ____fput+0xe/0x10
      [<ffffffff81085009>] task_work_run+0x69/0x90
      [<ffffffff8101b951>] do_notify_resume+0x81/0xd0
      [<ffffffff8174ef22>] int_signal+0x12/0x17
      Signed-off-by: NSzymon Janc <szymon.janc@tieto.com>
      Signed-off-by: NSamuel Ortiz <sameo@linux.intel.com>
      3c0cc8aa
  20. 11 9月, 2012 1 次提交
  21. 10 7月, 2012 1 次提交
  22. 29 6月, 2012 1 次提交
    • T
      net: Use NLMSG_DEFAULT_SIZE in combination with nlmsg_new() · 58050fce
      Thomas Graf 提交于
      Using NLMSG_GOODSIZE results in multiple pages being used as
      nlmsg_new() will automatically add the size of the netlink
      header to the payload thus exceeding the page limit.
      
      NLMSG_DEFAULT_SIZE takes this into account.
      Signed-off-by: NThomas Graf <tgraf@suug.ch>
      Cc: Jiri Pirko <jpirko@redhat.com>
      Cc: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
      Cc: Sergey Lapin <slapin@ossfans.org>
      Cc: Johannes Berg <johannes@sipsolutions.net>
      Cc: Lauro Ramos Venancio <lauro.venancio@openbossa.org>
      Cc: Aloisio Almeida Jr <aloisio.almeida@openbossa.org>
      Cc: Samuel Ortiz <sameo@linux.intel.com>
      Reviewed-by: NJiri Pirko <jpirko@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      58050fce
  23. 05 6月, 2012 3 次提交
  24. 16 5月, 2012 2 次提交
  25. 13 4月, 2012 1 次提交
  26. 02 4月, 2012 1 次提交
  27. 07 3月, 2012 2 次提交