-
Notifications
You must be signed in to change notification settings - Fork 103
[Deepin-Kernel-SIG] [linux 6.6-y] [Upstream] Update kernel base to 6.6.117-part2 #1352
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
[ Upstream commit d0bf7cd ] In the __arch_prepare_bpf_trampoline() function, retval_off is only meaningful when save_ret is true, so the current logic is correct. However, in the original logic, retval_off is only initialized under certain conditions; for example, in the fmod_ret logic, the compiler is not aware that the flags of the fmod_ret program (prog) have set BPF_TRAMP_F_CALL_ORIG, which results in an uninitialized symbol compilation warning. So initialize retval_off unconditionally to fix it. Signed-off-by: Chenghao Duan <[email protected]> Reviewed-by: Pu Lehui <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Alexei Starovoitov <[email protected]> Signed-off-by: Sasha Levin <[email protected]> (cherry picked from commit d8d03481351e39548aa67588e1ade864d869ef1f) Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 8f12d11 ] It is possible for bpf_xdp_adjust_tail() to free all fragments. The kfunc currently clears the XDP_FLAGS_HAS_FRAGS bit, but not XDP_FLAGS_FRAGS_PF_MEMALLOC. So far, this has not caused a issue when building sk_buff from xdp_buff since all readers of xdp_buff->flags use the flag only when there are fragments. Clear the XDP_FLAGS_FRAGS_PF_MEMALLOC bit as well to make the flags correct. Signed-off-by: Amery Hung <[email protected]> Signed-off-by: Martin KaFai Lau <[email protected]> Reviewed-by: Maciej Fijalkowski <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Sasha Levin <[email protected]> (cherry picked from commit 9c55db583707b908807547c2d31b4eca3d043f17) Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 2e48265 ] The NVMe Base Specification 2.1 states that: """ A host requests an explicit persistent connection ... by specifying a non-zero Keep Alive Timer value in the Connect command. """ As such if we are starting a persistent connection to a discovery controller and the KATO is currently 0 we need to update KATO to a non zero value to avoid continuous timeouts on the target. Signed-off-by: Alistair Francis <[email protected]> Reviewed-by: Hannes Reinecke <[email protected]> Reviewed-by: Christoph Hellwig <[email protected]> Signed-off-by: Keith Busch <[email protected]> Signed-off-by: Sasha Levin <[email protected]> (cherry picked from commit 1a8ca4b9b3e34ab0973159c9d00d56a84ff6e11b) Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 4363264 ] If uprobe handler changes instruction pointer we still execute single step) or emulate the original instruction and increment the (new) ip with its length. This makes the new instruction pointer bogus and application will likely crash on illegal instruction execution. If user decided to take execution elsewhere, it makes little sense to execute the original instruction, so let's skip it. Acked-by: Oleg Nesterov <[email protected]> Acked-by: Andrii Nakryiko <[email protected]> Signed-off-by: Jiri Olsa <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Alexei Starovoitov <[email protected]> Signed-off-by: Sasha Levin <[email protected]> (cherry picked from commit 1721c2938d0049cda7bfa176e754a54c00df15d1) Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 584d55b ] Some motherboards require more time to acquire the ACPI mutex, causing "Failed to acquire mutex" messages to appear in the kernel log. Increase the timeout from 500ms to 800ms to accommodate these cases. Signed-off-by: Ben Copeland <[email protected]> Signed-off-by: Eugene Shalygin <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Guenter Roeck <[email protected]> Signed-off-by: Sasha Levin <[email protected]> (cherry picked from commit 52d4d91db6f8ae229f79c93aefcc5449c7a85506) Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 53d3bd4 ] The Dell OptiPlex 7040 supports the legacy SMM interface for reading sensors and performing fan control. Whitelist this machine so that this driver loads automatically. Closes: Wer-Wolf/i8kutils#15 Signed-off-by: Armin Wolf <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Guenter Roeck <[email protected]> Signed-off-by: Sasha Levin <[email protected]> (cherry picked from commit efa623350136faa9d18729f490f9bf108b2f9ea7) Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 23199d2 ] Fix incorrect size parameter passed to cpuidle_state_write_file() in cpuidle_state_disable(). The function was incorrectly using sizeof(disable) which returns the size of the unsigned int variable (4 bytes) instead of the actual length of the string stored in the 'value' buffer. Since 'value' is populated with snprintf() to contain the string representation of the disable value, we should use the length returned by snprintf() to get the correct string length for writing to the sysfs file. This ensures the correct number of bytes is written to the cpuidle state disable file in sysfs. Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Kaushlendra Kumar <[email protected]> Signed-off-by: Shuah Khan <[email protected]> Signed-off-by: Sasha Levin <[email protected]> (cherry picked from commit 5b69364cbef1422a3882a6dbebb3908d1f0700a1) Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 6212765 ] The fopen_or_die() function was previously hardcoded to open files in read-only mode ("r"), ignoring the mode parameter passed to it. This patch corrects fopen_or_die() to use the provided mode argument, allowing for flexible file access as intended. Additionally, the call to fopen_or_die() in err_on_hypervisor() incorrectly used the mode "ro", which is not a valid fopen mode. This is fixed to use the correct "r" mode. Signed-off-by: Kaushlendra Kumar <[email protected]> Signed-off-by: Len Brown <[email protected]> Signed-off-by: Sasha Levin <[email protected]> (cherry picked from commit 91d267901aab12c5d9f2cfba0e7fb9b792c7a6dc) Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit c97c057 ] On enabling HWP, preserve the reserved bits in MSR_PM_ENABLE. Also, skip writing the MSR_PM_ENABLE if HWP is already enabled. Signed-off-by: Len Brown <[email protected]> Signed-off-by: Sasha Levin <[email protected]> (cherry picked from commit 941ac2bcb1acba500abc081bb9fcd6152136799f) Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 2734fdb ] When we are successful in using cpufreq min/max limits, skip setting the raw MSR limits entirely. This is necessary to avoid undoing any modification that the cpufreq driver makes to our sysfs request. eg. intel_pstate may take our request for a limit that is valid according to HWP.CAP.MIN/MAX and clip it to be within the range available in PLATFORM_INFO. Signed-off-by: Len Brown <[email protected]> Signed-off-by: Sasha Levin <[email protected]> (cherry picked from commit 5ebb9bc9a662050903d7e8325d509f15946e8414) Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 57bf2a3 ] The IRQ domain is (optionally) added during stmpe_probe, but never removed. Add the call to stmpe_remove. Signed-off-by: Alexander Stein <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Lee Jones <[email protected]> Signed-off-by: Sasha Levin <[email protected]> (cherry picked from commit 784f62e68a6cacdb7de4f26b89b5aee051570987) Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 00ea54f ] This driver is licensed GPL-2.0-only, so add the corresponding module flag. Signed-off-by: Alexander Stein <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Lee Jones <[email protected]> Signed-off-by: Sasha Levin <[email protected]> (cherry picked from commit d9e793728021f1b42af96dbc0555806f551146ce) Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 364752a ] clang-21 warns about one uninitialized variable getting dereferenced in madera_dev_init: drivers/mfd/madera-core.c:739:10: error: variable 'mfd_devs' is uninitialized when used here [-Werror,-Wuninitialized] 739 | mfd_devs, n_devs, | ^~~~~~~~ drivers/mfd/madera-core.c:459:33: note: initialize the variable 'mfd_devs' to silence this warning 459 | const struct mfd_cell *mfd_devs; | ^ | = NULL The code is actually correct here because n_devs is only nonzero when mfd_devs is a valid pointer, but this is impossible for the compiler to see reliably. Change the logic to check for the pointer as well, to make this easier for the compiler to follow. Signed-off-by: Arnd Bergmann <[email protected]> Reviewed-by: Richard Fitzgerald <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Lee Jones <[email protected]> Signed-off-by: Sasha Levin <[email protected]> (cherry picked from commit 830c39871f1679ea9b5dccc5ebded3b158214a75) Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 9ac4890 ] We observed the initial probe of the da9063 failing in da9063_get_device_type in about 30% of boots on a Xilinx ZynqMP based board. The problem originates in da9063_i2c_blockreg_read, which uses a single bus transaction to turn the register page and then read a register. On the bus, this should translate to a write to register 0, followed by a read to the target register, separated by a repeated start. However, we found that after the write to register 0, the controller sometimes continues directly with the register address of the read request, without sending the chip address or a repeated start in between, which makes the read request invalid. To fix this, separate turning the page and reading the register into two separate transactions. This brings the initialization code in line with the rest of the driver, which uses register maps (which to my knowledge do not use repeated starts after turning the page). This has been included in our kernel for several months and was recently included in a shipped product. For us, it reliably fixes the issue, and we have not observed any new issues. While the underlying problem is probably with the i2c controller or its driver, I still propose a change here in the interest of robustness: First, I'm not sure this issue can be fixed on the controller side, since there are other issues related to repeated start which can't (AR# 60695, AR# 61664). Second, similar problems might exist with other controllers. Signed-off-by: Jens Kehne <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Lee Jones <[email protected]> Signed-off-by: Sasha Levin <[email protected]> (cherry picked from commit f6bea0255090c42d49285638f8c4463080ee3312) Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit ca74cc4 ] [Why] When transitioning between topologies such as multi-display to single display ODM 2:1, pipes might not be freed before use. [How] In dc_commit_streams, commit an additional, minimal transition if original transition is not seamless to ensure pipes are freed. Reviewed-by: Alvin Lee <[email protected]> Signed-off-by: Clay King <[email protected]> Signed-off-by: Wayne Lin <[email protected]> Tested-by: Daniel Wheeler <[email protected]> Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Sasha Levin <[email protected]> (cherry picked from commit acb3c23080ca3867807cc6909f18fd18a7e5c0ab) Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit e3419e1 ] [WHY] In the worst case, AUX intra-hop done can take hundreds of milliseconds as each retimer in a link might have to wait a full AUX_RD_INTERVAL to send LT abort downstream. [HOW] Wait 300ms for each retimer in a link to allow time to propagate a LT abort without infinitely waiting on intra-hop done. For no-retimer case, keep the max duration at 10ms. Reviewed-by: Wenjing Liu <[email protected]> Signed-off-by: Michael Strauss <[email protected]> Signed-off-by: Ivan Lipski <[email protected]> Tested-by: Daniel Wheeler <[email protected]> Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Sasha Levin <[email protected]> (cherry picked from commit 2728e38ac27ed658d287925bf24c52e4bae96670) Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 3cf06bd ] Add PCI IDs to support display probe for cyan skillfish family of SOCs. Acked-by: Harry Wentland <[email protected]> Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Sasha Levin <[email protected]> (cherry picked from commit 8c05069ce157c1eab02e5492d3c8a47996117c3f) Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 2e72fdb ] [Why] The reason some high-resolution monitors fail to display properly is that this platform does not support sufficiently high DPP and DISP clock frequencies [How] Update DISP and DPP clocks from the smu clock table then DML can filter these mode if not support. Reviewed-by: Nicholas Kazlauskas <[email protected]> Signed-off-by: Paul Hsieh <[email protected]> Signed-off-by: Roman Li <[email protected]> Tested-by: Daniel Wheeler <[email protected]> Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Sasha Levin <[email protected]> (cherry picked from commit f17f0100f7024647f509058c7c23f6e203892538) Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit e87577e ] Cached metrics data validity is 1ms on aldebaran. It's not reasonable for any client to query gpu_metrics at a faster rate and constantly interrupt PMFW. Signed-off-by: Lijo Lazar <[email protected]> Reviewed-by: Asad Kamal <[email protected]> Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Sasha Levin <[email protected]> (cherry picked from commit d4b2c3a3bc01796190913f6dfc286036c350f1b7) Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 2f3b1cc ] Cached metrics data validity is 1ms on arcturus. It's not reasonable for any client to query gpu_metrics at a faster rate and constantly interrupt PMFW. Signed-off-by: Lijo Lazar <[email protected]> Reviewed-by: Asad Kamal <[email protected]> Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Sasha Levin <[email protected]> (cherry picked from commit a0a44b1e0873cb0d53a8bfef1865a9befd53e29a) Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 0e7581e ] Acquire jpeg_pg_lock before changes to jpeg power state and release it after power off from idle work handler. Signed-off-by: Sathishkumar S <[email protected]> Reviewed-by: Leo Liu <[email protected]> Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Sasha Levin <[email protected]> (cherry picked from commit cb02acebd3d0f2e8beff6a28e985633f28cda088) Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 6510b62 ] snprintf() returns the number of characters that *would* have been written, which can overestimate how much you actually wrote to the buffer in case of truncation. That leads to 'data += this' advancing the pointer past the end of the buffer and size going negative. Switching to scnprintf() prevents potential buffer overflows and ensures consistent behavior when building the output string. Signed-off-by: Seyediman Seyedarab <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Danilo Krummrich <[email protected]> Signed-off-by: Sasha Levin <[email protected]> (cherry picked from commit ce054c331334b260e35d65f8c71b9423501a04ae) Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit ebc7086 ] RDC PCI to PCIe bridges, present on Vortex86DX3 and Vortex86EX2 SoCs, do not support MSIs. If enabled, interrupts generated by PCIe devices never reach the processor. I have contacted the manufacturer (DM&P) and they confirmed that PCI MSIs need to be disabled for them. Signed-off-by: Marcos Del Sol Vives <[email protected]> Signed-off-by: Bjorn Helgaas <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Sasha Levin <[email protected]> (cherry picked from commit d7f4354d3de955b10eace6a1e0faf66a4aed5568) Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit c36748e ] The `__WORDSIZE` macro, defined in the non-standard `<bits/wordsize.h>` header, is a GNU extension and not universally available with all toolchains, such as Clang when used with musl libc. This can lead to build failures in environments where this header is missing. The intention of the code is to determine the bit width of a C `long`. Replace the non-portable `__WORDSIZE` with the standard and portable `sizeof(long) * 8` expression to achieve the same result. This change also removes the inclusion of the now-unused `<bits/wordsize.h>` header. Signed-off-by: Wake Liu <[email protected]> Signed-off-by: Jakub Kicinski <[email protected]> Signed-off-by: Sasha Levin <[email protected]> (cherry picked from commit 517abdc57cfbcb467b0aed5c6d264932b4453e34) Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit bc4c0a4 ] The get_next_frame() function in psock_tpacket.c was missing a return statement in its default switch case, leading to a compiler warning. This was caused by a `bug_on(1)` call, which is defined as an `assert()`, being compiled out because NDEBUG is defined during the build. Instead of adding a `return NULL;` which would silently hide the error and could lead to crashes later, this change restores the original author's intent. By adding `#undef NDEBUG` before including <assert.h>, we ensure the assertion is active and will cause the test to abort if this unreachable code is ever executed. Signed-off-by: Wake Liu <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]> Signed-off-by: Sasha Levin <[email protected]> (cherry picked from commit da9d28d7934279a32921c1fd439888503fc4d997) Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 58de1f9 ] The register REG_SYS_CFG1 is used to determine chip basic information as arguments of following flows, such as download firmware and load PHY parameters, so driver read the value early (before power-on). However, the direct IO is disallowed before power-on, or it causes wrong values, which driver recognizes a chip as a wrong type RF_1T1R, but actually RF_2T2R, causing driver warns: rtw88_8822cs mmc1:0001:1: unsupported rf path (1) Fix it by using indirect IO before power-on. Reported-by: Piotr Oniszczuk <[email protected]> Closes: https://lore.kernel.org/linux-wireless/[email protected]/T/#t Suggested-by: Bitterblue Smith <[email protected]> Tested-by: Piotr Oniszczuk <[email protected]> Reviewed-by: Martin Blumenstingl <[email protected]> Signed-off-by: Ping-Ke Shih <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Sasha Levin <[email protected]> (cherry picked from commit 153353da60d0d0f2516a473a924cd03517f90a4e) Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 57af162 ] Some kfd ioctls may not be available depending on the kernel version the user is running, as such we need to report -ENOTTY so userland can determine the cause of the ioctl failure. Signed-off-by: Geoffrey McRae <[email protected]> Acked-by: Alex Deucher <[email protected]> Reviewed-by: Felix Kuehling <[email protected]> Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Sasha Levin <[email protected]> (cherry picked from commit b567d1c40c70e5019eeb68683991a515ffb998aa) Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit cc6e8d1 ] The ivtv driver has a structure named ivtv_open_id that models an open file handle for the device. It embeds a v4l2_fh instance for file handles that correspond to a V4L2 video device, and stores a pointer to that v4l2_fh in struct ivtv_stream to identify which open file handle owns a particular stream. In addition to video devices, streams can be owned by ALSA PCM devices. Those devices do not make use of the v4l2_fh instance for obvious reasons, but the snd_ivtv_pcm_capture_open() function still initializes a "fake" v4l2_fh for the sole purpose of using it as an open file handle identifier. The v4l2_fh is not properly destroyed when the ALSA PCM device is closed, leading to possible resource leaks. Fortunately, the v4l2_fh instance pointed to by ivtv_stream is not accessed, only the pointer value is used for comparison. Replace it with a pointer to the ivtv_open_id structure that embeds the v4l2_fh, and don't initialize the v4l2_fh for ALSA PCM devices. Signed-off-by: Laurent Pinchart <[email protected]> Signed-off-by: Hans Verkuil <[email protected]> Signed-off-by: Sasha Levin <[email protected]> (cherry picked from commit 48bb7f8ab9841cdb9b0bd27c9c1e73658bd03286) Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 19fb9c5 ] The v4l2_fh initialized and added in vpu_v4l2_open() is delete and cleaned up when the last reference to the vpu_inst is released. This may happen later than at vpu_v4l2_close() time. Not deleting and cleaning up the v4l2_fh when closing the file handle to the video device is not ideal, as the v4l2_fh will still be present in the video device's fh_list, and will store a copy of events queued to the video device. There may also be other side effects of keeping alive an object that represents an open file handle after the file handle is closed. The v4l2_fh instance is embedded in the vpu_inst structure, and is accessed in two different ways: - in vpu_notify_eos() and vpu_notify_source_change(), to queue V4L2 events to the file handle ; and - through the driver to access the v4l2_fh.m2m_ctx pointer. The v4l2_fh.m2m_ctx pointer is not touched by v4l2_fh_del() and v4l2_fh_exit(). It is set to NULL by the driver when closing the file handle, in vpu_v4l2_close(). The vpu_notify_eos() and vpu_notify_source_change() functions are called in vpu_set_last_buffer_dequeued() and vdec_handle_resolution_change() respectively, only if the v4l2_fh.m2m_ctx pointer is not NULL. There is therefore a guarantee that no new event will be queued to the v4l2_fh after vpu_v4l2_close() destroys the m2m_ctx. The vpu_notify_eos() function is also called from vpu_vb2_buf_finish(), which is guaranteed to be called for all queued buffers when vpu_v4l2_close() calls v4l2_m2m_ctx_release(), and will not be called later. It is therefore safe to assume that the driver will not touch the v4l2_fh, except to check the m2m_ctx pointer, after vpu_v4l2_close() destroys the m2m_ctx. We can safely delete and cleanup the v4l2_fh synchronously in vpu_v4l2_close(). Signed-off-by: Laurent Pinchart <[email protected]> Reviewed-by: Ming Qian <[email protected]> Signed-off-by: Hans Verkuil <[email protected]> Signed-off-by: Sasha Levin <[email protected]> (cherry picked from commit 3f964091abb0797150d2e7a207f2cbea14aa0fba) Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 478306e ] Use the crtc_* fields from drm_display_mode, instead of the "logical" fields. This shouldn't change anything in practice, but afaiu the crtc_* fields are the correct ones to use here. Reviewed-by: Aradhya Bhatia <[email protected]> Tested-by: Parth Pancholi <[email protected]> Tested-by: Jayesh Choudhary <[email protected]> Reviewed-by: Devarsh Thakkar <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Tomi Valkeinen <[email protected]> Signed-off-by: Sasha Levin <[email protected]> (cherry picked from commit 105ed683b4008724bb702f49ae53556cef35803b) Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 16c6101 ] While stress testing TCP I had unexpected retransmits and sack packets when a single cpu receives data from multiple high-throughput flows. super_netperf 4 -H srv -T,10 -l 3000 & Tcpdump extract: 00:00:00.000007 IP6 clnt > srv: Flags [.], seq 26062848:26124288, ack 1, win 66, options [nop,nop,TS val 651460834 ecr 3100749131], length 61440 00:00:00.000006 IP6 clnt > srv: Flags [.], seq 26124288:26185728, ack 1, win 66, options [nop,nop,TS val 651460834 ecr 3100749131], length 61440 00:00:00.000005 IP6 clnt > srv: Flags [P.], seq 26185728:26243072, ack 1, win 66, options [nop,nop,TS val 651460834 ecr 3100749131], length 57344 00:00:00.000006 IP6 clnt > srv: Flags [.], seq 26243072:26304512, ack 1, win 66, options [nop,nop,TS val 651460844 ecr 3100749141], length 61440 00:00:00.000005 IP6 clnt > srv: Flags [.], seq 26304512:26365952, ack 1, win 66, options [nop,nop,TS val 651460844 ecr 3100749141], length 61440 00:00:00.000007 IP6 clnt > srv: Flags [P.], seq 26365952:26423296, ack 1, win 66, options [nop,nop,TS val 651460844 ecr 3100749141], length 57344 00:00:00.000006 IP6 clnt > srv: Flags [.], seq 26423296:26484736, ack 1, win 66, options [nop,nop,TS val 651460853 ecr 3100749150], length 61440 00:00:00.000005 IP6 clnt > srv: Flags [.], seq 26484736:26546176, ack 1, win 66, options [nop,nop,TS val 651460853 ecr 3100749150], length 61440 00:00:00.000005 IP6 clnt > srv: Flags [P.], seq 26546176:26603520, ack 1, win 66, options [nop,nop,TS val 651460853 ecr 3100749150], length 57344 00:00:00.003932 IP6 clnt > srv: Flags [P.], seq 26603520:26619904, ack 1, win 66, options [nop,nop,TS val 651464844 ecr 3100753141], length 16384 00:00:00.006602 IP6 clnt > srv: Flags [.], seq 24862720:24866816, ack 1, win 66, options [nop,nop,TS val 651471419 ecr 3100759716], length 4096 00:00:00.013000 IP6 clnt > srv: Flags [.], seq 24862720:24866816, ack 1, win 66, options [nop,nop,TS val 651484421 ecr 3100772718], length 4096 00:00:00.000416 IP6 srv > clnt: Flags [.], ack 26619904, win 1393, options [nop,nop,TS val 3100773185 ecr 651484421,nop,nop,sack 1 {24862720:24866816}], length 0 After analysis, it appears this is because of the cond_resched() call from __release_sock(). When current thread is yielding, while still holding the TCP socket lock, it might regain the cpu after a very long time. Other peer TLP/RTO is firing (multiple times) and packets are retransmit, while the initial copy is waiting in the socket backlog or receive queue. In this patch, I call cond_resched() only once every 16 packets. Modern TCP stack now spends less time per packet in the backlog, especially because ACK are no longer sent (commit 133c4c0 "tcp: defer regular ACK while processing socket backlog") Before: clnt:/# nstat -n;sleep 10;nstat|egrep "TcpOutSegs|TcpRetransSegs|TCPFastRetrans|TCPTimeouts|Probes|TCPSpuriousRTOs|DSACK" TcpOutSegs 19046186 0.0 TcpRetransSegs 1471 0.0 TcpExtTCPTimeouts 1397 0.0 TcpExtTCPLossProbes 1356 0.0 TcpExtTCPDSACKRecv 1352 0.0 TcpExtTCPSpuriousRTOs 114 0.0 TcpExtTCPDSACKRecvSegs 1352 0.0 After: clnt:/# nstat -n;sleep 10;nstat|egrep "TcpOutSegs|TcpRetransSegs|TCPFastRetrans|TCPTimeouts|Probes|TCPSpuriousRTOs|DSACK" TcpOutSegs 19218936 0.0 Signed-off-by: Eric Dumazet <[email protected]> Reviewed-by: Kuniyuki Iwashima <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]> Signed-off-by: Sasha Levin <[email protected]> (cherry picked from commit 170bd191fa6c18748771843e1396922865a23b8a) Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 6977775 ] When the EEPROM MAC is read by way of ADDRH, it can return all 0s the first time. Subsequent reads succeed. This is fully reproduceable on the Phytec PCM049 SOM. Re-read the ADDRH when this behaviour is observed, in an attempt to correctly apply the EEPROM MAC address. Signed-off-by: Colin Foster <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]> Signed-off-by: Sasha Levin <[email protected]> (cherry picked from commit a5c425011c3108b496db6a5b8c04a6c753a16024) Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 9be15fb ] After a panic if SNP is enabled in the previous kernel then the kdump kernel boots with IOMMU SNP enforcement still enabled. IOMMU command buffers and event buffer registers remain locked and exclusive to the previous kernel. Attempts to enable command and event buffers in the kdump kernel will fail, as hardware ignores writes to the locked MMIO registers as per AMD IOMMU spec Section 2.12.2.1. Skip enabling command buffers and event buffers for kdump boot as they are already enabled in the previous kernel. Reviewed-by: Vasant Hegde <[email protected]> Tested-by: Sairaj Kodilkar <[email protected]> Signed-off-by: Ashish Kalra <[email protected]> Link: https://lore.kernel.org/r/576445eb4f168b467b0fc789079b650ca7c5b037.1756157913.git.ashish.kalra@amd.com Signed-off-by: Joerg Roedel <[email protected]> Signed-off-by: Sasha Levin <[email protected]> (cherry picked from commit 44a764aec64b3f3235b9cbac2525222f69685418) Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit ecf6508 ] These registers exist and at least on the t602x variant the IRQ only clears when theses are cleared. Signed-off-by: Hector Martin <[email protected]> Signed-off-by: Janne Grunau <[email protected]> Reviewed-by: Sven Peter <[email protected]> Reviewed-by: Neal Gompa <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Joerg Roedel <[email protected]> Signed-off-by: Sasha Levin <[email protected]> (cherry picked from commit aa98b4c1f84cee4a1dc962942921aa24187b48c3) Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 1e18746 ] Add additional PCI IDs to the cyan skillfish family. Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Sasha Levin <[email protected]> (cherry picked from commit b17fe7f5a2decb121fac91745f4643e3cd6f3e9e) Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 94bd7bf ] Cyan skillfish uses different SMU firmware. Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Sasha Levin <[email protected]> (cherry picked from commit 65240044398eb236f96225c6750a3af9e9b6617f) Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit fa819e3 ] Some SOCs which are part of the cyan skillfish family rely on an explicit firmware for IP discovery. Add support for the gpu_info firmware. Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Sasha Levin <[email protected]> (cherry picked from commit 3c66bc0acc08304961ca0ba98a5aee2c77def074) Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit ed6f727 ] Set the hid req->zero flag of ep0/in_ep to true by default, then the UDC drivers can transfer a zero length packet at the end if the hid transfer with size divisible to EPs max packet size according to the USB 2.0 spec. Signed-off-by: William Wu <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]> Signed-off-by: Sasha Levin <[email protected]> (cherry picked from commit 38c179c52d22272bd5df9d0b14caa6a2e2e3d3e3) Signed-off-by: Wentao Guan <[email protected]>
…xit of cdnsp gadget [ Upstream commit 87c5ff5 ] In the __cdnsp_gadget_init() and cdnsp_gadget_exit() functions, the gadget structure (pdev->gadget) was freed before its endpoints. The endpoints are linked via the ep_list in the gadget structure. Freeing the gadget first leaves dangling pointers in the endpoint list. When the endpoints are subsequently freed, this results in a use-after-free. Fix: By separating the usb_del_gadget_udc() operation into distinct "del" and "put" steps, cdnsp_gadget_free_endpoints() can be executed prior to the final release of the gadget structure with usb_put_gadget(). A patch similar to bb9c74a("usb: dwc3: gadget: Free gadget structure only after freeing endpoints"). Signed-off-by: Chen Yufeng <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]> Signed-off-by: Sasha Levin <[email protected]> (cherry picked from commit ea37884097a0931abb8e11e40eacfb25e9fdb5e9) Signed-off-by: Wentao Guan <[email protected]>
Reviewer's GuideKernel rebase to 6.6.117 (part 2) with a large set of upstream backports focused on storage (UFS Mediatek, NVMe), AMD GPU/AMDKFD, media (V4L2 tuners/codecs), DMA/IOMMU, networking (stmmac, bridge, IPv4/IPv6, NFC), USB gadget, hwmon and misc core subsystems, mainly fixing bugs, tightening validation, and improving power/error handling; local changes are mechanical backports of these upstream patches with minimal adaptation. Sequence diagram for UFS Mediatek link setup and Auto-Hibernate/clock-gating handlingsequenceDiagram
participant Probe as ufs_mtk_probe
participant HBA as ufs_hba
participant Variant as ufs_mtk_host
Probe->>HBA: ufshcd_alloc_host()
Probe->>HBA: ufshcd_init()
Probe->>Variant: ufs_mtk_fixup_dev_quirks(hba)
activate Variant
Variant->>Variant: ufs_mtk_vreg_fix_vcc(hba)
Variant->>Variant: ufs_mtk_vreg_fix_vccqx(hba)
Variant->>Variant: ufs_mtk_fix_ahit(hba)
activate Variant
alt Auto-hibern8 supported
Variant->>HBA: check dev_info.wmanufacturerid
alt Samsung
Variant->>Variant: us = 3500
else Micron
Variant->>Variant: us = 2000
else Other
Variant->>Variant: us = 1000
end
Variant->>Variant: ufs_mtk_us_to_ahit(us)
Variant->>HBA: hba->ahit = encoded_timer
end
Variant->>Variant: ufs_mtk_setup_clk_gating(hba)
activate Variant
Variant->>HBA: ufshcd_is_clkgating_allowed(hba)?
alt Clock gating allowed
Variant->>HBA: if auto_hibern8 supported and hba->ahit != 0
Variant->>Variant: decode ah_scale, ah_timer from hba->ahit
Variant->>Variant: ah_ms = timer * scale / 1000
Variant->>HBA: clk_gating.delay_ms = max(ah_ms, 10)
end
deactivate Variant
deactivate Variant
deactivate Variant
Note over HBA,Variant: Later during power change
HBA->>Variant: ufs_mtk_pre_pwr_change(hba, ...)
activate Variant
alt FASTAUTO mode and !UFSHCD_QUIRK_SKIP_DEF_UNIPRO_TIMEOUT_SETTING
Variant->>HBA: ufshcd_dme_set(PA_PWRMODEUSERDATA0..5,
Variant->>HBA: ufshcd_dme_set(DME_LocalFC0/TC0/AFC0, default_vals)
end
Variant->>HBA: ufshcd_uic_change_pwr_mode(... FASTAUTO ...)
deactivate Variant
Note over HBA: Device reset timing change
HBA->>Variant: ufs_mtk_device_reset(hba)
activate Variant
Variant->>Variant: ufs_mtk_device_reset_ctrl(0, res)
Variant->>HBA: ufshcd_hba_stop(hba) %% now in middle of reset
Variant->>Variant: ufs_mtk_device_reset_ctrl(1, res)
deactivate Variant
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
| * Validates the given display mode on DVI and HDMI connectors, | ||
| * including analog signals on DVI-I. | ||
| */ | ||
| static enum drm_mode_status amdgpu_connector_dvi_mode_valid(struct drm_connector *connector, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
WARNING: Prefer a maximum 75 chars per line (possible unwrapped commit description?)
|
|
||
| /* CYAN_SKILLFISH */ | ||
| {0x1002, 0x13DB, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CYAN_SKILLFISH|AMD_IS_APU}, | ||
| {0x1002, 0x13F9, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CYAN_SKILLFISH|AMD_IS_APU}, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
WARNING: Prefer a maximum 75 chars per line (possible unwrapped commit description?)
| #define KFD_KERNEL_QUEUE_SIZE 2048 | ||
|
|
||
| #define KFD_UNMAP_LATENCY_MS (4000) | ||
| /* KFD_UNMAP_LATENCY_MS is the timeout CP waiting for SDMA preemption. One XCC |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
WARNING: Prefer a maximum 75 chars per line (possible unwrapped commit description?)
| } | ||
|
|
||
| /* | ||
| * If not already seamless, make transition seamless by inserting intermediate minimal transition |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
WARNING: Prefer a maximum 75 chars per line (possible unwrapped commit description?)
| uint8_t sink_status = 0; | ||
| uint8_t i; | ||
| uint32_t i; | ||
| uint8_t lttpr_count = dp_parse_lttpr_repeater_count(link->dpcd_caps.lttpr_caps.phy_repeater_cnt); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
WARNING: Prefer a maximum 75 chars per line (possible unwrapped commit description?)
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
deepin pr auto review我来帮你审查这个 git diff,从语法逻辑、代码质量、性能和安全等方面进行分析。
总体来说,这个 diff 的修改质量较高,涵盖了多个子系统的改进,包括硬件支持、性能优化和安全性增强。建议在提交前进行更充分的测试,特别是新硬件支持部分。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey there - I've reviewed your changes and found some issues that need to be addressed.
- In drivers/char/misc.c, the logic resetting misc->minor in misc_deregister() only triggers when minor > MISC_DYNAMIC_MINOR, which will never reset dynamically allocated minors (== MISC_DYNAMIC_MINOR); consider using >= to ensure dynamic minors are correctly reset after deregistration.
- In f_ncm.c, ncm_bind() now hard-codes index 1 when assigning ncm_string_defs[1].s = ncm->ethaddr; it would be more robust to use the existing STRING_MAC_IDX constant (as done previously) instead of a literal index to avoid breakage if the enum layout changes.
Prompt for AI Agents
Please address the comments from this code review:
## Overall Comments
- In drivers/char/misc.c, the logic resetting misc->minor in misc_deregister() only triggers when minor > MISC_DYNAMIC_MINOR, which will never reset dynamically allocated minors (== MISC_DYNAMIC_MINOR); consider using >= to ensure dynamic minors are correctly reset after deregistration.
- In f_ncm.c, ncm_bind() now hard-codes index 1 when assigning ncm_string_defs[1].s = ncm->ethaddr; it would be more robust to use the existing STRING_MAC_IDX constant (as done previously) instead of a literal index to avoid breakage if the enum layout changes.
## Individual Comments
### Comment 1
<location> `drivers/remoteproc/wkup_m3_rproc.c:151-152` </location>
<code_context>
}
- pm_runtime_enable(&pdev->dev);
+ ret = devm_pm_runtime_enable(dev);
+ if (ret < 0)
+ return dev_err_probe(dev, ret, "Failed to enable runtime PM\n");
ret = pm_runtime_get_sync(&pdev->dev);
</code_context>
<issue_to_address>
**issue (bug_risk):** devm_pm_runtime_enable returns void, assigning to `ret` will not compile
`devm_pm_runtime_enable()` returns `void`, so assigning it to `ret` and checking `ret < 0` is a compile error. If you need an error code, use `pm_runtime_enable()` (which returns `int`) and handle disable in error paths, or stop checking the return value and rely on the devm helper semantics.
</issue_to_address>Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This pull request backports 100 upstream kernel patches from v6.6.117429 to v6.6.117329 to the Deepin 6.6.y kernel branch. The changes span multiple subsystems with bug fixes, hardware support additions, and stability improvements.
Key changes:
- Fix critical bugs in networking (IPv6 AH, RDS endianness, socket backlog, bridge forwarding), USB gadget (NCM MAC, HID zero-length packets, cdnsp teardown), and media drivers (imon timeout, ivtv fake v4l2_fh, adv7180 locking)
- Add hardware support for Dell OptiPlex 7040, MOONDROP Quark2 USB audio, additional AMD cyan_skillfish GPU variants, and RDC PCI bridge MSI quirks
- Improve stability in SCSI/UFS (Mediatek auto-hibernation, calibration, reset timing), AMDGPU (JPEG power-gating, KFD CRIU/IOCTL handling, display clock tables), and DMA engines (error propagation, callback results)
Reviewed changes
Copilot reviewed 100 out of 100 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| tools/testing/selftests/net/psock_tpacket.c | Remove non-portable __WORDSIZE macro, enable assertions |
| tools/power/x86/x86_energy_perf_policy/x86_energy_perf_policy.c | Fix fopen mode, enhance HWP handling, prefer driver limits |
| tools/power/cpupower/lib/cpuidle.c | Fix incorrect size calculation in cpuidle_state_disable |
| sound/usb/validate.c | Add validation for UAC2/UAC3 effect units |
| sound/usb/mixer.c | Add volume quirk for MOONDROP Quark2 |
| net/rds/rds.h | Fix endianness in RDS_MPATH_HASH |
| net/ipv6/ah6.c | Fix field-spanning memcpy with helper functions |
| net/ipv6/addrconf.c | Add sanity checks on rpl_seg_enabled sysctl |
| net/ipv4/nexthop.c | Skip synchronize_net when grp_list is empty |
| net/core/sock.c | Call cond_resched less often, fix trace call for memcg |
| net/core/filter.c | Clear pfmemalloc flag when freeing XDP fragments |
| net/bridge/br_forward.c | Check administratively down ports for backup redirection |
| kernel/events/uprobes.c | Skip emulation when IP changed by handler |
| include/net/xdp.h | Add xdp_buff_clear_frag_pfmemalloc helper |
| include/net/nfc/nci_core.h | Increase NCI_DATA_TIMEOUT to 3000ms |
| include/linux/shdma-base.h | Change setup_xfer return type to int |
| include/linux/pci.h | Add S390 to pci_uevent_ers availability |
| fs/fuse/inode.c | Zero initialize all inode private data |
| drivers/usb/gadget/function/f_ncm.c | Fix MAC address assignment timing |
| drivers/usb/gadget/function/f_hid.c | Enable zero-length packet transfers |
| drivers/usb/cdns3/cdnsp-gadget.c | Fix use-after-free in gadget teardown |
| drivers/ufs/host/ufs-mediatek.c | Fix auto-hibernate timer, power mode settings, reset sequence, vccqx handling |
| drivers/thunderbolt/tb.c | Use is_pciehp instead of is_hotplug_bridge |
| drivers/scsi/pm8001/* | Fix race condition with static variables, use int for error codes |
| drivers/scsi/mpi3mr/mpi3mr_fw.c | Check controller state after queue creation |
| drivers/remoteproc/wkup_m3_rproc.c | Use devm_pm_runtime_enable helper |
| drivers/ptp/ptp_clock.c | Validate time settings for PTP clocks |
| drivers/pci/quirks.c | Disable MSI on RDC bridges, use is_pciehp |
| drivers/pci/pci-driver.c | Add S390 support for pci_uevent_ers |
| drivers/pci/p2pdma.c | Fix incorrect pointer in devm_kfree |
| drivers/nvme/host/core.c | Set non-zero KATO for persistent discovery |
| drivers/net/wireless/realtek/rtw88/sdio.c | Use indirect IO before power-on |
| drivers/net/phy/fixed_phy.c | Let fixed_phy_unregister free phy_device |
| drivers/net/mdio/of_mdio.c | Remove duplicate phy_device_free call |
| drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | Check stmmac_hw_setup result, fix Rx checksum handling |
| drivers/net/ethernet/smsc/smsc911x.c | Re-read MAC on corruption |
| drivers/net/ethernet/intel/ice/* | Replace %pK with %p in traces/debug |
| drivers/net/dsa/dsa_loop.c | Remove duplicate phy_device_free |
| drivers/mfd/stmpe.c | Remove IRQ domain on removal |
| drivers/mfd/stmpe-i2c.c | Add missing MODULE_LICENSE |
| drivers/mfd/madera-core.c | Fix false-positive uninitialized warning |
| drivers/mfd/da9063-i2c.c | Split chip variant reading into two transactions |
| drivers/media/tuners/* | Initialize variables to fix uninitialized warnings |
| drivers/media/rc/imon.c | Add timeout to wait_for_completion, handle errors |
| drivers/media/platform/verisilicon/* | Disable selection ioctls for decoders |
| drivers/media/platform/amphion/vpu_v4l2.c | Delete v4l2_fh synchronously in release |
| drivers/media/pci/ivtv/* | Replace fake v4l2_fh with ivtv_open_id |
| drivers/media/i2c/ir-kbd-i2c.c | Initialize variables in ir_key_poll |
| drivers/media/i2c/adv7180.c | Add locking, fix format handling, validate querystd |
| drivers/media/i2c/Kconfig | Add HAVE_CLK dependency for camera sensors |
| drivers/iommu/apple-dart.c | Clear stream error indicator for T8110 |
| drivers/iommu/amd/init.c | Skip buffer setup in kdump kernel |
| drivers/iio/adc/spear_adc.c | Mask channel and avg sample bits properly |
| drivers/iio/adc/imx93_adc.c | Load calibration even on failure |
| drivers/hwmon/dell-smm-hwmon.c | Add Dell OptiPlex 7040 support |
| drivers/hwmon/asus-ec-sensors.c | Increase ACPI mutex timeout |
| drivers/gpu/drm/tidss/* | Use crtc_* timing fields |
| drivers/gpu/drm/nouveau/nvkm/core/enum.c | Replace snprintf with scnprintf |
| drivers/gpu/drm/msm/dsi/phy/dsi_phy_7nm.c | Toggle buffer resync, store VCO rate |
| drivers/gpu/drm/bridge/display-connector.c | Don't set detect for DisplayPort |
| drivers/gpu/drm/bridge/cadns-dsi-core.c | Fix REG_WAKEUP_TIME, support burst mode |
| drivers/gpu/drm/amd/pm/swsmu/* | Use cached metrics on aldebaran/arcturus |
| drivers/gpu/drm/amd/display/* | Add cyan_skillfish IDs, fix clock tables, ensure seamless commits |
| drivers/gpu/drm/amd/amdkfd/* | Fix CRIU, SVM permissions, IOCTL errors, unmap latency |
| drivers/gpu/drm/amd/amdgpu/* | Hold pg_lock for JPEG, add cyan_skillfish support, fix HDMI/DVI limits |
| drivers/extcon/extcon-adc-jack.c | Fix wakeup source leak |
| drivers/dma/sh/* | Add error handling for setup_xfer |
| drivers/dma/mv_xor.c | Match alloc_wc/free_wc calls |
| drivers/dma/dw-edma/dw-edma-core.c | Set status for callback_result |
| drivers/crypto/intel/qat/qat_common/qat_uclo.c | Use kcalloc for safety |
| drivers/char/misc.c | Fix reentry for dynamic minor devices |
| arch/x86/entry/vsyscall/vsyscall_64.c | Don't require X86_PF_INSTR for emulation |
| arch/s390/pci/pci_event.c | Use pci_uevent_ers in recovery |
| arch/riscv/net/bpf_jit_comp64.c | Fix uninitialized retval_off |
| arch/powerpc/kernel/eeh_driver.c | Use error_detected result in uevent |
| arch/mips/* | Fix Lantiq Danube device tree properties |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| struct clk_limit_table *clk_table = &bw_params->clk_table; | ||
| unsigned int i, closest_clk_lvl; | ||
| int j; | ||
| int j = 0, max_dispclk_mhz = 0, max_dppclk_mhz = 0; |
Copilot
AI
Dec 5, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[nitpick] The variable initialization int j = 0, max_dispclk_mhz = 0, max_dppclk_mhz = 0; sets j = 0, but j is later initialized in line 352 to dcn3_01_soc.num_states - 1 and used in a backward loop. The initial j = 0 is unnecessary since it's overwritten before use and could be misleading.
| int j = 0, max_dispclk_mhz = 0, max_dppclk_mhz = 0; | |
| int j, max_dispclk_mhz = 0, max_dppclk_mhz = 0; |
| ret = pm_runtime_put(schan->dev); | ||
|
|
||
| spin_unlock_irq(&schan->chan_lock); | ||
| return ret; |
Copilot
AI
Dec 5, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The error path returns the result of pm_runtime_put() instead of the original setup_xfer error code. If pm_runtime_put() succeeds (returns 0), this masks the original setup_xfer failure (which was < 0). The function should return the original setup_xfer error code, not the pm_runtime_put result. Consider: int setup_ret = ret; ret = pm_runtime_put(schan->dev); ... return setup_ret;
| ret = pm_runtime_put(schan->dev); | |
| spin_unlock_irq(&schan->chan_lock); | |
| return ret; | |
| { | |
| int setup_ret = ret; | |
| pm_runtime_put(schan->dev); | |
| spin_unlock_irq(&schan->chan_lock); | |
| return setup_ret; | |
| } |
| * reference voltage do not meet the requirement: | ||
| * ADC reference voltage Noise < 1.8V * 1/2^ENOB | ||
| * And the resault of ADC is not that accurate. | ||
| */ |
Copilot
AI
Dec 5, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Typo in comment: "resault" should be "result".
| * stale when we write to MSRs. | ||
| * then update via sysfs. The intel_pstate driver may modify (clip) | ||
| * this request, say, when HWP_CAP is outside of PLATFORM_INFO limits, | ||
| * and the driver-chosen value takes precidence. |
Copilot
AI
Dec 5, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Typo in comment: "precidence" should be "precedence".
| /* Skip a special case that allocates VRAM without VA, | ||
| * VA will be invalid of 0. | ||
| */ | ||
| if (!(!args->va_addr && (flags & KFD_IOC_ALLOC_MEM_FLAGS_VRAM)) && |
Copilot
AI
Dec 5, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[nitpick] The condition check here is inverted. The code should skip the special case when args->va_addr is 0 AND the VRAM flag is set. The current double negative !(!args->va_addr && ...) is correct but unnecessarily complex. Consider simplifying to: if ((args->va_addr || !(flags & KFD_IOC_ALLOC_MEM_FLAGS_VRAM)) && interval_tree_iter_first(...)) for better readability.
| if (!(!args->va_addr && (flags & KFD_IOC_ALLOC_MEM_FLAGS_VRAM)) && | |
| if ((args->va_addr || !(flags & KFD_IOC_ALLOC_MEM_FLAGS_VRAM)) && |
git log --oneline v6.6.117
429..v6.6.117329 | wc100 886 7223
Handle:
drm/amdgpu: Respect max pixel clock for HDMI and DVI-D (v2)
Summary by Sourcery
Rebase the Deepin 6.6.y kernel to a newer 6.6.117 upstream point, picking up a broad set of driver, networking, media, and tooling fixes and small feature updates.
Bug Fixes:
Enhancements:
Tests: