Commit graph

1,412,004 commits

Author SHA1 Message Date
Qianfeng Rong
5545d56fd1 PM: hibernate: Use vmalloc_array() and vcalloc() to improve code
Remove array_size() calls and replace vmalloc() and vzalloc() with
vmalloc_array() and vcalloc() respectively to simplify the code in
save_compressed_image() and load_compressed_image().

vmalloc_array() is also optimized better, resulting in less
instructions being used, and vmalloc_array() handling overhead is
lower [1].

Link: https://lore.kernel.org/lkml/abc66ec5-85a4-47e1-9759-2f60ab111971@vivo.com/ [1]
Signed-off-by: Qianfeng Rong <rongqianfeng@vivo.com>
Link: https://patch.msgid.link/20250817083636.53872-1-rongqianfeng@vivo.com
[ rjw: Changelog edits ]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2025-09-01 11:55:53 +02:00
Arnd Bergmann
1b8086f172 Early Nuvoton arm64 devicetree updates for 6.18
Integrate changes from Tomer reworking devicetree pinctrl, reset, and clk nodes
 for NPCM845-based platforms.
 -----BEGIN PGP SIGNATURE-----
 
 iJIEABYIADoWIQSoUT1x3bOSX/nAa8ajM9GZTrjhpgUCaKvm2RwcYW5kcmV3QGNv
 ZGVjb25zdHJ1Y3QuY29tLmF1AAoJEKMz0ZlOuOGmaQgBAKs2mBbmLEIXdV6eejPN
 4kwq50JGHGKOjD2tTqvKaqmHAP91W+FoXFR4vD/NNT/kl7aELL8HtkF5702Fvxws
 hqFGBg==
 =P8n9
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmi1bYEACgkQmmx57+YA
 GNmtrhAAj0aYrpJLJoWVsKvI3wIcHP54wlBe7xtHrE3BT/RQJW2PWIYsc9ZhXAWU
 4Zaze7Ckh7xcNiSoaocR5LGu+m+8bkmTxOYSjG5b0KVCr731sZYP3LiYNOxNM7oF
 o5lPJYUnUoywjDRzXncg/47NgKBXXoJIi7KSsomfQ8nM7c+WYC3EDvesmGP6eX8R
 2KTTR9ZtCypeVeqBySGKZ9lrduHB2GlEcGwUWZqgQyC2vQcSzeFt2C3VkeTV4oDg
 Lx/glZHlblGygpWd6eQLQxbpjKFW8+glDZorBDkhp0pDWLFCzha9SMfgQpSglJpK
 uv9Qk2/dpqLHp4O+9jiYJIj9AKUgcabRbFkbwbsO7o5mOYU+UVYT22iLhaHy7XoQ
 jCFUpmKHd+HE8ViiOO45HkLzQZgPEZhgMmIYNwFXk1wdyT7J3Wr9xdrLI4Tgmt0N
 zV84wcAXOiA8NaOkzLy0z/i4o46p5cvIOYwEd3baAowk87kt4LmFVzBsC+icFVu8
 VmE+xqQ6SFCHMt8GKQo1AOPW6GMLAX7q5jWBybX6aafAOAZFVNdjWviNH5iqFxho
 1cM2lQj2MkYSdZDPcp4N/Om6WUezzQFd+5hJFACGxm3si4LKnwseddBUmDyncx9P
 SeNzYwSS9kJyoANn7Z7qWEvBkv8sfcw9beU+J/OeMvG0MhUDLxo=
 =yDNa
 -----END PGP SIGNATURE-----

Merge tag 'nuvoton-arm64-6.18-devicetree-0' of https://git.kernel.org/pub/scm/linux/kernel/git/bmc/linux into soc/dt

Early Nuvoton arm64 devicetree updates for 6.18

Integrate changes from Tomer reworking devicetree pinctrl, reset, and clk nodes
for NPCM845-based platforms.

* tag 'nuvoton-arm64-6.18-devicetree-0' of https://git.kernel.org/pub/scm/linux/kernel/git/bmc/linux:
  arm64: dts: nuvoton: add refclk and update peripheral clocks for NPCM845
  arm64: dts: nuvoton: combine NPCM845 reset and clk nodes
  arm64: dts: nuvoton: npcm845: Add pinctrl groups

Link: https://lore.kernel.org/r/bf3734aab62a5fcc8959261551bb4b1fa636efbd.camel@codeconstruct.com.au
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-09-01 11:55:13 +02:00
Arnd Bergmann
921e41c446 Early Nuvoton ARM devicetree updates for 6.18
So far we have just the one fix from Krzysztof that switches some nodes to use
 generic names, as recommended by the spec.
 -----BEGIN PGP SIGNATURE-----
 
 iJEEABYIADoWIQSoUT1x3bOSX/nAa8ajM9GZTrjhpgUCaKvAERwcYW5kcmV3QGNv
 ZGVjb25zdHJ1Y3QuY29tLmF1AAoJEKMz0ZlOuOGmHv4A9RM2+JUNZWMKvDPcTjFt
 H2R8zB/cFEbPOMtoSkB+oUwA/0JGI7QRVZw7RqBQqfuxysNGfWhLZEZHleBUlM8S
 J+oK
 =y1U6
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmi1bSUACgkQmmx57+YA
 GNnGIhAAozYx97G+M3hNTEXoXSpvGGkdGdlmSdnxmbaWsC7k5cxGyGBVARnfrkxp
 MHvFLZLxMH7jitv2IEoDhQLH+rYtbejIAZk8Ogad/QLH37Y8JPbkL4toyUN6CTzH
 YAS/OThLjJyjZgwCG9nc1oSZJE5IZMqBSS//iHnRdRZNQWZwAByU2ZMFWSEptj8l
 XlvHQK6DtkzncNAzTmrh30VjqXeeIn+roCNC1n18CPUVFdkRsmYOFk2lEAUK0z+k
 tQDcr3CjztnSyKm16X85GyJZvgbT8jQkAwZt9POv+MvfTTXKQ++AiacWd717D/U9
 ZsXBC0z7PMN+gdwfJ0FyPmcBgoEFNdjt1mxt/G79/ppW8NtubV2ygXxDlmB5A3um
 yPbDk8ygRQKNIIxmrZaZdWxvf8PrSHEJeDHlT0QBRJZ+1hUE2bPMR46GHxZIYD6P
 ZBmtmb4jDQ+ShdHy4IuyzlIzx4tWbpaKQ25pcczkbuqdyfzf1m933A/DLZfMdT3u
 xampos7/nbuWB2ho2R1mzqHOTDHzWtzODw/atGX2Df2aCwK+eEbpZOCJmy/OZsWr
 o0qpW5kAg56FvaK8NDkonEiNR/ysy0kb5HTpbOALO2Uiq8X5WaIZ2p2zFtiGb/+e
 qrU21koqnsBZivUDKOXgkz8US62icL27jwMNzuoOf59nrbk0cTE=
 =xitu
 -----END PGP SIGNATURE-----

Merge tag 'nuvoton-arm-6.18-devicetree-0' of https://git.kernel.org/pub/scm/linux/kernel/git/bmc/linux into soc/dt

Early Nuvoton ARM devicetree updates for 6.18

So far we have just the one fix from Krzysztof that switches some nodes to use
generic names, as recommended by the spec.

* tag 'nuvoton-arm-6.18-devicetree-0' of https://git.kernel.org/pub/scm/linux/kernel/git/bmc/linux:
  ARM: dts: nuvoton: Use generic "ethernet" as node name

Link: https://lore.kernel.org/r/5e7e5d2cedb3bb232420ad720c857b95d8c02f21.camel@codeconstruct.com.au
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-09-01 11:53:41 +02:00
Arnd Bergmann
de0486b39e Early ASPEED devicetree updates for 6.18
Notable changes:
 
 - Meta's Wedge400 and Fuji boards have had parallel devicetrees added for a
   transition to a new static flash layout. The original layout is deprecated and
   I anticipate removing related devicetrees in future releases.
 
 New platforms:
 
 - Darwin (Meta)
 
   Darwin is Meta's rack switch platform with an AST2600 BMC integrated for
   health monitoring purpose.
 
 Updates and fixes:
 
 - GB200NVL (Nvidia): Networking, I2C, regulators, GPIOs
 - Wedge400, Fuji (Meta): Fix warnings from devicetree bindings
 - Use fixed-layout for NVMEM on Asrock platforms
 - Various: minor fixes for warnings from FSI devicetree bindings
 -----BEGIN PGP SIGNATURE-----
 
 iJIEABYIADoWIQSoUT1x3bOSX/nAa8ajM9GZTrjhpgUCaKu5BRwcYW5kcmV3QGNv
 ZGVjb25zdHJ1Y3QuY29tLmF1AAoJEKMz0ZlOuOGmFJwBALWNxxcJBLFMPaJW0bJq
 kPoqByiQOR3r1TujWQZ2aUWRAP0cam51AXTTDuSg6qvtAAOcT0i1o/bfT4OU15me
 k34+Bw==
 =mqVf
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmi1bMYACgkQmmx57+YA
 GNnGnRAAto2h0rI8Ra4zqmCZ1hH9VMXBUCeufq6IWt1K2R7ApHHboZMvZFSb9o6J
 Afz9I4S0iH+hHe5dvbDy3qqpSGLbz8dUdo8ZuGEQ0K/7KTUkrd/IJoVgsNd7+I02
 1rkYySVsE/11vjmmt2BaYL89zachh5aWAihk159sGJmZy/8bNc2B8oIsGj2CQ/vJ
 Ex6iafvIEpSLcbYISa/6vjlmxXrQrJLH1W5Kj4rRHvi+pgZF8vajtKJXuaC/+JY0
 KdFQurnfhBOpeWbLp3xz2OPHVjuwLyA2jS3aQZ6gxdqsixEu6ARPFQhhQZ7zlYYn
 a+K68Tgu2gVeis2lTPCBiBoq1xNT8t1ZO8E2KLRcgfTRsROpM02zHFi/u7348rSe
 JOEgV7sJZmmI/pGUdrfL4y5BzAcUDyxDZm15/PJzc+AELre3GdZOQBp2n65TQicH
 Wa5PUQBUPNE7Yr306JwIIhttALChy4DhF+u1kcDiwWAyrM4xPTIBW7Pj19w3budC
 2RXHrfqLipbMcwQywJ5KowGQPxvCz7HIr2wgL2jyH+1it+0bhy2uPJBbiaDcahWC
 zOXUnskrGev+zlAvo8p33vZN/28Jdj0KqS3q85h7sAYoNyUyoqIMp89OfuLbnP4C
 GhKwRI6en5Tc1tQObNPNR6cBdl7NCPVmrdlsbnA2Cfo90aIOLAE=
 =A4kl
 -----END PGP SIGNATURE-----

Merge tag 'aspeed-6.18-devicetree-0' of https://git.kernel.org/pub/scm/linux/kernel/git/bmc/linux into soc/dt

Early ASPEED devicetree updates for 6.18

Notable changes:

- Meta's Wedge400 and Fuji boards have had parallel devicetrees added for a
  transition to a new static flash layout. The original layout is deprecated and
  I anticipate removing related devicetrees in future releases.

New platforms:

- Darwin (Meta)

  Darwin is Meta's rack switch platform with an AST2600 BMC integrated for
  health monitoring purpose.

Updates and fixes:

- GB200NVL (Nvidia): Networking, I2C, regulators, GPIOs
- Wedge400, Fuji (Meta): Fix warnings from devicetree bindings
- Use fixed-layout for NVMEM on Asrock platforms
- Various: minor fixes for warnings from FSI devicetree bindings

* tag 'aspeed-6.18-devicetree-0' of https://git.kernel.org/pub/scm/linux/kernel/git/bmc/linux: (24 commits)
  ARM: dts: aspeed: x570d4u: convert NVMEM content to layout syntax
  ARM: dts: aspeed: romed8hm3: convert NVMEM content to layout syntax
  ARM: dts: aspeed: e3c256d4i: convert NVMEM content to layout syntax
  ARM: dts: aspeed: e3c246d4i: convert NVMEM content to layout syntax
  ARM: dts: aspeed: Add missing "ibm,spi-fsi" compatibles
  ARM: dts: aspeed: Drop "fsi-master" compatibles
  ARM: dts: aspeed: Drop "no-gpio-delays"
  ARM: dts: aspeed: Add Facebook Darwin (AST2600) BMC
  dt-bindings: arm: aspeed: add Facebook Darwin board
  ARM: dts: aspeed: facebook-fuji: Include facebook-fuji-data64.dts
  ARM: dts: aspeed: Add Facebook Fuji-data64 (AST2600) Board
  dt-bindings: arm: aspeed: add Facebook Fuji-data64 board
  ARM: dts: aspeed: wedge400: Include wedge400-data64.dts
  ARM: dts: aspeed: Add Facebook Wedge400-data64 (AST2500) BMC
  dt-bindings: arm: aspeed: add Facebook Wedge400-data64 board
  ARM: dts: aspeed: Add facebook-bmc-flash-layout-128-data64.dtsi
  ARM: dts: aspeed: Move eMMC out of ast2600-facebook-netbmc-common.dtsi
  ARM: dts: aspeed: Fix DTB warnings in ast2600-facebook-netbmc-common.dtsi
  ARM: dts: aspeed: fuji: Fix DTB warnings
  ARM: dts: aspeed: wedge400: Fix DTB warnings
  ...

Link: https://lore.kernel.org/r/cb634cffaf0db9d25fb3062f0eee41e03955321f.camel@codeconstruct.com.au
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-09-01 11:52:06 +02:00
Arnd Bergmann
c861d0b4fe Apple SoC device tree changes for v6.18, part 1
- Added SMC nodes for M1 and M2 including the PMU GPIO controller and
   reboot sub-nodes. This now allows to reboot these systems and is
   required to later enable the power GPIO line for the WiFi board.
 - Added i2c nodes for A7 - A11 SoCs
 
 Signed-off-by: Sven Peter <sven@kernel.org>
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQS3vz815OHsEaWy0u9EEX0kKnUe6QUCaKC7WAAKCRBEEX0kKnUe
 6XTnAQCBSrZBW++uglkj0KTao6FRboBkLIWhjzWcn2+4UukhEgEAm7WuBtkLk8tY
 CFzV2NYQK/GpJOUiO3EBRAc20h3c5AQ=
 =jlVZ
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmi1bIsACgkQmmx57+YA
 GNlGiw/+KGCfZXaW2fW04PKG3UjqQJaNQ9v7I4xB9xsoRnWOWiRNCXRkJbqRcYcw
 ouVKQzrvnzlRr9aNNIgHRGGhhBZ7oB3w/M26dbmaTLkmOdNYWEc32Spe/kIK2pDg
 sNDW3ywYRQ3eioRkjWy4NwYsvSjA7yGpuc0q1x9vsB7jfUsEryGwv1ljFznzXWaG
 U8WS4c2JqQVuzdbSlP0m0c/aagsJBltcKy2OPTy/9dUVkNaTGyCO+ninj6qGh9/e
 5pvwCxpGA3x1OwY51AkM+NoPghyUQw/mL31W3BU7+3vUCpPBuiUwp5iPe5OXdBkI
 fDNquczlxhCda2T2YrQXe9p/+yhbHstZafHtJQOlF5XqZf7HHwg11Opp59qINUkx
 TYxdJVey2O7MaQ7IjMBSM5+7FfVe6eTRkW9O+rVvYqWwyzSUFEbMjGWk6D7y40L3
 QzJemNxBhiX/5aQoFJNKvQyA/KcLvf2XXFas4327CRSIiuwvyGvwpuQ+C1W5XSce
 KG7WrdH+VWQdTPfS+uDRz5mCcsWc+YFOyn6tkASNrgv++JtqQnLI62a1R8HKfSN1
 GZMx8XDC8F3ZvBaZBJ5i7agro51e1DsUJDMBg3omsdbp6q3G9sgU9MxAk4xNhjDP
 zAo1c4RiOdqPcZNBFF9U/A8E+kE7bd1TsMeO0m25gO/dUAlKnA4=
 =KcZo
 -----END PGP SIGNATURE-----

Merge tag 'apple-soc-dt-6.18' of https://git.kernel.org/pub/scm/linux/kernel/git/sven/linux into soc/dt

Apple SoC device tree changes for v6.18, part 1

- Added SMC nodes for M1 and M2 including the PMU GPIO controller and
  reboot sub-nodes. This now allows to reboot these systems and is
  required to later enable the power GPIO line for the WiFi board.
- Added i2c nodes for A7 - A11 SoCs

Signed-off-by: Sven Peter <sven@kernel.org>

* tag 'apple-soc-dt-6.18' of https://git.kernel.org/pub/scm/linux/kernel/git/sven/linux:
  arm64: dts: apple: t600x: Add SMC node
  arm64: dts: apple: t8112: Add SMC node
  arm64: dts: apple: t8103: Add SMC node
  arm64: dts: apple: t8015: Add I2C nodes
  arm64: dts: apple: t8011: Add I2C nodes
  arm64: dts: apple: t8010: Add I2C nodes
  arm64: dts: apple: s8001: Add I2C nodes
  arm64: dts: apple: s800-0-3: Add I2C nodes
  arm64: dts: apple: t7001: Add I2C nodes
  arm64: dts: apple: t7000: Add I2C nodes
  arm64: dts: apple: s5l8960x: Add I2C nodes

Link: https://lore.kernel.org/r/20250816171501.31944-1-sven@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-09-01 11:51:07 +02:00
Krzysztof Kozlowski
d407ad36dd
Documentation/process: maintainer-soc: Use "DTS" instead of "devicetree"
Devicetree is a data structure and it is a bit generic term, because
some treat Devicetree bindings as Devicetree.  What the SoC maintainers
profile is mentioning in ABI stability are the Devicetree sources, so
DTS files.  It is also more common during reviews to refer to these as
per "DTS" instead "devicetree".

Clarify that by using "DTS" name in few more places.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/r/20250812104154.42289-2-krzysztof.kozlowski@linaro.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-09-01 11:50:47 +02:00
Harshit Shah
75e81743e3
arm64: dts: axiado: Add missing UART aliases
Axiado AX3000 EVK has total of 4 UART ports. Add missing alias for uart0,
uart1, uart2.

This fixes the probe failures on the remaining UARTs.

Fixes: 1f70557790 ("arm64: dts: axiado: Add initial support for AX3000 SoC and eval board")
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Harshit Shah <hshah@axiado.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-09-01 11:33:13 +02:00
Javier Martinez Canillas
1c936e8592
drm/sitronix/st7571-i2c: Make st7571_panel_data variables static const
The kernel test robot reported that sparse gives the following warnings:

make C=2 M=drivers/gpu/drm/sitronix/
  CC [M]  st7571-i2c.o
  CHECK   st7571-i2c.c
st7571-i2c.c:1027:26: warning: symbol 'st7567_config' was not declared. Should it be static?
st7571-i2c.c:1039:26: warning: symbol 'st7571_config' was not declared. Should it be static?
  MODPOST Module.symvers
  LD [M]  st7571-i2c.ko

Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202507180503.nfyD9uRv-lkp@intel.com
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20250718152534.729770-1-javierm@redhat.com
Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
2025-09-01 11:27:31 +02:00
yangshiguang
850470a841 mm: slub: avoid wake up kswapd in set_track_prepare
set_track_prepare() can incur lock recursion.
The issue is that it is called from hrtimer_start_range_ns
holding the per_cpu(hrtimer_bases)[n].lock, but when enabled
CONFIG_DEBUG_OBJECTS_TIMERS, may wake up kswapd in set_track_prepare,
and try to hold the per_cpu(hrtimer_bases)[n].lock.

Avoid deadlock caused by implicitly waking up kswapd by passing in
allocation flags, which do not contain __GFP_KSWAPD_RECLAIM in the
debug_objects_fill_pool() case. Inside stack depot they are processed by
gfp_nested_mask().
Since ___slab_alloc() has preemption disabled, we mask out
__GFP_DIRECT_RECLAIM from the flags there.

The oops looks something like:

BUG: spinlock recursion on CPU#3, swapper/3/0
 lock: 0xffffff8a4bf29c80, .magic: dead4ead, .owner: swapper/3/0, .owner_cpu: 3
Hardware name: Qualcomm Technologies, Inc. Popsicle based on SM8850 (DT)
Call trace:
spin_bug+0x0
_raw_spin_lock_irqsave+0x80
hrtimer_try_to_cancel+0x94
task_contending+0x10c
enqueue_dl_entity+0x2a4
dl_server_start+0x74
enqueue_task_fair+0x568
enqueue_task+0xac
do_activate_task+0x14c
ttwu_do_activate+0xcc
try_to_wake_up+0x6c8
default_wake_function+0x20
autoremove_wake_function+0x1c
__wake_up+0xac
wakeup_kswapd+0x19c
wake_all_kswapds+0x78
__alloc_pages_slowpath+0x1ac
__alloc_pages_noprof+0x298
stack_depot_save_flags+0x6b0
stack_depot_save+0x14
set_track_prepare+0x5c
___slab_alloc+0xccc
__kmalloc_cache_noprof+0x470
__set_page_owner+0x2bc
post_alloc_hook[jt]+0x1b8
prep_new_page+0x28
get_page_from_freelist+0x1edc
__alloc_pages_noprof+0x13c
alloc_slab_page+0x244
allocate_slab+0x7c
___slab_alloc+0x8e8
kmem_cache_alloc_noprof+0x450
debug_objects_fill_pool+0x22c
debug_object_activate+0x40
enqueue_hrtimer[jt]+0xdc
hrtimer_start_range_ns+0x5f8
...

Signed-off-by: yangshiguang <yangshiguang@xiaomi.com>
Fixes: 5cf909c553 ("mm/slub: use stackdepot to save stack trace in objects")
Cc: stable@vger.kernel.org
Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
2025-09-01 11:09:39 +02:00
Danilo Krummrich
5c5a41a754 gpu: nova-core: depend on CONFIG_64BIT
If built on architectures with CONFIG_ARCH_DMA_ADDR_T_64BIT=y nova-core
produces that following build failures:

    error[E0308]: mismatched types
      --> drivers/gpu/nova-core/fb.rs:49:59
       |
    49 |         hal::fb_hal(chipset).write_sysmem_flush_page(bar, page.dma_handle())?;
       |                              -----------------------      ^^^^^^^^^^^^^^^^^ expected `u64`, found `u32`
       |                              |
       |                              arguments to this method are incorrect
       |
    note: method defined here
      --> drivers/gpu/nova-core/fb/hal.rs:19:8
       |
    19 |     fn write_sysmem_flush_page(&self, bar: &Bar0, addr: u64) -> Result;
       |        ^^^^^^^^^^^^^^^^^^^^^^^
    help: you can convert a `u32` to a `u64`
       |
    49 |         hal::fb_hal(chipset).write_sysmem_flush_page(bar, page.dma_handle().into())?;
       |                                                                            +++++++

    error[E0308]: mismatched types
      --> drivers/gpu/nova-core/fb.rs:65:47
       |
    65 |         if hal.read_sysmem_flush_page(bar) == self.page.dma_handle() {
       |            -------------------------------    ^^^^^^^^^^^^^^^^^^^^^^ expected `u64`, found `u32`
       |            |
       |            expected because this is `u64`
       |
    help: you can convert a `u32` to a `u64`
       |
    65 |         if hal.read_sysmem_flush_page(bar) == self.page.dma_handle().into() {
       |                                                                     +++++++

    error: this arithmetic operation will overflow
       --> drivers/gpu/nova-core/falcon.rs:469:23
        |
    469 |             .set_base((dma_start >> 40) as u16)
        |                       ^^^^^^^^^^^^^^^^^ attempt to shift right by `40_i32`, which would overflow
        |
        = note: `#[deny(arithmetic_overflow)]` on by default

This is due to the code making assumptions on the width of dma_addr_t to
be 64 bit.

While this could technically be handled, it is rather painful to deal
with, as the following example illustrates:

	pub(super) fn read_sysmem_flush_page_ga100(bar: &Bar0) -> DmaAddress {
	    let addr = u64::from(regs::NV_PFB_NISO_FLUSH_SYSMEM_ADDR::read(bar).adr_39_08())
	        << FLUSH_SYSMEM_ADDR_SHIFT
	        | u64::from(regs::NV_PFB_NISO_FLUSH_SYSMEM_ADDR_HI::read(bar).adr_63_40())
	            << FLUSH_SYSMEM_ADDR_SHIFT_HI;

	    addr.try_into().unwrap_or_else(|_| {
	        kernel::warn_on!(true);

	        0
	    })
	}

At the same time there's not much value for nova-core to support 32-bit,
given that the supported GPU architectures are Turing and later, hence
depend on CONFIG_64BIT.

Cc: John Hubbard <jhubbard@nvidia.com>
Reported-by: Miguel Ojeda <ojeda@kernel.org>
Closes: https://lore.kernel.org/lkml/20250828160247.37492-1-ojeda@kernel.org/
Fixes: 6554ad65b5 ("gpu: nova-core: register sysmem flush page")
Fixes: 69f5cd67ce ("gpu: nova-core: add falcon register definitions and base code")
Reviewed-by: Alexandre Courbot <acourbot@nvidia.com>
Reviewed-by: John Hubbard <jhubbard@nvidia.com>
Link: https://lore.kernel.org/r/20250828223954.351348-1-dakr@kernel.org
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
2025-09-01 11:06:37 +02:00
Antheas Kapenekakis
3712ce9fa5 gpiolib: acpi: Ignore touchpad wakeup on GPD G1619-05
Same issue as G1619-04 in commit 805c74eac8 ("gpiolib: acpi: Ignore
touchpad wakeup on GPD G1619-04"), Strix Point lineup uses 05.

Signed-off-by: Antheas Kapenekakis <lkml@antheas.dev>
Reviewed-by: Mika Westerberg <westeri@kernel.org>
Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
2025-09-01 11:03:51 +02:00
Arnd Bergmann
e019bbd8e4 i.MX fixes for 6.17:
- Correct FlexCAN PHY settings on imx95-19x19-evk board (Haibo Chen)
 - Add missing microSD slot supplies for DH electronics i.MX8M Plus
   boards (Marek Vasut)
 - Fix assigned clocks for JPEG encoder node on i.MX95 (Marek Vasut)
 - A couple of regulator setting fixes for imx8mp-tqma8mpql
   board (Markus Niebel)
 -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCgAdFiEEFmJXigPl4LoGSz08UFdYWoewfM4FAmiugL4ACgkQUFdYWoew
 fM5mSggApqbbYj3cOJOoTecKcI1RottMC2sZFV71cHV71u11JLFWFymNSDX89msL
 SPjeCo+wBf/FCvIOH5eArA64X4+liLPjCiPd9OsJoG7sjzYn/boMmDrrXBkOUCR+
 dviNDUAKJmT3egTsoP0DRp839BcxjsR/NPzuTPtj1Jau4DdFFfMzwFwwLULDOX0k
 9k1XcVhpOBiIijCTou2UIZ18iy/btamyqeoVn0SQvPHKLvjcFeefYlo/po1kMgU9
 rXXUEbnrR8AqsDq1D+EJch8z8jUPEBLfhKnsnAJCzoIwIUnNMxnHODGEc4Jhkp8K
 PJITdlp3tHebvJQ+kr7tHGed1j/svw==
 =hB3X
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmi1XDEACgkQmmx57+YA
 GNkCIRAAmXJNkEri2LmmrwONSgBbq0inr3jt824Odl2YnPiwmgHEvjKsgVVKH2wp
 KMSk8zOab7o1R8cyDWCRfWj8ALMapeXqROy7wvBePAg9BEgw35EQ5LI80jwAE0QS
 GjPT3F2teHOz0sLoIEJW6wbGj1mFv7hGuhwbkIWBvNYf8SnXpPgwFBrmMTZfhUy6
 oaLRSXyGlvpGI7AYE1N73mR3ueGpAACtfZikscTiP3aaQkIwhyhzHMTfdOfd5wPc
 ZZP4+kZkXEAGpCV2qNiMk91e2GSD37HtNy3so6xLKY+S47xd8+G9XF36aaOodpLv
 SeKVlpgVLVV0qxbeb8RedSZl1r9iFjxhDiJjouGOLZDXPO1YqlzaqCV54p3HcWCa
 RHDSUPivG3dPWBKiVngc2k0+G585fZx7ZjiDNpQoMOiSejUTnd8e3XRU2BmXldpU
 xMSFbpwnE7HcDSnduyqEjGlnLPZquAFqb2hr8icwrDIf/+Nc9RSIHDVOMiM1bzvt
 Doma4lOBBGCfVV8VP6T6WElw4gWgDlsqZ19shpME+4AfBQ6pBveV6WP21KmWHIAf
 7rGIAYNLaKAOAycOlZizC74R4XhrCG7DACtqDkB+GhnJgxED8puAb+HWdGqhKi41
 U34tKZV9C5fVdr36IqnxTDiFYY3eVa8KtamsNpVL3zadlrWcBJE=
 =nWfB
 -----END PGP SIGNATURE-----

Merge tag 'imx-fixes-6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into arm/fixes

i.MX fixes for 6.17:

- Correct FlexCAN PHY settings on imx95-19x19-evk board (Haibo Chen)
- Add missing microSD slot supplies for DH electronics i.MX8M Plus
  boards (Marek Vasut)
- Fix assigned clocks for JPEG encoder node on i.MX95 (Marek Vasut)
- A couple of regulator setting fixes for imx8mp-tqma8mpql
  board (Markus Niebel)

* tag 'imx-fixes-6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
  arm64: dts: imx95: Fix JPEG encoder node assigned clock
  arm64: dts: imx95-19x19-evk: correct the phy setting for flexcan1/2
  arm64: dts: imx8mp: Fix missing microSD slot vqmmc on Data Modul i.MX8M Plus eDM SBC
  arm64: dts: imx8mp: Fix missing microSD slot vqmmc on DH electronics i.MX8M Plus DHCOM
  arm64: dts: imx8mp-tqma8mpql: remove virtual 3.3V regulator
  arm64: dts: imx8mp-tqma8mpql: fix LDO5 power off

Link: https://lore.kernel.org/r/aK6BuzIYwUBRU1GW@dragon
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-09-01 10:41:20 +02:00
Nobuhiro Iwamatsu
0aee6faf5b MAINTAINERS: Update Nobuhiro Iwamatsu's email address
The company's email address has been changed, so update my email
address in MAINTAINERS and .mailmap files.

Signed-off-by: Nobuhiro Iwamatsu <nobuhiro.iwamatsu.x90@mail.toshiba>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-09-01 10:36:10 +02:00
Arnd Bergmann
2050458610 OP-TEE driver fix for v6.17
Fixing a typo in a function name.
 -----BEGIN PGP SIGNATURE-----
 
 iQJOBAABCgA4FiEE0qerISgy2SKkqO79Wr/6JGat8H4FAmikTOQaHGplbnMud2lr
 bGFuZGVyQGxpbmFyby5vcmcACgkQWr/6JGat8H7DYBAAxaF20ZnzuhpWgp3sDpfB
 KC9IvYCzERhP5gPouVCatPB1jBgOcPqSYyCVft1Y6ZmB8EHxZ0eEwkgb8UJg3o00
 KtYw8kEatOavjTvm9YRjFRTNuGdBvfKpBpfipP1g95uo2n2wDL7c8akQP8YJZQwQ
 oVHtILhNFBg9xPDLB/wme94I42EQdtJHopd+3MYLyraMkjcIJd+8EnBka8Fe+v9U
 d/Y7aJIJcR3+CuyAOLcmlcg+f0hXguJtGB62jhBsNPQIZR1eKuIL3/M3/WZs7lz9
 sPLgZD9QMAixomXerJAX3MOSbvrAzwUHoHPAevCxdxj5U2B1y7JHJ/9t+09XEx6s
 qRvRSR9cUf6IFply06U8/xElpJP+e+FYyD8D8OCkTJdineV8ifOmdO4ctzA0ANti
 9ADstF1coSpRY0Xp5Mo8KBSuW9fNTKditozPXCykQ7T3nMr3ztkWebbyFbcn+omz
 Ok1S+1s5l1vgk2SqJgezsi40peZuFC08wlaKUbGN50f7aWLtMJWIglTGGaA7Vc/2
 mfT7qVwHlc3DXVH7LQmiYqoSg8lE1sH7ORBZf3p5kGNJSD3Cxj6kecsSggK0hzM8
 VioJW/6IG/rQLZtk/PSkG02odrwN7FMFT/uZ7MD7JRDqwxr4twvycrXp07Tct0TA
 FwKm+No0Xr3xhrxqcFKGtpg=
 =dTsR
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmi1WrgACgkQmmx57+YA
 GNmmsg//Wm6kKXMe9tUSDmM3cGmFg4ySBLy1nWCKGWnjxx/gFJ4LBeks47nyRXDv
 5l11uv0vJNtIQH9X5JGBg8AB2PH9hVO60i21dDWkxlJEKp2RAuPVZvFl51Wi39kP
 jcD09SPh+40KWshM2BhK8ntnWnfTZKXBJw0eTMi6CJUKWjbKm01TiqsNKrOJL9gz
 TQcutpKJTfRusTwJwrsNmEMldJQeiWAejtvQMoS0y1aI1AFCL4HLvMU0n3JS03re
 gBOqHdmhkADnrI05ItQ4hwsgO244xA+X/QPwyPRT/N8WOtb+ZR39jnW2HWGVi9w3
 M3LSMLWCtkL82l1s4NjPigBCvOXM3ARDyAqVmhHnq+Zh/EEFR2BBDOSbYKjvJlWJ
 E/4buogg/MSF+bZU8l+n2LvxhGr//SGsg33gQeFxBk62qv5wdL0DA/9FS4vEMfW9
 RQRZUnzIftlDcOc60Z+FcOXIb+FT9mO0k74BQA6Hwv2HTYvFAY4qnrg0CW+tigyl
 YN6pZSpdgVX2H6DqK0DAmqJ0RLgtqFOJ+fobmIfPXhlkKKFRbFX2c61KFuUO9Mx8
 3PNMFMXazqhoD0juFBz0Weprwaz9bwbZm8aEfO/6DdO1zDKu0XXH40Wtec825xzE
 qyLT72eBlYFnuJfXJjv22eaH8hdHK8MmcDYxKEtredVaLTjhpiA=
 =oap8
 -----END PGP SIGNATURE-----

Merge tag 'optee-typo-fix-for-v6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/jenswi/linux-tee into arm/fixes

OP-TEE driver fix for v6.17

Fixing a typo in a function name.

* tag 'optee-typo-fix-for-v6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/jenswi/linux-tee:
  tee: optee: ffa: fix a typo of "optee_ffa_api_is_compatible"

Link: https://lore.kernel.org/r/20250819122917.GB3486750@rayden
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-09-01 10:35:03 +02:00
Arnd Bergmann
84bc3c0b58 TEE fixes for v6.17
- Fixing a memory leak in the error path for tee_dyn_shm_alloc_helper()
 - Fixing a NULL pointer dereference in tee_shm_put()
 -----BEGIN PGP SIGNATURE-----
 
 iQJOBAABCgA4FiEE0qerISgy2SKkqO79Wr/6JGat8H4FAmikTdgaHGplbnMud2lr
 bGFuZGVyQGxpbmFyby5vcmcACgkQWr/6JGat8H57khAA4GAWaj/g2Y7rI8JVoKfG
 mtCUOmB4cDechzI/QQwkSLdCgBRo4q3pwpgnSCgYSoPRna8TsFTUdj02QzIWbT3z
 f15hCSOaX5WsgNp9mZc3FiAMwOXlpAXKUREa72MrC8WvTLEmVqpI0JyybDlahjrk
 w2H1X/V94PH+YQnyoSntLOApA+r54RJwtmuOs6PacCapftHROpon4ezyRSbE/FCM
 MkuTQ8CliazFMDr1e7W168iT4RgQo8ST+Umr9DUwC0xfIbIAcMyVScYKFzmKYWke
 iS7p/mB0gsikTydmPgy6Smw3ynCN7bsiZlk/gZkv0zczkG6u3szWwXmhzsuCy/qk
 IyZPANAnlr3lh6bbPHwDBrJsnxshDvMB9ls4NG2vV7iKIv47bDqJEJ9Gp7iDYKGg
 IngHuc0qajmZlaaC5tV6eDy7fxOoUidbGtdRhCmniJl9Rz/IYvxvXmQtYo4t+IKw
 1UE3RAcjHJNqzOhJtjbfK/tDM143dNgSwttbXMuesr3Se647s8VWdrvHwmznpfG+
 yq5CP4oWv5u/sDg38wvPHscyBRkjKVmhnFWsIIFjMBwjwmXCIrgbSAPzCkB7jufx
 D3iy1r4xS4m1hTRBlY96tR0FXvPki4WR3kjogJeonbkpjBDHHTTcQXYUn4teLYmI
 9zQkFWw2GdGTkKP2LCTq9EA=
 =AfU2
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmi1Wp4ACgkQmmx57+YA
 GNmXKg/9H+UYN6h8UBmm1guxYFN695gnwXtmvBN10Y2U4OkwjMX6HgfNKrwXRnw5
 nok/jLGihcRfqm+fMTJUS9PrOj+6cVKtww63DHpd+RX1LjNbbvKr8ErhM7JifNGd
 5hS5MQ48xlmAdloJCTxbV0OjmABD9Ka8CUvdfPuJRaGTqj1kauBHbUWLijmDloLl
 wf1lpkof0zn1Cxgn+A1VQwz+KlIXtCPcFpefZDmi81daOpj53kterI7MdJiTP0rn
 aELO99+QNeiGqFqN3LXSml2qQAzdsrJ/WdIG6IIZlABxo7Vk91nCwLhi3cPwGKQn
 ib0wPdyI4gNK02FgCRuRda0VNlgoBiGTPUYoR/JOHgHGCBatv1H60b1hoPpNSMvx
 aZo/FkqgPWBz3A/p4ASbGaIhIMrR/NFLgkKjQlyp3M2UwlANCZQ59q45kD4hWsz5
 q80IRvGj+mdV2LyZrmY2i9FJyzXMkPM+1allItnCR3ZhkXQuf3r90ltUUh/nMneC
 KIqBDPe+nyY5i9lHh/w/u64iwEhSqtgvIYgwm5BtoeCssNVXoUNbHJ6JZu+BYr0H
 RcTgAHYKIL+aQzRjwfI3GL3M60DvfsrXyGxMdH1XDCa7AAbkRRrJHIoPzmh++h+g
 Tt7+2KIIBC/OJy/a+/A6J1YgTO/LzC94JOivu+9zN0KzCzpmgC4=
 =Lyrr
 -----END PGP SIGNATURE-----

Merge tag 'tee-fixes-for-v6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/jenswi/linux-tee into arm/fixes

TEE fixes for v6.17

- Fixing a memory leak in the error path for tee_dyn_shm_alloc_helper()
- Fixing a NULL pointer dereference in tee_shm_put()

* tag 'tee-fixes-for-v6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/jenswi/linux-tee:
  tee: fix memory leak in tee_dyn_shm_alloc_helper
  tee: fix NULL pointer dereference in tee_shm_put

Link: https://lore.kernel.org/r/20250819122641.GA3486750@rayden
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-09-01 10:34:38 +02:00
Prathamesh Shete
db12ee0872 gpio: tegra186: Add support for Tegra256
Extend the existing Tegra186 GPIO controller driver with support for the
GPIO controller found on Tegra256. While the programming model remains
the same, the number of pins has slightly changed.

Signed-off-by: Prathamesh Shete <pshete@nvidia.com>
Link: https://lore.kernel.org/r/20250823055420.24664-2-pshete@nvidia.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
2025-09-01 10:20:42 +02:00
Prathamesh Shete
eef6dcbc52 dt-bindings: gpio: Add Tegra256 support
Extend the existing Tegra186 GPIO controller device tree bindings with
support for the GPIO controller found on Tegra256. The number of pins is
slightly different, but the programming model remains the same

Add a new header, include/dt-bindings/gpio/tegra256-gpio.h,
that defines port IDs as well as the TEGRA256_MAIN_GPIO() helper,
both of which are used in conjunction to create a unique specifier
for each pin. The OS can reconstruct the port ID and pin from
these values to determine the register region for the corresponding
GPIO. However, the OS does not use the macro definitions in this file.

The symbolic names help associate these GPIO specifiers with the names
used in the technical documentation available for the chip.

Signed-off-by: Prathamesh Shete <pshete@nvidia.com>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
Link: https://lore.kernel.org/r/20250823055420.24664-1-pshete@nvidia.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
2025-09-01 10:20:42 +02:00
Miaoqian Lin
5d5f08fd0c xtensa: simdisk: add input size check in proc_write_simdisk
A malicious user could pass an arbitrarily bad value
to memdup_user_nul(), potentially causing kernel crash.

This follows the same pattern as commit ee76746387
("netdevsim: prevent bad user input in nsim_dev_health_break_write()")

Fixes: b6c7e873da ("xtensa: ISS: add host file-based simulated disk")
Fixes: 16e5c1fc36 ("convert a bunch of open-coded instances of memdup_user_nul()")
Cc: stable@vger.kernel.org
Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
Message-Id: <20250829083015.1992751-1-linmq006@gmail.com>
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
2025-09-01 01:14:45 -07:00
Kienan Stewart
46104a7d3c kbuild: Add missing $(objtree) prefix to powerpc crtsavres.o artifact
In the upstream commit 214c0eea43
("kbuild: add $(objtree)/ prefix to some in-kernel build artifacts")
artifacts required for building out-of-tree kernel modules had
$(objtree) prepended to them to prepare for building in other
directories.

When building external modules for powerpc,
arch/powerpc/lib/crtsavres.o is required for certain
configurations. This artifact is missing the prepended $(objtree).

Fixes: 13b25489b6 ("kbuild: change working directory to external module directory with M=")
Acked-by: Masahiro Yamada <masahiroy@kernel.org>
Reviewed-by: Nicolas Schier <n.schier@avm.de>
Tested-by: Nicolas Schier <n.schier@avm.de>
Signed-off-by: Kienan Stewart <kstewart@efficios.com>
Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com>
Link: https://patch.msgid.link/20250218-buildfix-extmod-powerpc-v2-1-1e78fcf12b56@efficios.com
2025-09-01 13:41:57 +05:30
Ruben Wauters
3d9c9e1da9 powerpc/xmon: replace sizeof calculations with ARRAY_SIZE macro
The calculations for operand/opcode/macro numbers are done in an
identical manner to the already existing ARRAY_SIZE macro in
linux/array_size.h

This patch replaces the sizeof calculations with the macro to make the
code cleaner and more immediately obvious what it is doing.

Signed-off-by: Ruben Wauters <rubenru09@aol.com>
Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com>
Link: https://patch.msgid.link/20250719225225.2132-2-rubenru09@aol.com
2025-09-01 13:40:46 +05:30
Nam Cao
a39087905a powerpc/powernv/pci: Fix underflow and leak issue
pnv_irq_domain_alloc() allocates interrupts at parent's interrupt
domain. If it fails in the progress, all allocated interrupts are
freed.

The number of successfully allocated interrupts so far is stored
"i". However, "i - 1" interrupts are freed. This is broken:

    - One interrupt is not be freed

    - If "i" is zero, "i - 1" wraps around

Correct the number of freed interrupts to "i".

Fixes: 0fcfe2247e ("powerpc/powernv/pci: Add MSI domains")
Signed-off-by: Nam Cao <namcao@linutronix.de>
Cc: stable@vger.kernel.org
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com>
Link: https://patch.msgid.link/70f8debe8688e0b467367db769b71c20146a836d.1754300646.git.namcao@linutronix.de
2025-09-01 13:39:40 +05:30
Nam Cao
3443ff3be6 powerpc/pseries/msi: Fix potential underflow and leak issue
pseries_irq_domain_alloc() allocates interrupts at parent's interrupt
domain. If it fails in the progress, all allocated interrupts are
freed.

The number of successfully allocated interrupts so far is stored
"i". However, "i - 1" interrupts are freed. This is broken:

  - One interrupt is not be freed

  - If "i" is zero, "i - 1" wraps around

Correct the number of freed interrupts to 'i'.

Fixes: a5f3d2c17b ("powerpc/pseries/pci: Add MSI domains")
Signed-off-by: Nam Cao <namcao@linutronix.de>
Cc: stable@vger.kernel.org
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com>
Link: https://patch.msgid.link/a980067f2b256bf716b4cd713bc1095966eed8cd.1754300646.git.namcao@linutronix.de
2025-09-01 13:39:39 +05:30
Arnd Bergmann
e6e709901c Qualcomm driver fixes for v6.17-rc1
The recently extended sanity checks for the Qualcomm firmware files
 turned out to be too restrictive, preventing a variety of firmware
 images from being loaded. Adjust the checks to allow section header
 sizes of 0 when sections aren't used.
 -----BEGIN PGP SIGNATURE-----
 
 iQJJBAABCAAzFiEEBd4DzF816k8JZtUlCx85Pw2ZrcUFAmiaBEIVHGFuZGVyc3Nv
 bkBrZXJuZWwub3JnAAoJEAsfOT8Nma3FEzMQAL1fo13UqDYeVOUGZzw0M3nMMYgT
 DRW/GjtklIKHLvwwmTBEhgM3lPoNmpUVqV3hC/mMxQRkGaG+RmiUbD9+IgKqIgyp
 5o6LXmRIvuhIPY+7GA4iXf+VgPTpps1AzdkvXBQgBbJZ6RTzGrB1WGrAf746hprA
 A8RQVfQFM7DHiLNt5dbqrbqdu2/vn9Q5SU3F1MFq22EA9VU6UYHFBZ03Ar+lkpVT
 CHoUhUdV139xvjXNph+pRkS6ykJyCo9RONXG19ssC+LUkg4YevCJV20q/qFWBOrq
 rUpqhQUKWtQNdGWEg8sjvdu1s4/NYIBNFz3V9Ys2OVfg3RqnGOcpZThjbzTuHJV0
 AaCzBmEgGCuHasyzNxhhzVfn7PGJ6Fhb0cOKev1z0ilXMUeTpbW/xQLr8OK6mdwN
 NR4d0P7aDSLzaUEmbm557vz9vkuBaGod2LaKPcXN1trFt/p0Ie467aLeY2gFu4TC
 aNP/bo1z3XdUWrW8noU3zJSVjk45pO/sAik2aaDk/dD6A41UHup/GvuXw59nmFU0
 E/LxRc9Ig8s/kS8wpU1dCCvOrCD72ljU58DUVciIGdxdJpo0VuxaxRBPHoTvDkh9
 ywDlTYPcTJCBOfNNCq7lA8UHRaUJ4XYaOkhV5isjZJDGbNjUOPFBRy4g4e5p3XFl
 GdZB5hA5P4obN33y
 =UVX0
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmi1VI0ACgkQmmx57+YA
 GNmh5Q/+MqfYPlBhnFsyFa/418pcU/C7qnODlWKSw1Q9ia0coRwQofMoo5yeERQc
 3pPY9bnyS+Owfk8n26iMLkNht6IaAYNepfST0nVEklveywszJiz1x1u73+1Ngknd
 ajkgAugH8+iduqbRzIpGodLiwTnGJikfLJ3wgMQ9yyK0SwLIZ3/a8/2P9LWN2+d1
 WLV62XpvP5+1kGeO76gekbnzpU4F9bquaoYSR9pwnQ8AKkZNWOgSWuZWPW4muCpD
 0c6bX9JFHJ2iITPIPlKxMijP9/dHXqO8E8hGCVYqLZOhbBgPwtx77US5c51txOPK
 V6WFduaTjAGNLcJz7WGJuYyBT2Sva037hRo6Z0GTp2jRoNLPkfdJZcJ7GhHO+fjz
 VVckN+51sts6ESAZBEpnQy7C0hIDIwha2vBeKt6nxYCR0DB7dT4ey+FwysuwurBL
 6A1j+1qI7q0JKOA7LQkS6ofHHHbZUuOvgjyUBG3eDkg5BApbcfa3x0rLeq9cZvDr
 xtlFd5P+hctF5qeCQ6VL7MjHG7Yks6pUC2Bwaxm2h2Rbz1NtYkrri/NUk31wnU73
 Nv/RKEMWTZmwBaAV6Whuz7/M9zehGmzDkEJGhv1ikbWC5zm8YUkYwckKShun41bV
 DwB6At01DI7QbTsAS5ZlOKQyS3a7rc0XEyI+bACCp2I0Urnom7k=
 =zaMo
 -----END PGP SIGNATURE-----

Merge tag 'qcom-drivers-fixes-for-6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into arm/fixes

Qualcomm driver fixes for v6.17-rc1

The recently extended sanity checks for the Qualcomm firmware files
turned out to be too restrictive, preventing a variety of firmware
images from being loaded. Adjust the checks to allow section header
sizes of 0 when sections aren't used.

* tag 'qcom-drivers-fixes-for-6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux:
  soc: qcom: mdt_loader: Deal with zero e_shentsize

Link: https://lore.kernel.org/r/20250811145613.120917-1-andersson@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-09-01 10:08:44 +02:00
Nysal Jan K.A.
4f61d54d22 powerpc/qspinlock: Add spinlock contention tracepoint
Add a lock contention tracepoint in the queued spinlock slowpath.
Also add the __lockfunc annotation so that in_lock_functions()
works as expected.

Signed-off-by: Nysal Jan K.A. <nysal@linux.ibm.com>
Reviewed-by: Shrikanth Hegde <sshegde@linux.ibm.com>
Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com>
Link: https://patch.msgid.link/20250731061856.1858898-1-nysal@linux.ibm.com
2025-09-01 13:38:12 +05:30
Thomas Huth
74db6cc331 powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers
While the GCC and Clang compilers already define __ASSEMBLER__
automatically when compiling assembler code, __ASSEMBLY__ is a
macro that only gets defined by the Makefiles in the kernel.
This is bad since macros starting with two underscores are names
that are reserved by the C language. It can also be very confusing
for the developers when switching between userspace and kernelspace
coding, or when dealing with uapi headers that rather should use
__ASSEMBLER__  instead. So let's standardize now on the __ASSEMBLER__
macro that is provided by the compilers.

This is almost a completely mechanical patch (done with a simple
"sed -i" statement), apart from tweaking two comments manually in
arch/powerpc/include/asm/bug.h and arch/powerpc/include/asm/kasan.h
(which did not have proper underscores at the end) and fixing a
checkpatch error about spaces in arch/powerpc/include/asm/spu_csa.h.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com>
Link: https://patch.msgid.link/20250801082007.32904-3-thuth@redhat.com
2025-09-01 13:23:29 +05:30
Thomas Huth
8e0665eb85 powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in uapi headers
__ASSEMBLY__ is only defined by the Makefile of the kernel, so
this is not really useful for uapi headers (unless the userspace
Makefile defines it, too). Let's switch to __ASSEMBLER__ which
gets set automatically by the compiler when compiling assembler
code.

This is a completely mechanical patch (done with a simple "sed -i"
statement).

Acked-by: Segher Boessenkool <segher@kernel.crashing.org>
Signed-off-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com>
Link: https://patch.msgid.link/20250801082007.32904-2-thuth@redhat.com
2025-09-01 13:23:29 +05:30
Maxime Ripard
7287177e5a drm/tidss: dispc: Define field masks being used
Now that we have all the accessors taking masks, we can create defines
for them and reuse them as needed.

It makes the driver easier to read, less prone to consistency issues,
and allows to reuse defines when needed.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
Link: https://lore.kernel.org/r/20250827-drm-tidss-field-api-v3-14-7689b664cc63@kernel.org
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
2025-09-01 10:37:20 +03:00
Maxime Ripard
9b74ce7a69 drm/tidss: dispc: Switch OVR_REG_FLD_MOD to using a mask
The OVR_REG_FLD_MOD function takes the start and end bits as parameter
and will generate a mask out of them.

This makes it difficult to share the masks between callers, since we now
need two arguments and to keep them consistent.

Let's change OVR_REG_FLD_MOD to take the mask as an argument instead,
and let the caller create the mask. Eventually, this mask will be moved
to a define.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
Link: https://lore.kernel.org/r/20250827-drm-tidss-field-api-v3-13-7689b664cc63@kernel.org
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
2025-09-01 10:37:19 +03:00
Maxime Ripard
68f7fa2477 drm/tidss: dispc: Switch VP_REG_FLD_MOD to using a mask
The VP_REG_FLD_MOD function takes the start and end bits as parameter
and will generate a mask out of them.

This makes it difficult to share the masks between callers, since we now
need two arguments and to keep them consistent.

Let's change VP_REG_FLD_MOD to take the mask as an argument instead, and
let the caller create the mask. Eventually, this mask will be moved to a
define.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
Link: https://lore.kernel.org/r/20250827-drm-tidss-field-api-v3-12-7689b664cc63@kernel.org
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
2025-09-01 10:37:19 +03:00
Maxime Ripard
b695ff1e7a drm/tidss: dispc: Switch VP_REG_GET to using a mask
The VP_REG_GET function takes the start and end bits as parameter and
will generate a mask out of them.

This makes it difficult to share the masks between callers, since we now
need two arguments and to keep them consistent.

Let's change VP_REG_GET to take the mask as an argument instead, and let
the caller create the mask. Eventually, this mask will be moved to a
define.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
Link: https://lore.kernel.org/r/20250827-drm-tidss-field-api-v3-11-7689b664cc63@kernel.org
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
2025-09-01 10:37:19 +03:00
Maxime Ripard
aeaef1ba6b drm/tidss: dispc: Switch VID_REG_FLD_MOD to using a mask
The VID_REG_FLD_MOD function takes the start and end bits as parameter
and will generate a mask out of them.

This makes it difficult to share the masks between callers, since we now
need two arguments and to keep them consistent.

Let's change VID_REG_FLD_MOD to take the mask as an argument instead,
and let the caller create the mask. Eventually, this mask will be moved
to a define.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
Link: https://lore.kernel.org/r/20250827-drm-tidss-field-api-v3-10-7689b664cc63@kernel.org
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
2025-09-01 10:37:19 +03:00
Maxime Ripard
990e6f28e7 drm/tidss: dispc: Switch VID_REG_GET to using a mask
The VID_REG_GET function takes the start and end bits as parameter and
will generate a mask out of them.

This makes it difficult to share the masks between callers, since we now
need two arguments and to keep them consistent.

Let's change VID_REG_GET to take the mask as an argument instead, and
let the caller create the mask. Eventually, this mask will be moved to a
define.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
Link: https://lore.kernel.org/r/20250827-drm-tidss-field-api-v3-9-7689b664cc63@kernel.org
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
2025-09-01 10:37:19 +03:00
Maxime Ripard
e6b571e6ff drm/tidss: dispc: Switch REG_FLD_MOD to using a mask
The REG_FLD_MOD function takes the start and end bits as parameter and
will generate a mask out of them.

This makes it difficult to share the masks between callers, since we now
need two arguments and to keep them consistent.

Let's change REG_FLD_MOD to take the mask as an argument instead, and
let the caller create the mask. Eventually, this mask will be moved to a
define.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
Link: https://lore.kernel.org/r/20250827-drm-tidss-field-api-v3-8-7689b664cc63@kernel.org
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
2025-09-01 10:37:19 +03:00
Maxime Ripard
8bd839a3ec drm/tidss: dispc: Switch REG_GET to using a mask
The REG_GET function takes the start and end bits as parameter and will
generate a mask out of them.

This makes it difficult to share the masks between callers, since we now
need two arguments and to keep them consistent.

Let's change REG_GET to take the mask as an argument instead, and let
the caller create the mask. Eventually, this mask will be moved to a
define.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
Link: https://lore.kernel.org/r/20250827-drm-tidss-field-api-v3-7-7689b664cc63@kernel.org
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
2025-09-01 10:37:19 +03:00
Maxime Ripard
13925ccb0d drm/tidss: dispc: Get rid of FLD_MOD
The FLD_MOD function is an equivalent to what FIELD_MODIFY + GENMASK
provide, so let's drop it and switch to the latter.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
Link: https://lore.kernel.org/r/20250827-drm-tidss-field-api-v3-6-7689b664cc63@kernel.org
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
2025-09-01 10:37:19 +03:00
Maxime Ripard
6e50765b82 drm/tidss: dispc: Get rid of FLD_GET
The FLD_GET function is an equivalent to what FIELD_GET + GENMASK
provide, so let's drop it and switch to the latter.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
Link: https://lore.kernel.org/r/20250827-drm-tidss-field-api-v3-5-7689b664cc63@kernel.org
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
2025-09-01 10:37:19 +03:00
Maxime Ripard
9accc8b10d drm/tidss: dispc: Get rid of FLD_VAL
The FLD_VAL function is an equivalent to what FIELD_PREP + GENMASK
provide, so let's drop it and switch to the latter.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
Link: https://lore.kernel.org/r/20250827-drm-tidss-field-api-v3-4-7689b664cc63@kernel.org
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
2025-09-01 10:37:19 +03:00
Maxime Ripard
db7c13ebf2 drm/tidss: dispc: Switch to GENMASK instead of FLD_MASK
The dispc FLD_MASK function is an exact equivalent of the GENMASK macro.
Let's convert the dispc driver to the latter.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
Link: https://lore.kernel.org/r/20250827-drm-tidss-field-api-v3-3-7689b664cc63@kernel.org
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
2025-09-01 10:37:19 +03:00
Maxime Ripard
e8e202bcbd drm/tidss: dispc: Convert accessors to macros
The dispc driver uses upper-cased, inlined, functions to provide
macro-like accessors to the dispc registers.

This is confusing, since upper-case is usually used by macros, and that
pattern will create gcc errors later on in this series.

Let's switch to macros to make it more consistent, and prevent those
errors down the line.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
Link: https://lore.kernel.org/r/20250827-drm-tidss-field-api-v3-2-7689b664cc63@kernel.org
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
2025-09-01 10:37:19 +03:00
Maxime Ripard
d42ce9ea57 drm/tidss: dispc: Remove unused OVR_REG_GET
The OVR_REG_GET function in the dispc driver is not used anywhere. Let's
drop it.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
Link: https://lore.kernel.org/r/20250827-drm-tidss-field-api-v3-1-7689b664cc63@kernel.org
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
2025-09-01 10:37:19 +03:00
Sabrina Dubroca
cd8ae32e4e xfrm: xfrm_alloc_spi shouldn't use 0 as SPI
x->id.spi == 0 means "no SPI assigned", but since commit
94f39804d8 ("xfrm: Duplicate SPI Handling"), we now create states
and add them to the byspi list with this value.

__xfrm_state_delete doesn't remove those states from the byspi list,
since they shouldn't be there, and this shows up as a UAF the next
time we go through the byspi list.

Reported-by: syzbot+a25ee9d20d31e483ba7b@syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=a25ee9d20d31e483ba7b
Fixes: 94f39804d8 ("xfrm: Duplicate SPI Handling")
Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
Reviewed-by: Simon Horman <horms@kernel.org>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
2025-09-01 08:56:00 +02:00
Ruben Wauters
73cfd166e0 drm/gud: Replace simple display pipe with DRM atomic helpers
The simple display pipe is obsolete and the atomic helpers allow for
more control over the rendering process. As such, this patch replaces
the old simple display pipe system with the newer atomic helpers.

As the code is mainly the same, merely replaced with the new atomic
system, there should be no change in functionality.

Signed-off-by: Ruben Wauters <rubenru09@aol.com>
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://lore.kernel.org/r/20250818193553.2162-1-rubenru09@aol.com
2025-09-01 08:42:51 +02:00
SeonGu Kang
d4ac729964 pinctrl: samsung: Add ARTPEC-8 SoC specific configuration
Add Axis ARTPEC-8 SoC specific configuration data to enable pinctrl.

Signed-off-by: SeonGu Kang <ksk4725@coasia.com>
Signed-off-by: Priyadarsini G <priya.ganesh@samsung.com>
Signed-off-by: Ravi Patel <ravi.patel@samsung.com>
Link: https://lore.kernel.org/r/20250901051926.59970-3-ravi.patel@samsung.com
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
2025-09-01 08:32:02 +02:00
SeonGu Kang
03724b3496 dt-bindings: pinctrl: samsung: Add compatible for ARTPEC-8 SoC
Document the compatible string for ARTPEC-8 SoC pinctrl block,
which is similar to other Samsung SoC pinctrl blocks.

Signed-off-by: SeonGu Kang <ksk4725@coasia.com>
Signed-off-by: Ravi Patel <ravi.patel@samsung.com>
Acked-by: Rob Herring (Arm) <robh@kernel.org>
Link: https://lore.kernel.org/r/20250901051926.59970-2-ravi.patel@samsung.com
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
2025-09-01 08:31:58 +02:00
Dennis Beier
592532a77b cpufreq/longhaul: handle NULL policy in longhaul_exit
longhaul_exit() was calling cpufreq_cpu_get(0) without checking
for a NULL policy pointer. On some systems, this could lead to a
NULL dereference and a kernel warning or panic.

This patch adds a check using unlikely() and returns early if the
policy is NULL.

Bugzilla: #219962

Signed-off-by: Dennis Beier <nanovim@gmail.com>
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
2025-09-01 10:50:28 +05:30
Pierre-Eric Pelloux-Prayer
256576ed68 drm/amdgpu: give each kernel job a unique id
Userspace jobs have drm_file.client_id as a unique identifier
as job's owners. For kernel jobs, we can allocate arbitrary
values - the risk of overlap with userspace ids is small (given
that it's a u64 value).
In the unlikely case the overlap happens, it'll only impact
trace events.

Since this ID is traced in the gpu_scheduler trace events, this
allows to determine the source of each job sent to the hardware.

To make grepping easier, the IDs are defined as they will appear
in the trace output.

Signed-off-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Arunpravin Paneer Selvam <Arunpravin.PaneerSelvam@amd.com>
Link: https://lore.kernel.org/r/20250604122827.2191-1-pierre-eric.pelloux-prayer@amd.com
2025-09-01 10:49:31 +05:30
Liao Yuanhong
35ded83be0 wifi: rtw89: 8852bt: Remove redundant off_reverse variables
The variable off_reverse and its related code are completely redundant in
the function. Remove them to clean the code.

Signed-off-by: Liao Yuanhong <liaoyuanhong@vivo.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20250828094717.599527-1-liaoyuanhong@vivo.com
2025-09-01 11:41:23 +08:00
Qianfeng Rong
a650d86bca wifi: rtw89: use int type to store negative error codes
The 'ret' variable stores returns from other functions, which return
either zero on success or negative error codes on failure.  Storing
error codes in u32 (an unsigned type) causes no runtime issues but is
stylistically inconsistent and very ugly.  Change 'ret' from u32 to
int - this has no runtime impact.

Signed-off-by: Qianfeng Rong <rongqianfeng@vivo.com>
Acked-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20250827150620.550641-1-rongqianfeng@vivo.com
2025-09-01 11:27:36 +08:00
Ping-Ke Shih
e83a2a996b wifi: rtw89: add getting function of DMA channel v1
The coming RTL8922DE uses new mapping of DMA channel. Add it accordingly.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20250826085424.28713-1-pkshih@realtek.com
2025-09-01 10:56:30 +08:00
Ping-Ke Shih
571ce803c2 wifi: rtw89: abstract getting function of DMA channel
The mapping function from QSEL (almost equivalent EDCA queue) to PCI DMA
channel. Since coming chips change the definition, abstract this function
as a chip_ops.

Don't change logic at all.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20250826085339.28512-1-pkshih@realtek.com
2025-09-01 10:55:03 +08:00