1. 18 2月, 2022 2 次提交
  2. 18 4月, 2021 1 次提交
  3. 14 4月, 2021 3 次提交
  4. 23 3月, 2021 1 次提交
    • J
      iwlwifi: Fix softirq/hardirq disabling in iwl_pcie_enqueue_hcmd() · 2800aadc
      Jiri Kosina 提交于
      It's possible for iwl_pcie_enqueue_hcmd() to be called with hard IRQs
      disabled (e.g. from LED core). We can't enable BHs in such a situation.
      
      Turn the unconditional BH-enable/BH-disable code into
      hardirq-disable/conditional-enable.
      
      This fixes the warning below.
      
       WARNING: CPU: 1 PID: 1139 at kernel/softirq.c:178 __local_bh_enable_ip+0xa5/0xf0
       CPU: 1 PID: 1139 Comm: NetworkManager Not tainted 5.12.0-rc1-00004-gb4ded168af79 #7
       Hardware name: LENOVO 20K5S22R00/20K5S22R00, BIOS R0IET38W (1.16 ) 05/31/2017
       RIP: 0010:__local_bh_enable_ip+0xa5/0xf0
       Code: f7 69 e8 ee 23 14 00 fb 66 0f 1f 44 00 00 65 8b 05 f0 f4 f7 69 85 c0 74 3f 48 83 c4 08 5b c3 65 8b 05 9b fe f7 69 85 c0 75 8e <0f> 0b eb 8a 48 89 3c 24 e8 4e 20 14 00 48 8b 3c 24 eb 91 e8 13 4e
       RSP: 0018:ffffafd580b13298 EFLAGS: 00010046
       RAX: 0000000000000000 RBX: 0000000000000201 RCX: 0000000000000000
       RDX: 0000000000000003 RSI: 0000000000000201 RDI: ffffffffc1272389
       RBP: ffff96517ae4c018 R08: 0000000000000001 R09: 0000000000000000
       R10: ffffafd580b13178 R11: 0000000000000001 R12: ffff96517b060000
       R13: 0000000000000000 R14: ffffffff80000000 R15: 0000000000000001
       FS:  00007fc604ebefc0(0000) GS:ffff965267480000(0000) knlGS:0000000000000000
       CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
       CR2: 000055fb3fef13b2 CR3: 0000000109112004 CR4: 00000000003706e0
       Call Trace:
        ? _raw_spin_unlock_bh+0x1f/0x30
        iwl_pcie_enqueue_hcmd+0x5d9/0xa00 [iwlwifi]
        iwl_trans_txq_send_hcmd+0x6c/0x430 [iwlwifi]
        iwl_trans_send_cmd+0x88/0x170 [iwlwifi]
        ? lock_acquire+0x277/0x3d0
        iwl_mvm_send_cmd+0x32/0x80 [iwlmvm]
        iwl_mvm_led_set+0xc2/0xe0 [iwlmvm]
        ? led_trigger_event+0x46/0x70
        led_trigger_event+0x46/0x70
        ieee80211_do_open+0x5c5/0xa20 [mac80211]
        ieee80211_open+0x67/0x90 [mac80211]
        __dev_open+0xd4/0x150
        __dev_change_flags+0x19e/0x1f0
        dev_change_flags+0x23/0x60
        do_setlink+0x30d/0x1230
        ? lock_is_held_type+0xb4/0x120
        ? __nla_validate_parse.part.7+0x57/0xcb0
        ? __lock_acquire+0x2e1/0x1a50
        __rtnl_newlink+0x560/0x910
        ? __lock_acquire+0x2e1/0x1a50
        ? __lock_acquire+0x2e1/0x1a50
        ? lock_acquire+0x277/0x3d0
        ? sock_def_readable+0x5/0x290
        ? lock_is_held_type+0xb4/0x120
        ? find_held_lock+0x2d/0x90
        ? sock_def_readable+0xb3/0x290
        ? lock_release+0x166/0x2a0
        ? lock_is_held_type+0x90/0x120
        rtnl_newlink+0x47/0x70
        rtnetlink_rcv_msg+0x25c/0x470
        ? netlink_deliver_tap+0x97/0x3e0
        ? validate_linkmsg+0x350/0x350
        netlink_rcv_skb+0x50/0x100
        netlink_unicast+0x1b2/0x280
        netlink_sendmsg+0x336/0x450
        sock_sendmsg+0x5b/0x60
        ____sys_sendmsg+0x1ed/0x250
        ? copy_msghdr_from_user+0x5c/0x90
        ___sys_sendmsg+0x88/0xd0
        ? lock_is_held_type+0xb4/0x120
        ? find_held_lock+0x2d/0x90
        ? lock_release+0x166/0x2a0
        ? __fget_files+0xfe/0x1d0
        ? __sys_sendmsg+0x5e/0xa0
        __sys_sendmsg+0x5e/0xa0
        ? lockdep_hardirqs_on_prepare+0xd9/0x170
        do_syscall_64+0x33/0x80
        entry_SYSCALL_64_after_hwframe+0x44/0xae
       RIP: 0033:0x7fc605c9572d
       Code: 28 89 54 24 1c 48 89 74 24 10 89 7c 24 08 e8 da ee ff ff 8b 54 24 1c 48 8b 74 24 10 41 89 c0 8b 7c 24 08 b8 2e 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 33 44 89 c7 48 89 44 24 08 e8 2e ef ff ff 48
       RSP: 002b:00007fffc83789f0 EFLAGS: 00000293 ORIG_RAX: 000000000000002e
       RAX: ffffffffffffffda RBX: 000055ef468570c0 RCX: 00007fc605c9572d
       RDX: 0000000000000000 RSI: 00007fffc8378a30 RDI: 000000000000000c
       RBP: 0000000000000010 R08: 0000000000000000 R09: 0000000000000000
       R10: 0000000000000000 R11: 0000000000000293 R12: 0000000000000000
       R13: 00007fffc8378b80 R14: 00007fffc8378b7c R15: 0000000000000000
       irq event stamp: 170785
       hardirqs last  enabled at (170783): [<ffffffff9609a8c2>] __local_bh_enable_ip+0x82/0xf0
       hardirqs last disabled at (170784): [<ffffffff96a8613d>] _raw_read_lock_irqsave+0x8d/0x90
       softirqs last  enabled at (170782): [<ffffffffc1272389>] iwl_pcie_enqueue_hcmd+0x5d9/0xa00 [iwlwifi]
       softirqs last disabled at (170785): [<ffffffffc1271ec6>] iwl_pcie_enqueue_hcmd+0x116/0xa00 [iwlwifi]
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      Tested-by: Sedat Dilek <sedat.dilek@gmail.com> # LLVM/Clang v12.0.0-rc3
      Acked-by: NLuca Coelho <luciano.coelho@intel.com>
      Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
      Link: https://lore.kernel.org/r/nycvar.YFH.7.76.2103021125430.12405@cbobk.fhfr.pm
      2800aadc
  5. 10 2月, 2021 2 次提交
  6. 05 2月, 2021 4 次提交
  7. 25 1月, 2021 1 次提交
  8. 10 12月, 2020 3 次提交
  9. 09 10月, 2020 1 次提交
  10. 02 10月, 2020 6 次提交
  11. 08 8月, 2020 1 次提交
    • W
      mm, treewide: rename kzfree() to kfree_sensitive() · 453431a5
      Waiman Long 提交于
      As said by Linus:
      
        A symmetric naming is only helpful if it implies symmetries in use.
        Otherwise it's actively misleading.
      
        In "kzalloc()", the z is meaningful and an important part of what the
        caller wants.
      
        In "kzfree()", the z is actively detrimental, because maybe in the
        future we really _might_ want to use that "memfill(0xdeadbeef)" or
        something. The "zero" part of the interface isn't even _relevant_.
      
      The main reason that kzfree() exists is to clear sensitive information
      that should not be leaked to other future users of the same memory
      objects.
      
      Rename kzfree() to kfree_sensitive() to follow the example of the recently
      added kvfree_sensitive() and make the intention of the API more explicit.
      In addition, memzero_explicit() is used to clear the memory to make sure
      that it won't get optimized away by the compiler.
      
      The renaming is done by using the command sequence:
      
        git grep -w --name-only kzfree |\
        xargs sed -i 's/kzfree/kfree_sensitive/'
      
      followed by some editing of the kfree_sensitive() kerneldoc and adding
      a kzfree backward compatibility macro in slab.h.
      
      [akpm@linux-foundation.org: fs/crypto/inline_crypt.c needs linux/slab.h]
      [akpm@linux-foundation.org: fix fs/crypto/inline_crypt.c some more]
      Suggested-by: NJoe Perches <joe@perches.com>
      Signed-off-by: NWaiman Long <longman@redhat.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Acked-by: NDavid Howells <dhowells@redhat.com>
      Acked-by: NMichal Hocko <mhocko@suse.com>
      Acked-by: NJohannes Weiner <hannes@cmpxchg.org>
      Cc: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
      Cc: James Morris <jmorris@namei.org>
      Cc: "Serge E. Hallyn" <serge@hallyn.com>
      Cc: Joe Perches <joe@perches.com>
      Cc: Matthew Wilcox <willy@infradead.org>
      Cc: David Rientjes <rientjes@google.com>
      Cc: Dan Carpenter <dan.carpenter@oracle.com>
      Cc: "Jason A . Donenfeld" <Jason@zx2c4.com>
      Link: http://lkml.kernel.org/r/20200616154311.12314-3-longman@redhat.comSigned-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      453431a5
  12. 29 5月, 2020 2 次提交
  13. 08 5月, 2020 1 次提交
  14. 27 3月, 2020 1 次提交
  15. 23 12月, 2019 3 次提交
    • L
      iwlwifi: remove CSR registers abstraction · 6dece0e9
      Luca Coelho 提交于
      We needed this abstraction for some CSR registers for
      IWL_DEVICE_22560, but that has been removed, so we don't need the
      abstraction anymore.  Remove it.
      Signed-off-by: NLuca Coelho <luciano.coelho@intel.com>
      6dece0e9
    • J
      iwlwifi: pcie: allocate smaller dev_cmd for TX headers · a89c72ff
      Johannes Berg 提交于
      As noted in the previous commit, due to the way we allocate the
      dev_cmd headers with 324 byte size, and 4/8 byte alignment, the
      part we use of them (bytes 20..40-68) could still cross a page
      and thus 2^32 boundary.
      
      Address this by using alignment to ensure that the allocation
      cannot cross a page boundary, on hardware that's affected. To
      make that not cause more memory consumption, reduce the size of
      the allocations to the necessary size - we go from 324 bytes in
      each allocation to 60/68 on gen2 depending on family, and ~120
      or so on gen1 (so on gen1 it's a pure reduction in size, since
      we don't need alignment there).
      
      To avoid size and clearing issues, add a new structure that's
      just the header, and use kmem_cache_zalloc().
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NLuca Coelho <luciano.coelho@intel.com>
      a89c72ff
    • J
      iwlwifi: pcie: work around DMA hardware bug · c4a786b3
      Johannes Berg 提交于
      There's a hardware bug in the flow handler (DMA engine), if the
      address + len of some TB wraps around a 2^32 boundary, the carry
      bit is then carried over into the next TB.
      
      Work around this by copying the data to a new page when we find
      this situation, and then copy it in a way that we cannot hit the
      very end of the page.
      
      To be able to free the new page again later we need to chain it
      to the TSO page, use the last pointer there to make sure we can
      never use the page fully for DMA, and thus cannot cause the same
      overflow situation on this page.
      
      This leaves a few potential places (where we didn't observe the
      problem) unaddressed:
       * The second TB could reach or cross the end of a page (and thus
         2^32) due to the way we allocate the dev_cmd for the header
       * For host commands, a similar thing could happen since they're
         just kmalloc().
      We'll address these in further commits.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NLuca Coelho <luciano.coelho@intel.com>
      c4a786b3
  16. 20 12月, 2019 1 次提交
  17. 20 11月, 2019 1 次提交
  18. 15 11月, 2019 1 次提交
  19. 06 9月, 2019 5 次提交