mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 18:41:58 +09:00
5fc3f5b48af2ca26f3f7918f608d2136aa5b1ce1
1161727 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
5fc3f5b48a |
UPSTREAM: f2fs: fix NULL pointer dereference in f2fs_submit_page_write()
BUG: kernel NULL pointer dereference, address: 0000000000000014
RIP: 0010:f2fs_submit_page_write+0x6cf/0x780 [f2fs]
Call Trace:
<TASK>
? show_regs+0x6e/0x80
? __die+0x29/0x70
? page_fault_oops+0x154/0x4a0
? prb_read_valid+0x20/0x30
? __irq_work_queue_local+0x39/0xd0
? irq_work_queue+0x36/0x70
? do_user_addr_fault+0x314/0x6c0
? exc_page_fault+0x7d/0x190
? asm_exc_page_fault+0x2b/0x30
? f2fs_submit_page_write+0x6cf/0x780 [f2fs]
? f2fs_submit_page_write+0x736/0x780 [f2fs]
do_write_page+0x50/0x170 [f2fs]
f2fs_outplace_write_data+0x61/0xb0 [f2fs]
f2fs_do_write_data_page+0x3f8/0x660 [f2fs]
f2fs_write_single_data_page+0x5bb/0x7a0 [f2fs]
f2fs_write_cache_pages+0x3da/0xbe0 [f2fs]
...
It is possible that other threads have added this fio to io->bio
and submitted the io->bio before entering f2fs_submit_page_write().
At this point io->bio = NULL.
If is_end_zone_blkaddr(sbi, fio->new_blkaddr) of this fio is true,
then an NULL pointer dereference error occurs at bio_get(io->bio).
The original code for determining zone end was after "out:",
which would have missed some fio who is zone end. I've moved
this code before "skip:" to make sure it's done for each fio.
Bug: 254441685
Fixes:
|
||
|
|
a8e77a7072 |
UPSTREAM: f2fs: zone: fix to wait completion of last bio in zone correctly
It needs to check last zone_pending_bio and wait IO completion before
traverse next fio in io->io_list, otherwise, bio in next zone may be
submitted before all IO completion in current zone.
Bug: 254441685
Fixes:
|
||
|
|
66e0c14580 |
UPSTREAM: iommu: Don't reserve 0-length IOVA region
When the bootloader/firmware doesn't setup the framebuffers, their
address and size are 0 in "iommu-addresses" property. If IOVA region is
reserved with 0 length, then it ends up corrupting the IOVA rbtree with
an entry which has pfn_hi < pfn_lo.
If we intend to use display driver in kernel without framebuffer then
it's causing the display IOMMU mappings to fail as entire valid IOVA
space is reserved when address and length are passed as 0.
An ideal solution would be firmware removing the "iommu-addresses"
property and corresponding "memory-region" if display is not present.
But the kernel should be able to handle this by checking for size of
IOVA region and skipping the IOVA reservation if size is 0. Also, add
a warning if firmware is requesting 0-length IOVA region reservation.
Bug: 254441685
Fixes:
|
||
|
|
793280fe93 |
UPSTREAM: iommu: Fix printk arg in of_iommu_get_resv_regions()
The variable phys is defined as (struct resource *) which aligns with
the printk format specifier %pr. Taking the address of it results in a
value of type (struct resource **) which is incompatible with the format
specifier %pr. Therefore, remove the address of operator (&).
Bug: 254441685
Fixes:
|
||
|
|
f3d71968c1 |
UPSTREAM: iommu: Map reserved memory as cacheable if device is coherent
Check if the device is marked as DMA coherent in the DT and if so,
map its reserved memory as cacheable in the IOMMU.
This fixes the recently added IOMMU reserved memory support which
uses IOMMU_RESV_DIRECT without properly building the PROT for the
mapping.
Bug: 254441685
Fixes:
|
||
|
|
7d59065aa4 |
BACKPORT: io_uring/fdinfo: remove need for sqpoll lock for thread/pid retrieval
A previous commit added a trylock for getting the SQPOLL thread info via
fdinfo, but this introduced a regression where we often fail to get it if
the thread is busy. For that case, we end up not printing the current CPU
and PID info.
Rather than rely on this lock, just print the pid we already stored in
the io_sq_data struct, and ensure we update the current CPU every time
we've slept or potentially rescheduled. The latter won't potentially be
100% accurate, but that wasn't the case before either as the task can
get migrated at any time unless it has been pinned at creation time.
We retain keeping the io_sq_data dereference inside the ctx->uring_lock,
as it has always been, as destruction of the thread and data happen below
that. We could make this RCU safe, but there's little point in doing that.
With this, we always print the last valid information we had, rather than
have spurious outputs with missing information.
Bug: 254441685
Fixes:
|
||
|
|
30c4764908 |
UPSTREAM: wifi: cfg80211: fix assoc response warning on failed links
The warning here shouldn't be done before we even set the bss field (or should've used the input data). Move the assignment before the warning to fix it. We noticed this now because of Wen's bugfix, where the bug fixed there had previously hidden this other bug. Bug: 254441685 Fixes: |
||
|
|
7f2d1a477c |
UPSTREAM: usb: typec: tcpm: Add additional checks for contaminant
When transitioning from SNK_DEBOUNCED to unattached, its worthwhile to
check for contaminant to mitigate wakeups.
```
[81334.219571] Start toggling
[81334.228220] CC1: 0 -> 0, CC2: 0 -> 0 [state TOGGLING, polarity 0, disconnected]
[81334.305147] CC1: 0 -> 0, CC2: 0 -> 3 [state TOGGLING, polarity 0, connected]
[81334.305162] state change TOGGLING -> SNK_ATTACH_WAIT [rev3 NONE_AMS]
[81334.305187] pending state change SNK_ATTACH_WAIT -> SNK_DEBOUNCED @ 170 ms [rev3 NONE_AMS]
[81334.475515] state change SNK_ATTACH_WAIT -> SNK_DEBOUNCED [delayed 170 ms]
[81334.486480] CC1: 0 -> 0, CC2: 3 -> 0 [state SNK_DEBOUNCED, polarity 0, disconnected]
[81334.486495] state change SNK_DEBOUNCED -> SNK_DEBOUNCED [rev3 NONE_AMS]
[81334.486515] pending state change SNK_DEBOUNCED -> SNK_UNATTACHED @ 20 ms [rev3 NONE_AMS]
[81334.506621] state change SNK_DEBOUNCED -> SNK_UNATTACHED [delayed 20 ms]
[81334.506640] Start toggling
[81334.516972] CC1: 0 -> 0, CC2: 0 -> 0 [state TOGGLING, polarity 0, disconnected]
[81334.592759] CC1: 0 -> 0, CC2: 0 -> 3 [state TOGGLING, polarity 0, connected]
[81334.592773] state change TOGGLING -> SNK_ATTACH_WAIT [rev3 NONE_AMS]
[81334.592792] pending state change SNK_ATTACH_WAIT -> SNK_DEBOUNCED @ 170 ms [rev3 NONE_AMS]
[81334.762940] state change SNK_ATTACH_WAIT -> SNK_DEBOUNCED [delayed 170 ms]
[81334.773557] CC1: 0 -> 0, CC2: 3 -> 0 [state SNK_DEBOUNCED, polarity 0, disconnected]
[81334.773570] state change SNK_DEBOUNCED -> SNK_DEBOUNCED [rev3 NONE_AMS]
[81334.773588] pending state change SNK_DEBOUNCED -> SNK_UNATTACHED @ 20 ms [rev3 NONE_AMS]
[81334.793672] state change SNK_DEBOUNCED -> SNK_UNATTACHED [delayed 20 ms]
[81334.793681] Start toggling
[81334.801840] CC1: 0 -> 0, CC2: 0 -> 0 [state TOGGLING, polarity 0, disconnected]
[81334.878655] CC1: 0 -> 0, CC2: 0 -> 3 [state TOGGLING, polarity 0, connected]
[81334.878672] state change TOGGLING -> SNK_ATTACH_WAIT [rev3 NONE_AMS]
[81334.878696] pending state change SNK_ATTACH_WAIT -> SNK_DEBOUNCED @ 170 ms [rev3 NONE_AMS]
[81335.048968] state change SNK_ATTACH_WAIT -> SNK_DEBOUNCED [delayed 170 ms]
[81335.060684] CC1: 0 -> 0, CC2: 3 -> 0 [state SNK_DEBOUNCED, polarity 0, disconnected]
[81335.060754] state change SNK_DEBOUNCED -> SNK_DEBOUNCED [rev3 NONE_AMS]
[81335.060775] pending state change SNK_DEBOUNCED -> SNK_UNATTACHED @ 20 ms [rev3 NONE_AMS]
[81335.080884] state change SNK_DEBOUNCED -> SNK_UNATTACHED [delayed 20 ms]
[81335.080900] Start toggling
```
Bug: 254441685
Cc: stable@vger.kernel.org
Fixes:
|
||
|
|
8dabbe8363 |
UPSTREAM: mm: remove duplicated vma->vm_flags check when expanding stack
expand_upwards() and expand_downwards() will return -EFAULT if VM_GROWSUP
or VM_GROWSDOWN is not correctly set in vma->vm_flags, however in
!CONFIG_STACK_GROWSUP case, expand_stack_locked() returns -EINVAL first if
!(vma->vm_flags & VM_GROWSDOWN) before calling expand_downwards(), to keep
the consistency with CONFIG_STACK_GROWSUP case, remove this check.
The usages of this function are as below:
A:fs/exec.c
ret = expand_stack_locked(vma, stack_base);
if (ret)
ret = -EFAULT;
or
B:mm/memory.c mm/mmap.c
if (expand_stack_locked(vma, addr))
return NULL;
which means the return value will not propagate to other places, so I
believe there is no user-visible effects of this change, and it's
unnecessary to backport to earlier versions.
Bug: 254441685
Link: https://lkml.kernel.org/r/20230906103312.645712-1-xiujianfeng@huaweicloud.com
Fixes:
|
||
|
|
ab384f79d4 |
ANDROID: Update the ABI symbol list
Adding the following symbols: - bitmap_find_free_region - bitmap_release_region - of_graph_get_endpoint_by_regs - __traceiter_android_rvh_mapping_shrinkable - __traceiter_android_rvh_util_est_update - __tracepoint_android_rvh_mapping_shrinkable - __tracepoint_android_rvh_util_est_update Bug: 347958166 Change-Id: I4feadf95bf24da1a1554a828e181d4ec65cc9a32 Signed-off-by: Minchan Kim <minchan@google.com> |
||
|
|
bbf690e531 |
ANDROID: add vendor hook for mapping_shrinkable
To control inode memory reclaim, add restricted vendor hook. Bug: 347958166 Change-Id: Iefb9ef66c9fd5abae99adb1200263e4642f991cc Signed-off-by: Minchan Kim <minchan@google.com> |
||
|
|
660e1a2695 |
FROMLIST: sd: Retry START STOP UNIT commands
During system resume, sd_start_stop_device() submits a START STOP UNIT command to the SCSI device that is being resumed. That command is not retried in case of a unit attention and hence may fail. An example: [16575.983359] sd 0:0:0:3: [sdd] Starting disk [16575.983693] sd 0:0:0:3: [sdd] Start/Stop Unit failed: Result: hostbyte=0x00 driverbyte=DRIVER_OK [16575.983712] sd 0:0:0:3: [sdd] Sense Key : 0x6 [16575.983730] sd 0:0:0:3: [sdd] ASC=0x29 ASCQ=0x0 [16575.983738] sd 0:0:0:3: PM: dpm_run_callback(): scsi_bus_resume+0x0/0xa0 returns -5 [16575.983783] sd 0:0:0:3: PM: failed to resume async: error -5 Make the SCSI core retry the START STOP UNIT command if a retryable error is encountered. Cc: Damien Le Moal <dlemoal@kernel.org> Cc: Mike Christie <michael.christie@oracle.com> Change-Id: Ic8e0859c4455d93fcabee42f1598858571f5f3d1 Signed-off-by: Bart Van Assche <bvanassche@acm.org> Bug: 348341595 Link: https://lore.kernel.org/linux-scsi/yq17ccp1i4b.fsf@ca-mkp.ca.oracle.com/T/#m52a26a50649b1d537cb129e5653f723509d6bde7 Signed-off-by: Bart Van Assche <bvanassche@google.com> |
||
|
|
4ab8dafa79 |
FROMLIST: scsi: core: Retry passthrough commands if SCMD_RETRY_PASSTHROUGH is set
The SCSI core does not retry passthrough commands even if the SCSI device reports a retryable unit attention condition. Support retrying in this case by introducing the SCMD_RETRY_PASSTHROUGH flag. Cc: Damien Le Moal <dlemoal@kernel.org> Cc: Mike Christie <michael.christie@oracle.com> Signed-off-by: Bart Van Assche <bvanassche@acm.org> Signed-off-by: Bart Van Assche <bvanassche@google.com> Bug: 348341595 Link: https://lore.kernel.org/linux-scsi/yq17ccp1i4b.fsf@ca-mkp.ca.oracle.com/T/#mfdb1a3a0d6d4803afe1098bdafc12fd4168e30e0 Change-Id: I44092a0d8853fd61bf619e5bae6d65eaaddad780 Signed-off-by: Bart Van Assche <bvanassche@google.com> |
||
|
|
8288de8306 |
ANDROID: GKI: Update symbol list for mtk
1 function symbol(s) added 'struct snd_kcontrol* snd_soc_cnew(const struct snd_kcontrol_new*, void*, const char*, const char*)' Bug: 359437271 Signed-off-by: Seiya Wang <seiya.wang@mediatek.com> Change-Id: I53d2771c95cabfc6931a83eb43e1499b9de8bc8b |
||
|
|
79436849ef |
ANDROID: Update the ABI symbol list
Adding the following symbols: - vm_unmapped_area Bug: 344489121 Change-Id: I1798b662e81283e1f8e8f2091e5e4b6d2d4fe2c0 Signed-off-by: Vamsidhar reddy Gaddam <gvamsi@google.com> |
||
|
|
be8ff39d2e |
ANDROID: GKI: add symbol list for telechips
Add symbol list file abi_gki_aarch64_telechips INFO: 18 function symbol(s) added 'int devm_clk_hw_register_clkdev(struct device*, struct clk_hw*, const char*, const char*)' 'struct fwnode_handle* fwnode_get_next_parent(struct fwnode_handle*)' 'struct fwnode_handle* fwnode_get_parent(const struct fwnode_handle*)' 'int linear_range_get_value_array(const struct linear_range*, int, unsigned int, unsigned int*)' 'int media_device_register_entity(struct media_device*, struct media_entity*)' 'struct media_link* media_entity_find_link(struct media_pad*, struct media_pad*)' 'void* of_fdt_unflatten_tree(const unsigned long*, struct device_node*, struct device_node**)' 'int regmap_irq_chip_get_base(struct regmap_irq_chip_data*)' 'int regulator_mode_to_status(unsigned int)' 'int regulator_set_soft_start_regmap(struct regulator_dev*)' 'int snd_pcm_hw_constraint_pow2(struct snd_pcm_runtime*, unsigned int, snd_pcm_hw_param_t)' 'int snd_soc_dai_set_clkdiv(struct snd_soc_dai*, int, int)' 'void symbol_put_addr(void*)' 'int trace_define_field(struct trace_event_call*, const char*, const char*, int, int, int, int)' 'int uart_parse_earlycon(char*, unsigned char*, resource_size_t*, char**)' 'int v4l2_fill_pixfmt_mp(struct v4l2_pix_format_mplane*, u32, u32, u32)' 'int vfs_fsync(struct file*, int)' 'int vsscanf(const char*, const char*, va_list)' 1 variable symbol(s) added 'const struct kernel_param_ops param_ops_short' Bug: 358151308 Signed-off-by: Sukjin Kong <sj.kong@telechips.com> Change-Id: I13cefc3999f4e8a0b748c126cb179ac5f6c61e22 |
||
|
|
7003f6b36a |
UPSTREAM: ufs: core: bypass quick recovery if need force reset
If force_reset is true, bypass quick recovery. This will shorten error recovery time. Bug: 356536706 Change-Id: I86ce0e8ac79b61e203a8fdad5369d540ae873cc0 Signed-off-by: Peter Wang <peter.wang@mediatek.com> Link: https://lore.kernel.org/r/20240712094506.11284-1-peter.wang@mediatek.com Reviewed-by: Bean Huo <beanhuo@micron.com> Reviewed-by: Bart Van Assche <bvanassche@acm.org> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com> (cherry picked from commit 022587d8aec3da1d1698ddae9fb8cfe35f3ad49c) |
||
|
|
99d09135c4 |
ANDROID: Update the ABI symbol list
Adding the `devfreq_get_devfreq_by_phandle` symbol. Bug: 336947817 Change-Id: I5db1e6c7ba5a845f2116aa0e5438e7f8fece4a65 Signed-off-by: nischaljain <nischaljain@google.com> |
||
|
|
1bb38f7865 |
UPSTREAM: ring-buffer: Fix a race between readers and resize checks
The reader code in rb_get_reader_page() swaps a new reader page into the
ring buffer by doing cmpxchg on old->list.prev->next to point it to the
new page. Following that, if the operation is successful,
old->list.next->prev gets updated too. This means the underlying
doubly-linked list is temporarily inconsistent, page->prev->next or
page->next->prev might not be equal back to page for some page in the
ring buffer.
The resize operation in ring_buffer_resize() can be invoked in parallel.
It calls rb_check_pages() which can detect the described inconsistency
and stop further tracing:
[ 190.271762] ------------[ cut here ]------------
[ 190.271771] WARNING: CPU: 1 PID: 6186 at kernel/trace/ring_buffer.c:1467 rb_check_pages.isra.0+0x6a/0xa0
[ 190.271789] Modules linked in: [...]
[ 190.271991] Unloaded tainted modules: intel_uncore_frequency(E):1 skx_edac(E):1
[ 190.272002] CPU: 1 PID: 6186 Comm: cmd.sh Kdump: loaded Tainted: G E 6.9.0-rc6-default #5 158d3e1e6d0b091c34c3b96bfd99a1c58306d79f
[ 190.272011] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.16.0-0-gd239552c-rebuilt.opensuse.org 04/01/2014
[ 190.272015] RIP: 0010:rb_check_pages.isra.0+0x6a/0xa0
[ 190.272023] Code: [...]
[ 190.272028] RSP: 0018:ffff9c37463abb70 EFLAGS: 00010206
[ 190.272034] RAX: ffff8eba04b6cb80 RBX: 0000000000000007 RCX: ffff8eba01f13d80
[ 190.272038] RDX: ffff8eba01f130c0 RSI: ffff8eba04b6cd00 RDI: ffff8eba0004c700
[ 190.272042] RBP: ffff8eba0004c700 R08: 0000000000010002 R09: 0000000000000000
[ 190.272045] R10: 00000000ffff7f52 R11: ffff8eba7f600000 R12: ffff8eba0004c720
[ 190.272049] R13: ffff8eba00223a00 R14: 0000000000000008 R15: ffff8eba067a8000
[ 190.272053] FS: 00007f1bd64752c0(0000) GS:ffff8eba7f680000(0000) knlGS:0000000000000000
[ 190.272057] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 190.272061] CR2: 00007f1bd6662590 CR3: 000000010291e001 CR4: 0000000000370ef0
[ 190.272070] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 190.272073] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[ 190.272077] Call Trace:
[ 190.272098] <TASK>
[ 190.272189] ring_buffer_resize+0x2ab/0x460
[ 190.272199] __tracing_resize_ring_buffer.part.0+0x23/0xa0
[ 190.272206] tracing_resize_ring_buffer+0x65/0x90
[ 190.272216] tracing_entries_write+0x74/0xc0
[ 190.272225] vfs_write+0xf5/0x420
[ 190.272248] ksys_write+0x67/0xe0
[ 190.272256] do_syscall_64+0x82/0x170
[ 190.272363] entry_SYSCALL_64_after_hwframe+0x76/0x7e
[ 190.272373] RIP: 0033:0x7f1bd657d263
[ 190.272381] Code: [...]
[ 190.272385] RSP: 002b:00007ffe72b643f8 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
[ 190.272391] RAX: ffffffffffffffda RBX: 0000000000000002 RCX: 00007f1bd657d263
[ 190.272395] RDX: 0000000000000002 RSI: 0000555a6eb538e0 RDI: 0000000000000001
[ 190.272398] RBP: 0000555a6eb538e0 R08: 000000000000000a R09: 0000000000000000
[ 190.272401] R10: 0000555a6eb55190 R11: 0000000000000246 R12: 00007f1bd6662500
[ 190.272404] R13: 0000000000000002 R14: 00007f1bd6667c00 R15: 0000000000000002
[ 190.272412] </TASK>
[ 190.272414] ---[ end trace 0000000000000000 ]---
Note that ring_buffer_resize() calls rb_check_pages() only if the parent
trace_buffer has recording disabled. Recent commit d78ab792705c
("tracing: Stop current tracer when resizing buffer") causes that it is
now always the case which makes it more likely to experience this issue.
The window to hit this race is nonetheless very small. To help
reproducing it, one can add a delay loop in rb_get_reader_page():
ret = rb_head_page_replace(reader, cpu_buffer->reader_page);
if (!ret)
goto spin;
for (unsigned i = 0; i < 1U << 26; i++) /* inserted delay loop */
__asm__ __volatile__ ("" : : : "memory");
rb_list_head(reader->list.next)->prev = &cpu_buffer->reader_page->list;
.. and then run the following commands on the target system:
echo 1 > /sys/kernel/tracing/events/sched/sched_switch/enable
while true; do
echo 16 > /sys/kernel/tracing/buffer_size_kb; sleep 0.1
echo 8 > /sys/kernel/tracing/buffer_size_kb; sleep 0.1
done &
while true; do
for i in /sys/kernel/tracing/per_cpu/*; do
timeout 0.1 cat $i/trace_pipe; sleep 0.2
done
done
To fix the problem, make sure ring_buffer_resize() doesn't invoke
rb_check_pages() concurrently with a reader operating on the same
ring_buffer_per_cpu by taking its cpu_buffer->reader_lock.
Link: https://lore.kernel.org/linux-trace-kernel/20240517134008.24529-3-petr.pavlu@suse.com
Cc: stable@vger.kernel.org
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Fixes:
|
||
|
|
37391192a9 |
UPSTREAM: lib/build_OID_registry: avoid non-destructive substitution for Perl < 5.13.2 compat
On a system with Perl 5.12.1, commit 5ef6dc08cfde
("lib/build_OID_registry: don't mention the full path of the script in
output") causes the build to fail with the error below.
Bareword found where operator expected at ./lib/build_OID_registry line 41, near "s#^\Q$abs_srctree/\E##r"
syntax error at ./lib/build_OID_registry line 41, near "s#^\Q$abs_srctree/\E##r"
Execution of ./lib/build_OID_registry aborted due to compilation errors.
make[3]: *** [lib/Makefile:352: lib/oid_registry_data.c] Error 255
Ahmad Fatoum analyzed that non-destructive substitution is only supported since
Perl 5.13.2. Instead of dropping `r` and having the side effect of modifying
`$0`, introduce a dedicated variable to support older Perl versions.
Link: https://lkml.kernel.org/r/20240702223512.8329-2-pmenzel@molgen.mpg.de
Link: https://lkml.kernel.org/r/20240701155802.75152-1-pmenzel@molgen.mpg.de
Fixes: 5ef6dc08cfde ("lib/build_OID_registry: don't mention the full path of the script in output")
Link: https://lore.kernel.org/all/259f7a87-2692-480e-9073-1c1c35b52f67@molgen.mpg.de/
Signed-off-by: Paul Menzel <pmenzel@molgen.mpg.de>
Suggested-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Cc: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Cc: Nicolas Schier <nicolas@fjasle.eu>
Cc: Masahiro Yamada <masahiroy@kernel.org>
Cc: Ahmad Fatoum <a.fatoum@pengutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Bug: 346559442
Bug: 347759457
Change-Id: I367a4d22f3c27c8912703d061360e5aa2c7a5642
(cherry picked from commit 2fe29fe945637b9834c5569fbb1c9d4f881d8263)
Signed-off-by: Giuliano Procida <gprocida@google.com>
|
||
|
|
c0cf9ce611 |
UPSTREAM: lib/build_OID_registry: don't mention the full path of the script in output
This change strips the full path of the script generating lib/oid_registry_data.c to just lib/build_OID_registry. The motivation for this change is Yocto emitting a build warning File /usr/src/debug/linux-lxatac/6.7-r0/lib/oid_registry_data.c in package linux-lxatac-src contains reference to TMPDIR [buildpaths] So this change brings us one step closer to make the build result reproducible independent of the build path. Link: https://lkml.kernel.org/r/20240313211957.884561-2-u.kleine-koenig@pengutronix.de Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Cc: Masahiro Yamada <masahiroy@kernel.org> Reviewed-by: Nicolas Schier <nicolas@fjasle.eu> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Bug: 346559442 Bug: 347759457 Change-Id: I09c19f26fd33ed95106174cd2f2fc7217ba99f34 (cherry picked from commit 5ef6dc08cfde240b8c748733759185646e654570) Signed-off-by: Giuliano Procida <gprocida@google.com> |
||
|
|
6aafd06a46 |
ANDROID: GKI: Add symbol list for exynosauto
netdev_master_upper_dev_get nla_append These symbols are required to use WIFI BCM driver. Following functions are added in STG file through abi_update 1 function symbol(s) added 'struct net_device* netdev_master_upper_dev_get(struct net_device*)' Bug: 357016601 Change-Id: Iff752b54d88258f2d61fab397da1104145c9297f Signed-off-by: Ajit Singh Raghav <ajit.raghav@samsung.com> |
||
|
|
4ac7f55b98 |
UPSTREAM: erofs: fix race in z_erofs_get_gbuf()
In z_erofs_get_gbuf(), the current task may be migrated to another CPU between `z_erofs_gbuf_id()` and `spin_lock(&gbuf->lock)`. Therefore, z_erofs_put_gbuf() will trigger the following issue which was found by stress test: <2>[772156.434168] kernel BUG at fs/erofs/zutil.c:58! .. <4>[772156.435007] <4>[772156.439237] CPU: 0 PID: 3078 Comm: stress Kdump: loaded Tainted: G E 6.10.0-rc7+ #2 <4>[772156.439239] Hardware name: Alibaba Cloud Alibaba Cloud ECS, BIOS 1.0.0 01/01/2017 <4>[772156.439241] pstate: 83400005 (Nzcv daif +PAN -UAO +TCO +DIT -SSBS BTYPE=--) <4>[772156.439243] pc : z_erofs_put_gbuf+0x64/0x70 [erofs] <4>[772156.439252] lr : z_erofs_lz4_decompress+0x600/0x6a0 [erofs] .. <6>[772156.445958] stress (3127): drop_caches: 1 <4>[772156.446120] Call trace: <4>[772156.446121] z_erofs_put_gbuf+0x64/0x70 [erofs] <4>[772156.446761] z_erofs_lz4_decompress+0x600/0x6a0 [erofs] <4>[772156.446897] z_erofs_decompress_queue+0x740/0xa10 [erofs] <4>[772156.447036] z_erofs_runqueue+0x428/0x8c0 [erofs] <4>[772156.447160] z_erofs_readahead+0x224/0x390 [erofs] .. Bug: 356412494 Fixes: f36f3010f676 ("erofs: rename per-CPU buffers to global buffer pool and make it configurable") Cc: <stable@vger.kernel.org> # 6.10+ Reviewed-by: Chunhai Guo <guochunhai@vivo.com> Reviewed-by: Sandeep Dhavale <dhavale@google.com> Reviewed-by: Chao Yu <chao@kernel.org> Change-Id: Ic4924c6c14ee27af6f3c89ea5c562493b3c112a4 Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com> Link: https://lore.kernel.org/r/20240722035110.3456740-1-hsiangkao@linux.alibaba.com (cherry picked from commit 7dc5537c3f8be87e005f0844a7626c987914f8fd) Signed-off-by: Sandeep Dhavale <dhavale@google.com> |
||
|
|
055518d9f3 |
ANDROID: fuse: Skip canonical path logic if ENOSYS
Not all FUSE servers have implemented canonical_path such as virtiofs. This patch makes it so they go through the same logic as other filesystems that don't have canonical path implemented. Bug: 330136711 Test: ./cts-tradefed run commandAndExit cts -m CtsIncidentHostTestCases -t com.android.server.cts.ErrorsTest#testTombstone Change-Id: I35f19bd1a12420015128ac9bc2662b9bd252a612 Signed-off-by: Richard Fung <richardfung@google.com> (cherry picked from commit 4b0be62caf6923eac6acdb5a44eb03688e6f9dc5) |
||
|
|
a112c9c24c |
ANDROID: fsnotify: Do not notify lower fs of open when ENOSYS
Even though FUSE supports d_canonical_path, the underlying server may not implement the operation. In that case, follow the same logic for filesystems that do not have the canonical path operation instead of returning early from fsnotify_file with an error. Bug: 326995824 Test: cts-tradefed run commandAndExit cts -m CtsOsTestCases -t android.os.cts.FileObserverTest Change-Id: Iae618d4159222b06467b9a0bbb67fb67885aa65e Signed-off-by: Tiffany Yang <ynaffit@google.com> (cherry picked from commit 61d32e739d27dd35353a22804023f099b383df3b) |
||
|
|
7d0a1d6b86 |
ANDROID: mm: madvise: Avoid counting swap entry references for migration entries
Race between the madvise(PAGEOUT) and migration caused by page offline
can make the swp_swapcount()->_swap_info_get emitting the "Bad swap file
entry " message because it is trying to get the info on the migration
entry. Add check if it is a migration entry.
Bug: 356032508
Fixes:
|
||
|
|
7fa70ede91 |
UPSTREAM: scsi: ufs: core: Changing the status to check inflight
ufshcd_cmd_inflight() is used to check whether or not a command is in progress. Make it skip commands that have already completed by changing the !blk_mq_request_started(rq) check into blk_mq_rq_state(rq) != MQ_RQ_IN_FLIGHT. We cannot rely on lrbp->cmd since lrbp->cmd is not cleared when a command completes. Link: https://lore.kernel.org/linux-scsi/20230517223157.1068210-3-bvanassche@acm.org/ Signed-off-by: SEO HOYOUNG <hy50.seo@samsung.com> Link: https://lore.kernel.org/r/20240411071444.51873-1-hy50.seo@samsung.com Reviewed-by: Bart Van Assche <bvanassche@acm.org> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com> Bug: 353887042 (cherry picked from commit 13c28be58c2bdb12e554e01b0e35621060068b11) Change-Id: I038c3956c55967f38a339a13c16fe7518ee4eb17 Signed-off-by: Manish Pandey <quic_mapa@quicinc.com> |
||
|
|
6201b295b8 |
ANDROID: Update the ABI symbol list
Adding the following symbols: - __traceiter_android_vh_hibernate_state - __tracepoint_android_vh_hibernate_state Bug: 342523877 Change-Id: I249ec4ce3b2db80470b2d4d862acf4a882ece199 Signed-off-by: karam.lee <karam.lee@lge.com> |
||
|
|
f571d0bdaa |
ANDROID: power: add vendor hook to handle hibernate failures
The driver or external module may need handling due to hibernate failure. This error cannot be detected outside of the hibernate() function. so Add a vendor hook to receive and handle errors in hibernate(). Bug: 342523877 Change-Id: I221e26f571d94e5d5c5aae19937945bb8981f85b Signed-off-by: karam.lee <karam.lee@lge.com> |
||
|
|
d7387786c2 |
ANDROID: GKI: remove export of tracing control functions
Android GKI kernel modules should NOT have the ability to control the system-wide tracing functionality, nor query to determine if it is on or not. So remove the exports of these functions. Upstream does not wish to do this, so an Android-only change is required. See the bug id for details. Bug: 355584612 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com> Change-Id: I50f69cd9930ddc6b876c5c1dd86f51cfb2ee1bac |
||
|
|
47af2fba7c |
ANDROID: fix kernelci build-break for !CONFIG_ANDROID_VENDOR_OEM_DATA
A recent change to add hooks for firmware-based hibernation
added a reference to android_vendor_data1 which breaks
builds that don't enable vendor data.
Fixes: d2cb755a4398 ("ANDROID: vendor hooks: Add hooks to support bootloader based hibernation")
Signed-off-by: Todd Kjos <tkjos@google.com>
Change-Id: I449e968f8d0926c8573150553eed0905faeac3f3
|
||
|
|
918790efaa |
ANDROID: GKI: update symbol list file for xiaomi
6 function symbol(s) added 'void __traceiter_android_vh_handle_trylock_failed_folio(struct list_head *)' 'void __traceiter_android_vh_folio_trylock_set(struct folio *)' 'void __traceiter_android_vh_folio_trylock_clear(struct folio *)' 'void __traceiter_android_vh_get_folio_trylock_result(struct folio *, bool *)' 'void __traceiter_android_vh_do_folio_trylock(struct folio *, struct rw_semaphore *, bool *, bool *)' 'long reclaim_pages(struct list_head *folio_list)' 5 variable symbol(s) added 'struct tracepoint __tracepoint_android_vh_handle_trylock_failed_folio' 'struct tracepoint __tracepoint_android_vh_folio_trylock_set' 'struct tracepoint __tracepoint_android_vh_folio_trylock_clear' 'struct tracepoint __tracepoint_android_vh_get_folio_trylock_result' 'struct tracepoint __tracepoint_android_vh_do_folio_trylock' Bug: 353608806 Change-Id: Ibdf1757c41483961074a87f37c60de7db60d8636 Signed-off-by: Marcus Ma <maminghui5@xiaomi.corp-partner.google.com> |
||
|
|
d01f9af472 |
ANDROID: vendor_hooks: vendor hooks for optimizing the blocking problem
caused by rwsem lock contention of reverse mapping during memory recycling. Dear Sir, We want to apply the following five trace hook: 1、trace_android_vh_do_folio_trylock() 2、trace_android_vh_get_folio_trylock_result() 3、trace_android_vh_folio_trylock_clear() 4、trace_android_vh_folio_trylock_set() 5、trace_android_vh_handle_trylock_failed_folio(). The optimization objectives are as follows: In the process of memory recycling,reverse mapping is indispensable. The role of reverse mapping is to find all vma or page tables mapped to this page through physical address or page structure. Therefore,the process of reverse mapping will inevitably bring synchronous operations. Whether it is file page or an anonymous page,the synchronization operation is realized through the rwsem read-write lock. Therefore,when kswapd or the user's key thread enters direct_reclaim,the rwsem lock will cause the entire recycling link to be blocked,resulting in low memory recycling efficiency and affecting the user experience. On Xiaomi mobile phones,there is a situation in which the reverse mapping is stuck in the rwsem read-write lock during the file page recycling process,causing the entire recycling link to be blocked,so that the memory cannot be recycled in time. The display on the trace shows that there are a large number of D states,and its block function is rmap_walk_file,therefore,for non-forced recycling scenarios,try_lock and asynchronous recycling are used to handle related blocked pages. Bug: 353608806 Change-Id: I3973c9ddc4e25f8b20e763a4a8aa2dd327e3139d Signed-off-by: Marcus Ma <maminghui5@xiaomi.corp-partner.google.com> |
||
|
|
dd8ee5c242 |
UPSTREAM: of: reserved_mem: Use proper binary prefix
The printed reserved memory information uses the non-standard "K" prefix, while all other printed values use proper binary prefixes. Fix this by using "Ki" instead. While at it, drop the superfluous spaces inside the parentheses, to reduce printed line length. Bug: 353554778 Fixes: |
||
|
|
8ea8aeba31 |
BACKPORT: gpio: of: support gpio-ranges for multiple gpiochip devices
Some drivers (e.g. gpio-mt7621 and gpio-brcmstb) have multiple gpiochip banks within a single device. Unfortunately, the gpio-ranges property of the device node was being applied to every gpiochip of the device with device relative GPIO offset values rather than gpiochip relative GPIO offset values. This commit makes use of the gpio_chip offset value which can be non-zero for such devices to split the device node gpio-ranges property into GPIO offset ranges that can be applied to each of the relevant gpiochips of the device. Bug: 353554778 Change-Id: I868f0cd8e4dc8003547a34f3cfd57eece731622f Signed-off-by: Doug Berger <opendmb@gmail.com> Acked-by: Florian Fainelli <florian.fainelli@broadcom.com> Link: https://lore.kernel.org/r/20240424185039.1707812-3-opendmb@gmail.com Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org> (cherry picked from commit e818cd3c8a345c046edff00b5ad0be4d39f7e4d4) [danesh: Resolved minor conflict in drivers/gpio/gpiolib-of.c] Signed-off-by: Danesh Petigara <danesh.petigara@broadcom.com> Signed-off-by: Pierre Couillaud <pierre@broadcom.com> |
||
|
|
54edf65d08 |
UPSTREAM: dt-bindings: gpio: brcmstb: add gpio-ranges
Add optional gpio-ranges device-tree property to the Broadcom Set-Top-Box GPIO controller. Bug: 353554778 Change-Id: I95d9e6153e91d4270e1802c97bb4863de8b494c0 Signed-off-by: Doug Berger <opendmb@gmail.com> Acked-by: Florian Fainelli <florian.fainelli@broadcom.com> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Link: https://lore.kernel.org/r/20240424185039.1707812-2-opendmb@gmail.com Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org> (cherry picked from commit 7c66f8173360556ac0c3c38a91234af5a0a5a4a9) Signed-off-by: Danesh Petigara <danesh.petigara@broadcom.com> Signed-off-by: Pierre Couillaud <pierre@broadcom.com> |
||
|
|
e0bd441f08 |
ANDROID: Incremental fs: Retry page faults on non-fatal errors
In order to not freeze on corrupt data, we need to turn off FAULT_FLAG_ALLOW_RETRY. However, this means we no longer retry on EINTR, so an interrupted read will lead to page faults. The fault handler does not seem to allow dynamic decisions as to whether to turn on or off this flag. To resolve both issues, add a flag to indicate if there are corrupt pages in a file, and only if there are turn off this flag. Also fsanitize changed the behavior of mlock - mlock should fail if the page reads fail, but with fsanitize it returns 0 then page faults on access. This broke this test, and fsanitize offers little value on test code, so disable it. Test: incfs_test passes Bug: 343532239 Change-Id: Id2ced4be3310109206d65dcc92dea05c05131182 Signed-off-by: Paul Lawrence <paullawrence@google.com> (cherry picked from commit b7bd4d088751a23209e0636e4d71502ef07b2d33) |
||
|
|
9077d52bd8 |
ANDROID: GKI: Update symbol list for BCMSTB
INFO: 1 function symbol(s) added 'int scsi_resume_device(struct scsi_device*)' Bug: 355032755 Change-Id: I65f90942b8062c559aeb2cb09394846a39c5e1dc Signed-off-by: Pierre Couillaud <pierre@broadcom.com> |
||
|
|
9fe4f05b40 |
ANDROID: GKI: Update rockchip symbols for dw_hdmi_qp.
4 function symbol(s) added 'const struct drm_edid* drm_edid_alloc(const void*, size_t)' 'int drm_edid_connector_update(struct drm_connector*, const struct drm_edid*)' 'const struct edid* drm_edid_raw(const struct drm_edid*)' 'const struct drm_edid* drm_edid_read_ddc(struct drm_connector*, struct i2c_adapter*)' Bug: 300024866 Signed-off-by: Bian Jin chen <kenjc.bian@rock-chips.com> Change-Id: I3085829b4c799b1a38426576841a4bc23ba531ec |
||
|
|
d2ab7b14ca |
UPSTREAM: net: usb: ax88179_178a: improve reset check
After ecf848eb934b ("net: usb: ax88179_178a: fix link status when link is
set to down/up") to not reset from usbnet_open after the reset from
usbnet_probe at initialization stage to speed up this, some issues have
been reported.
It seems to happen that if the initialization is slower, and some time
passes between the probe operation and the open operation, the second reset
from open is necessary too to have the device working. The reason is that
if there is no activity with the phy, this is "disconnected".
In order to improve this, the solution is to detect when the phy is
"disconnected", and we can use the phy status register for this. So we will
only reset the device from reset operation in this situation, that is, only
if necessary.
The same bahavior is happening when the device is stopped (link set to
down) and later is restarted (link set to up), so if the phy keeps working
we only need to enable the mac again, but if enough time passes between the
device stop and restart, reset is necessary, and we can detect the
situation checking the phy status register too.
Bug: 339479352
cc: stable@vger.kernel.org # 6.6+
Fixes: ecf848eb934b ("net: usb: ax88179_178a: fix link status when link is set to down/up")
Reported-by: Yongqin Liu <yongqin.liu@linaro.org>
Reported-by: Antje Miederhöfer <a.miederhoefer@gmx.de>
Reported-by: Arne Fitzenreiter <arne_f@ipfire.org>
Tested-by: Yongqin Liu <yongqin.liu@linaro.org>
Tested-by: Antje Miederhöfer <a.miederhoefer@gmx.de>
Change-Id: I0b5944bd0bf353281c884b93c15243c2f395dbbf
Signed-off-by: Jose Ignacio Tornos Martinez <jtornosm@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 7be4cb7189f747b4e5b6977d0e4387bde3204e62)
Signed-off-by: Yongqin Liu <yongqin.liu@linaro.org>
|
||
|
|
8cfaae3d49 |
UPSTREAM: net: usb: ax88179_178a: fix link status when link is set to down/up
The idea was to keep only one reset at initialization stage in order to reduce the total delay, or the reset from usbnet_probe or the reset from usbnet_open. I have seen that restarting from usbnet_probe is necessary to avoid doing too complex things. But when the link is set to down/up (for example to configure a different mac address) the link is not correctly recovered unless a reset is commanded from usbnet_open. So, detect the initialization stage (first call) to not reset from usbnet_open after the reset from usbnet_probe and after this stage, always reset from usbnet_open too (when the link needs to be rechecked). Apply to all the possible devices, the behavior now is going to be the same. Bug: 339479352 cc: stable@vger.kernel.org # 6.6+ Fixes: 56f78615bcb1 ("net: usb: ax88179_178a: avoid writing the mac address before first reading") Reported-by: Isaac Ganoung <inventor500@vivaldi.net> Reported-by: Yongqin Liu <yongqin.liu@linaro.org> Change-Id: I6314fcc4df3be9624b91545f1cf033144e3ae9ec Signed-off-by: Jose Ignacio Tornos Martinez <jtornosm@redhat.com> Reviewed-by: Simon Horman <horms@kernel.org> Link: https://lore.kernel.org/r/20240510090846.328201-1-jtornosm@redhat.com Signed-off-by: Jakub Kicinski <kuba@kernel.org> (cherry picked from commit ecf848eb934b03959918f5269f64c0e52bc23998) Signed-off-by: Yongqin Liu <yongqin.liu@linaro.org> |
||
|
|
f21999db6a |
UPSTREAM: usb: gadget: configfs: Prevent OOB read/write in usb_string_copy()
commit 6d3c721e686ea6c59e18289b400cc95c76e927e0 upstream.
Userspace provided string 's' could trivially have the length zero. Left
unchecked this will firstly result in an OOB read in the form
`if (str[0 - 1] == '\n') followed closely by an OOB write in the form
`str[0 - 1] = '\0'`.
There is already a validating check to catch strings that are too long.
Let's supply an additional check for invalid strings that are too short.
Bug: 346754046
Signed-off-by: Lee Jones <lee@kernel.org>
Cc: stable <stable@kernel.org>
Link: https://lore.kernel.org/r/20240705074339.633717-1-lee@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit
|
||
|
|
4a9ef0dc4b |
UPSTREAM: usb: typec: tcpm: fix use-after-free case in tcpm_register_source_caps
There could be a potential use-after-free case in
tcpm_register_source_caps(). This could happen when:
* new (say invalid) source caps are advertised
* the existing source caps are unregistered
* tcpm_register_source_caps() returns with an error as
usb_power_delivery_register_capabilities() fails
This causes port->partner_source_caps to hold on to the now freed source
caps.
Reset port->partner_source_caps value to NULL after unregistering
existing source caps.
Fixes: 230ecdf71a64 ("usb: typec: tcpm: unregister existing source caps before re-registration")
Cc: stable@vger.kernel.org
Signed-off-by: Amit Sunil Dhamne <amitsd@google.com>
Reviewed-by: Ondrej Jirman <megi@xff.cz>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Link: https://lore.kernel.org/r/20240514220134.2143181-1-amitsd@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Bug: 335453765
(cherry picked from commit e7e921918d905544500ca7a95889f898121ba886)
Change-Id: I655ac689dd559dfe22fdf545ef5a39ae056f2bde
Signed-off-by: Amit Sunil Dhamne <amitsd@google.com>
|
||
|
|
e8ff0d5cdd |
UPSTREAM: usb: typec: tcpm: unregister existing source caps before re-registration
Check and unregister existing source caps in tcpm_register_source_caps
function before registering new ones. This change fixes following
warning when port partner resends source caps after negotiating PD contract
for the purpose of re-negotiation.
[ 343.135030][ T151] sysfs: cannot create duplicate filename '/devices/virtual/usb_power_delivery/pd1/source-capabilities'
[ 343.135071][ T151] Call trace:
[ 343.135076][ T151] dump_backtrace+0xe8/0x108
[ 343.135099][ T151] show_stack+0x18/0x24
[ 343.135106][ T151] dump_stack_lvl+0x50/0x6c
[ 343.135119][ T151] dump_stack+0x18/0x24
[ 343.135126][ T151] sysfs_create_dir_ns+0xe0/0x140
[ 343.135137][ T151] kobject_add_internal+0x228/0x424
[ 343.135146][ T151] kobject_add+0x94/0x10c
[ 343.135152][ T151] device_add+0x1b0/0x4c0
[ 343.135187][ T151] device_register+0x20/0x34
[ 343.135195][ T151] usb_power_delivery_register_capabilities+0x90/0x20c
[ 343.135209][ T151] tcpm_pd_rx_handler+0x9f0/0x15b8
[ 343.135216][ T151] kthread_worker_fn+0x11c/0x260
[ 343.135227][ T151] kthread+0x114/0x1bc
[ 343.135235][ T151] ret_from_fork+0x10/0x20
[ 343.135265][ T151] kobject: kobject_add_internal failed for source-capabilities with -EEXIST, don't try to register things with the same name in the same directory.
Fixes:
|
||
|
|
78b1a8b2e5 |
ANDROID: GKI: Update symbol list for mtk
2 function symbol(s) added 'int rpmsg_chrdev_eptdev_create(struct rpmsg_device*, struct device*, struct rpmsg_channel_info)' 'int rpmsg_chrdev_eptdev_destroy(struct device*, void*)' 1 variable symbol(s) added 'struct class* rpmsg_class' Bug: 354094574 Change-Id: I3c10ffb4a472076f93190266d38ee5197d663ce3 Signed-off-by: Seiya Wang <seiya.wang@mediatek.com> |
||
|
|
002bba562d |
Merge tag 'android14-6.1.90_r00' into android14-6.1
This merges up to the 6.1.90 LTS release into the android14-6.1 branch. Included in here are the following commits: * |
||
|
|
6d6afa9d3f |
FROMGIT: scsi: ufs: core: Suspend clk scaling on no request
Currently UFS clk scaling is getting suspended only when the clks are scaled down. When high load is generated, a huge amount of latency is added due to scaling up the clk and completing the request post that. Suspending the scaling in its existing state when high load is generated improves the random performance KPI by 28%. So suspending the scaling when there are no requests. And the clk would be put in low scaled state when the actual request load is low. Make this change optional by having the check enabled using vops since for some devices suspending without bringing the clk in low scaled state might have impact on power consumption of the SoC. The change takes advantage of the hole in 'struct ufs_clk_scaling' before ANDROID_KABI_RESERVE and does not change the size of the struct. Use __GENKSYMS__ marker to preserve the abi correctly. Signed-off-by: Ram Prakash Gupta <quic_rampraka@quicinc.com> Link: https://lore.kernel.org/r/20240627083756.25340-2-quic_rampraka@quicinc.com Reviewed-by: Bart Van Assche <bvanassche@acm.org> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com> Bug: 351099319 (cherry picked from commit 50183ac2cfb54e027dd36fb22ea1bd1e91e3a08b https://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git 6.11/scsi-staging) Change-Id: I6e11beab7bc56746e7e1ae1ea25f9ab205394ef7 Signed-off-by: Manish Pandey <quic_mapa@quicinc.com> (cherry picked from commit 78931ac60273825b4141796eb8631424b3690712) |
||
|
|
f858f0ff4e |
FROMGIT: scsi: ufs: qcom: Enable suspending clk scaling on no request
Enable suspending clk scaling on no request for Qualcomm SoC. Signed-off-by: Ram Prakash Gupta <quic_rampraka@quicinc.com> Link: https://lore.kernel.org/r/20240627083756.25340-3-quic_rampraka@quicinc.com Reviewed-by: Bart Van Assche <bvanassche@acm.org> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com> Bug: 351099319 (cherry picked from commit ed7dac86f1406d73aed21d0cd1563922031a2fd8 https://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git 6.11/scsi-staging) Change-Id: Ifbdc14ceae5a59c04a5977b56a198fd295253b3e Signed-off-by: Manish Pandey <quic_mapa@quicinc.com> (cherry picked from commit fcfa54b63051a70ad2467a444001b302e97fe9eb) |
||
|
|
f3437db870 |
ANDROID: 16K: Don't set padding vm_flags on 32-bit archs
vma_pad_fixup_flags() and is_mergable_pad_vma() were inadvertently affecting the vm_flags on 32-bit arch, making some VMAs not mergable. This causes zygote to crash as the Art GC's heap compaction fails. The compaction depends on mremap() which will fail when operating on a range that spans multiple VMAs [1]. This can happen now due to the incorrect is_mergable_pad_vma() check. Make all the pgsize_migration APIs no-ops in 32-bit architectures, since Android only performs ELF segment extension in 64-bit archs. [1] https://github.com/torvalds/linux/blob/v6.9/mm/mremap.c#L841-L843 Bug: 353667356 Change-Id: Id9b0076ef173d75a4afc85577355d340fce03e65 Signed-off-by: Kalesh Singh <kaleshsingh@google.com> |
||
|
|
fc94b39f66 |
ANDROID: abi_gki_aarch64_qcom: Add groups_free symbol
Add groups_free to abi_gki_aarch64_qcom. 1 function symbol(s) added 'void groups_free(struct group_info*)' Bug: 352712755 Change-Id: I4ee87435608c3050c2ebbe82e3d1b43bfb4700db Signed-off-by: quic_anane <quic_anane@quicinc.com> |