This is the 5.4.288 stable release

-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAmdkUkYACgkQONu9yGCS
 aT5RDg//WKMt8BAC/HtVkHOaO2vJt7ADIawvJkSZD+ljKfPvydJsMydpfqcO1l7y
 aVahXIkDVsqyxNkkvZr9Sn19W6SQHD1yPsm76gbatSmHEydCvgOncrQgDYQOXDx5
 pnMRwyPYd9P/9oXPfsGJK4dPL7dklL5vHYr+47kG47PJENeXCB2Z6LVEjSt9Sm6f
 3dcoyUb0RsNSW7yoWX099UOH7B8/rYaTCXxAlrch/7vP5Uhfw5A2L2L/Tu/0zXNU
 1G4/aHVDjabjQBkhV2Obh0OQcs5MSMMfor6cIABaaiotsDqPPVLzW+ciEC11FpvM
 aeRElnkxN9b27MrGTL62mgsJN0/yr1nyMZt9v0/B/bcbkPHKDse6RTz3jCXo2d52
 BpGfj/7yw3c7rzFrFC3uxKUgnsJZFmyyadPGZJetBLwICJl/aNhrPt5ZYkTx+ety
 90oMe510dbc/AHaSZ6cWkZy+0+ejBGVbbfja/L/Vji4mCJtmab2mTQkVuiuOBYeh
 pBotQzaaUQ0+QihMe3n+8PN5H/BKNBx3wvmzwrbVZ6pGA2Sz+wevuEBo6bKNmmpN
 iVmJZy+Y/W9ffllCUz4zGsu+hK2CxVQIHa7gw+NzmlqGovIGt70zvDonyWAHuy5A
 m9LFrDJkct0jc3X/6xN9gfuDPMrOIEmGXhjcGmmWaqrLh4MamtI=
 =2mmT
 -----END PGP SIGNATURE-----

Merge 5.4.288 into android11-5.4-lts

Changes in 5.4.288
	usb: host: max3421-hcd: Correctly abort a USB request.
	ata: sata_highbank: fix OF node reference leak in highbank_initialize_phys()
	usb: dwc2: hcd: Fix GetPortStatus & SetPortFeature
	usb: ehci-hcd: fix call balance of clocks handling routines
	usb: gadget: u_serial: Fix the issue that gs_start_io crashed due to accessing null pointer
	xfs: don't drop errno values when we fail to ficlone the entire range
	bpf, sockmap: Fix update element with same
	batman-adv: Do not send uninitialized TT changes
	batman-adv: Remove uninitialized data in full table TT response
	batman-adv: Do not let TT changes list grows indefinitely
	tipc: fix NULL deref in cleanup_bearer()
	net: lapb: increase LAPB_HEADER_LEN
	ACPI: resource: Fix memory resource type union access
	qca_spi: Fix clock speed for multiple QCA7000
	qca_spi: Make driver probing reliable
	net/sched: netem: account for backlog updates from child qdisc
	ACPICA: events/evxfregn: don't release the ContextMutex that was never acquired
	blk-iocost: clamp inuse and skip noops in __propagate_weights()
	blk-iocost: fix weight updates of inner active iocgs
	blk-iocost: Avoid using clamp() on inuse in __propagate_weights()
	KVM: arm64: Ignore PMCNTENSET_EL0 while checking for overflow status
	tracing/kprobes: Skip symbol counting logic for module symbols in create_local_trace_kprobe()
	xen/netfront: fix crash when removing device
	ALSA: usb-audio: Fix a DMA to stack memory bug
	Linux 5.4.288

Change-Id: Ie329f210978bae25fa2703d4106a3880bb9ba53c
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
Greg Kroah-Hartman 2024-12-27 16:16:36 +00:00
commit 4d8aad9b5e
21 changed files with 166 additions and 83 deletions

View file

@ -907,7 +907,27 @@ static void __propagate_active_weight(struct ioc_gq *iocg, u32 active, u32 inuse
lockdep_assert_held(&ioc->lock);
inuse = min(active, inuse);
/*
* For an active leaf node, its inuse shouldn't be zero or exceed
* @active. An active internal node's inuse is solely determined by the
* inuse to active ratio of its children regardless of @inuse.
*/
if (list_empty(&iocg->active_list) && iocg->child_active_sum) {
inuse = DIV64_U64_ROUND_UP(active * iocg->child_inuse_sum,
iocg->child_active_sum);
} else {
/*
* It may be tempting to turn this into a clamp expression with
* a lower limit of 1 but active may be 0, which cannot be used
* as an upper limit in that situation. This expression allows
* active to clamp inuse unless it is 0, in which case inuse
* becomes 1.
*/
inuse = min(inuse, active) ?: 1;
}
if (active == iocg->active && inuse == iocg->inuse)
return;
for (lvl = iocg->level - 1; lvl >= 0; lvl--) {
struct ioc_gq *parent = iocg->ancestors[lvl];
@ -917,7 +937,7 @@ static void __propagate_active_weight(struct ioc_gq *iocg, u32 active, u32 inuse
/* update the level sums */
parent->child_active_sum += (s32)(active - child->active);
parent->child_inuse_sum += (s32)(inuse - child->inuse);
/* apply the udpates */
/* apply the updates */
child->active = active;
child->inuse = inuse;