Merge 5.10.55 into android12-5.10-lts
Changes in 5.10.55 tools: Allow proper CC/CXX/... override with LLVM=1 in Makefile.include io_uring: fix link timeout refs KVM: x86: determine if an exception has an error code only when injecting it. af_unix: fix garbage collect vs MSG_PEEK workqueue: fix UAF in pwq_unbound_release_workfn() cgroup1: fix leaked context root causing sporadic NULL deref in LTP net/802/mrp: fix memleak in mrp_request_join() net/802/garp: fix memleak in garp_request_join() net: annotate data race around sk_ll_usec sctp: move 198 addresses from unusable to private scope rcu-tasks: Don't delete holdouts within trc_inspect_reader() rcu-tasks: Don't delete holdouts within trc_wait_for_one_reader() ipv6: allocate enough headroom in ip6_finish_output2() drm/ttm: add a check against null pointer dereference hfs: add missing clean-up in hfs_fill_super hfs: fix high memory mapping in hfs_bnode_read hfs: add lock nesting notation to hfs_find_init firmware: arm_scmi: Fix possible scmi_linux_errmap buffer overflow firmware: arm_scmi: Fix range check for the maximum number of pending messages cifs: fix the out of range assignment to bit fields in parse_server_interfaces iomap: remove the length variable in iomap_seek_data iomap: remove the length variable in iomap_seek_hole ARM: dts: versatile: Fix up interrupt controller node names ipv6: ip6_finish_output2: set sk into newly allocated nskb Linux 5.10.55 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com> Change-Id: I2d673bdde784b3689af73289305091dbd4ead042
This commit is contained in:
@@ -3689,15 +3689,21 @@ static void pwq_unbound_release_workfn(struct work_struct *work)
|
||||
unbound_release_work);
|
||||
struct workqueue_struct *wq = pwq->wq;
|
||||
struct worker_pool *pool = pwq->pool;
|
||||
bool is_last;
|
||||
bool is_last = false;
|
||||
|
||||
if (WARN_ON_ONCE(!(wq->flags & WQ_UNBOUND)))
|
||||
return;
|
||||
/*
|
||||
* when @pwq is not linked, it doesn't hold any reference to the
|
||||
* @wq, and @wq is invalid to access.
|
||||
*/
|
||||
if (!list_empty(&pwq->pwqs_node)) {
|
||||
if (WARN_ON_ONCE(!(wq->flags & WQ_UNBOUND)))
|
||||
return;
|
||||
|
||||
mutex_lock(&wq->mutex);
|
||||
list_del_rcu(&pwq->pwqs_node);
|
||||
is_last = list_empty(&wq->pwqs);
|
||||
mutex_unlock(&wq->mutex);
|
||||
mutex_lock(&wq->mutex);
|
||||
list_del_rcu(&pwq->pwqs_node);
|
||||
is_last = list_empty(&wq->pwqs);
|
||||
mutex_unlock(&wq->mutex);
|
||||
}
|
||||
|
||||
mutex_lock(&wq_pool_mutex);
|
||||
put_unbound_pool(pool);
|
||||
|
Reference in New Issue
Block a user