All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christian Marangi <ansuelsmth@gmail.com>
To: Dan Carpenter <error27@gmail.com>
Cc: ath11k@lists.infradead.org
Subject: Re: [bug report] wifi: ath11k: fix peer addition/deletion error on sta band migration
Date: Fri, 10 Feb 2023 00:55:41 +0100	[thread overview]
Message-ID: <63e587fe.df0a0220.47373.9a06@mx.google.com> (raw)
In-Reply-To: <Y+S+WDeZqeooMdiM@kili>

On Thu, Feb 09, 2023 at 12:35:20PM +0300, Dan Carpenter wrote:
> Hello Christian Marangi,
> 
> The patch d673cb6fe6c0: "wifi: ath11k: fix peer addition/deletion
> error on sta band migration" from Sep 22, 2022, leads to the
> following Smatch static checker warning:
> 
> 	drivers/net/wireless/ath/ath11k/peer.c:396 ath11k_peer_create()
> 	warn: sleeping in atomic context
> 
> drivers/net/wireless/ath/ath11k/peer.c
>     370 int ath11k_peer_create(struct ath11k *ar, struct ath11k_vif *arvif,
>     371                        struct ieee80211_sta *sta, struct peer_create_params *param)
>     372 {
>     373         struct ath11k_peer *peer;
>     374         struct ath11k_sta *arsta;
>     375         int ret, fbret;
>     376 
>     377         lockdep_assert_held(&ar->conf_mutex);
>     378 
>     379         if (ar->num_peers > (ar->max_num_peers - 1)) {
>     380                 ath11k_warn(ar->ab,
>     381                             "failed to create peer due to insufficient peer entry resource in firmware\n");
>     382                 return -ENOBUFS;
>     383         }
>     384 
>     385         spin_lock_bh(&ar->ab->base_lock);
>                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> Holding a spin lock.
> 
>     386         peer = ath11k_peer_find_by_addr(ar->ab, param->peer_addr);
>     387         if (peer) {
>     388                 if (peer->vdev_id == param->vdev_id) {
>     389                         spin_unlock_bh(&ar->ab->base_lock);
>     390                         return -EINVAL;
>     391                 }
>     392 
>     393                 /* Assume sta is transitioning to another band.
>     394                  * Remove here the peer from rhash.
>     395                  */
> --> 396                 mutex_lock(&ar->ab->tbl_mtx_lock);
>                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> So we can't take a mutex.
> 
>     397                 ath11k_peer_rhash_delete(ar->ab, peer);
>     398                 mutex_unlock(&ar->ab->tbl_mtx_lock);
>     399         }
>     400         spin_unlock_bh(&ar->ab->base_lock);
>     401 
>     402         ret = ath11k_wmi_send_peer_create_cmd(ar, param);

Hi,
thanks for the report. I send a patch to ath mailing list that should
fix this bug!

-- 
	Ansuel

-- 
ath11k mailing list
ath11k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath11k

  reply	other threads:[~2023-02-09 23:55 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-09  9:35 [bug report] wifi: ath11k: fix peer addition/deletion error on sta band migration Dan Carpenter
2023-02-09 23:55 ` Christian Marangi [this message]
2023-02-13 12:26   ` Kalle Valo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=63e587fe.df0a0220.47373.9a06@mx.google.com \
    --to=ansuelsmth@gmail.com \
    --cc=ath11k@lists.infradead.org \
    --cc=error27@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.