Commit graph

1,309,163 commits

Author SHA1 Message Date
Thomas Weißschuh
00f6f65bd1 HID: bigbenff: constify fixed up report descriptor
Now that the HID core can handle const report descriptors,
constify them where possible.

Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
Link: https://patch.msgid.link/20240828-hid-const-fixup-2-v1-1-663b9210eb69@weissschuh.net
Signed-off-by: Benjamin Tissoires <bentiss@kernel.org>
2024-09-05 16:20:56 +02:00
Greg Kroah-Hartman
3ff77190cc MHI Host
========
 
 core
 ----
 
 - Used const qualifier for 'mhi_bus_type' to place it onto the read-only memory
   segment.
 
 pci_generic
 -----------
 
 - Fixed the Telit FE990A modem name as it was advertising the wrong product
   name, thereby confusing the users.
 
 - Added Netprisma LCUR57 and FCUN69 modems based on Qcom SDX24 and SDX6X SoCs.
 
 - Updated the EDL (Emergency Download) firmware path for the Foxconn modems.
   The patch that added the modem support mistakenly specified the generic EDL
   firmware path common for Qcom based modems. But they won't work.
 
 - Enabled the EDL trigger for all Foxconn modems to update the modem firmware.
 -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCgAdFiEEZ6VDKoFIy9ikWCeXVZ8R5v6RzvUFAmbZu6sACgkQVZ8R5v6R
 zvV3wQgAoAhLYgb7uHU5t4hGbqXlTMwAJZBi67iLewy2dyHomT90PD8f+YdJGba/
 b8j4u8K4wePFuObDR3yWy8mmWoTt6+pt/5NagwVctXtYrIFvRNIm9OBMS5UuAZqL
 HkRfHo41Xivh41uEmdFdwDjMqTw6DXCX1K5dnKw3aVEyLUdZMvoSkdL8ajOUxxiZ
 5Sn6MIoThC+gE0oUHoL11OJV+HLod9IP3Oj0+yyqiRDciH9RnQZCOWHqRxRu4LVo
 +ohTNaO4MNm2cLWPbPfU2bGLg5/JcYD61NvcvjNmtMk4+tcHbqMPVf12MQYNTnhJ
 ZPK3v8E24vuIhbyQs2drZTMM1ECypA==
 =ts9F
 -----END PGP SIGNATURE-----

Merge tag 'mhi-for-v6.12' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/mani/mhi into char-misc-next

Manivannan writes:

MHI Host
========

core
----

- Used const qualifier for 'mhi_bus_type' to place it onto the read-only memory
  segment.

pci_generic
-----------

- Fixed the Telit FE990A modem name as it was advertising the wrong product
  name, thereby confusing the users.

- Added Netprisma LCUR57 and FCUN69 modems based on Qcom SDX24 and SDX6X SoCs.

- Updated the EDL (Emergency Download) firmware path for the Foxconn modems.
  The patch that added the modem support mistakenly specified the generic EDL
  firmware path common for Qcom based modems. But they won't work.

- Enabled the EDL trigger for all Foxconn modems to update the modem firmware.

* tag 'mhi-for-v6.12' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/mani/mhi:
  bus: mhi: host: pci_generic: Enable EDL trigger for Foxconn modems
  bus: mhi: host: pci_generic: Update EDL firmware path for Foxconn modems
  bus: mhi: host: pci_generic: Add support for Netprisma LCUR57 and FCUN69
  bus: mhi: host: make mhi_bus_type const
  bus: mhi: host: pci_generic: Fix the name for the Telit FE990A
2024-09-05 16:20:47 +02:00
Steven Rostedt
d2603279c7 eventfs: Use list_del_rcu() for SRCU protected list variable
Chi Zhiling reported:

  We found a null pointer accessing in tracefs[1], the reason is that the
  variable 'ei_child' is set to LIST_POISON1, that means the list was
  removed in eventfs_remove_rec. so when access the ei_child->is_freed, the
  panic triggered.

  by the way, the following script can reproduce this panic

  loop1 (){
      while true
      do
          echo "p:kp submit_bio" > /sys/kernel/debug/tracing/kprobe_events
          echo "" > /sys/kernel/debug/tracing/kprobe_events
      done
  }
  loop2 (){
      while true
      do
          tree /sys/kernel/debug/tracing/events/kprobes/
      done
  }
  loop1 &
  loop2

  [1]:
  [ 1147.959632][T17331] Unable to handle kernel paging request at virtual address dead000000000150
  [ 1147.968239][T17331] Mem abort info:
  [ 1147.971739][T17331]   ESR = 0x0000000096000004
  [ 1147.976172][T17331]   EC = 0x25: DABT (current EL), IL = 32 bits
  [ 1147.982171][T17331]   SET = 0, FnV = 0
  [ 1147.985906][T17331]   EA = 0, S1PTW = 0
  [ 1147.989734][T17331]   FSC = 0x04: level 0 translation fault
  [ 1147.995292][T17331] Data abort info:
  [ 1147.998858][T17331]   ISV = 0, ISS = 0x00000004, ISS2 = 0x00000000
  [ 1148.005023][T17331]   CM = 0, WnR = 0, TnD = 0, TagAccess = 0
  [ 1148.010759][T17331]   GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0
  [ 1148.016752][T17331] [dead000000000150] address between user and kernel address ranges
  [ 1148.024571][T17331] Internal error: Oops: 0000000096000004 [#1] SMP
  [ 1148.030825][T17331] Modules linked in: team_mode_loadbalance team nlmon act_gact cls_flower sch_ingress bonding tls macvlan dummy ib_core bridge stp llc veth amdgpu amdxcp mfd_core gpu_sched drm_exec drm_buddy radeon crct10dif_ce video drm_suballoc_helper ghash_ce drm_ttm_helper sha2_ce ttm sha256_arm64 i2c_algo_bit sha1_ce sbsa_gwdt cp210x drm_display_helper cec sr_mod cdrom drm_kms_helper binfmt_misc sg loop fuse drm dm_mod nfnetlink ip_tables autofs4 [last unloaded: tls]
  [ 1148.072808][T17331] CPU: 3 PID: 17331 Comm: ls Tainted: G        W         ------- ----  6.6.43 #2
  [ 1148.081751][T17331] Source Version: 21b3b386e948bedd29369af66f3e98ab01b1c650
  [ 1148.088783][T17331] Hardware name: Greatwall GW-001M1A-FTF/GW-001M1A-FTF, BIOS KunLun BIOS V4.0 07/16/2020
  [ 1148.098419][T17331] pstate: 20000005 (nzCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
  [ 1148.106060][T17331] pc : eventfs_iterate+0x2c0/0x398
  [ 1148.111017][T17331] lr : eventfs_iterate+0x2fc/0x398
  [ 1148.115969][T17331] sp : ffff80008d56bbd0
  [ 1148.119964][T17331] x29: ffff80008d56bbf0 x28: ffff001ff5be2600 x27: 0000000000000000
  [ 1148.127781][T17331] x26: ffff001ff52ca4e0 x25: 0000000000009977 x24: dead000000000100
  [ 1148.135598][T17331] x23: 0000000000000000 x22: 000000000000000b x21: ffff800082645f10
  [ 1148.143415][T17331] x20: ffff001fddf87c70 x19: ffff80008d56bc90 x18: 0000000000000000
  [ 1148.151231][T17331] x17: 0000000000000000 x16: 0000000000000000 x15: ffff001ff52ca4e0
  [ 1148.159048][T17331] x14: 0000000000000000 x13: 0000000000000000 x12: 0000000000000000
  [ 1148.166864][T17331] x11: 0000000000000000 x10: 0000000000000000 x9 : ffff8000804391d0
  [ 1148.174680][T17331] x8 : 0000000180000000 x7 : 0000000000000018 x6 : 0000aaab04b92862
  [ 1148.182498][T17331] x5 : 0000aaab04b92862 x4 : 0000000080000000 x3 : 0000000000000068
  [ 1148.190314][T17331] x2 : 000000000000000f x1 : 0000000000007ea8 x0 : 0000000000000001
  [ 1148.198131][T17331] Call trace:
  [ 1148.201259][T17331]  eventfs_iterate+0x2c0/0x398
  [ 1148.205864][T17331]  iterate_dir+0x98/0x188
  [ 1148.210036][T17331]  __arm64_sys_getdents64+0x78/0x160
  [ 1148.215161][T17331]  invoke_syscall+0x78/0x108
  [ 1148.219593][T17331]  el0_svc_common.constprop.0+0x48/0xf0
  [ 1148.224977][T17331]  do_el0_svc+0x24/0x38
  [ 1148.228974][T17331]  el0_svc+0x40/0x168
  [ 1148.232798][T17331]  el0t_64_sync_handler+0x120/0x130
  [ 1148.237836][T17331]  el0t_64_sync+0x1a4/0x1a8
  [ 1148.242182][T17331] Code: 54ffff6c f9400676 910006d6 f9000676 (b9405300)
  [ 1148.248955][T17331] ---[ end trace 0000000000000000 ]---

The issue is that list_del() is used on an SRCU protected list variable
before the synchronization occurs. This can poison the list pointers while
there is a reader iterating the list.

This is simply fixed by using list_del_rcu() that is specifically made for
this purpose.

Link: https://lore.kernel.org/linux-trace-kernel/20240829085025.3600021-1-chizhiling@163.com/

Cc: stable@vger.kernel.org
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Link: https://lore.kernel.org/20240904131605.640d42b1@gandalf.local.home
Fixes: 43aa6f97c2 ("eventfs: Get rid of dentry pointers without refcounts")
Reported-by: Chi Zhiling <chizhiling@kylinos.cn>
Tested-by: Chi Zhiling <chizhiling@kylinos.cn>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
2024-09-05 10:18:48 -04:00
Zheng Yejian
49aa8a1f4d tracing: Avoid possible softlockup in tracing_iter_reset()
In __tracing_open(), when max latency tracers took place on the cpu,
the time start of its buffer would be updated, then event entries with
timestamps being earlier than start of the buffer would be skipped
(see tracing_iter_reset()).

Softlockup will occur if the kernel is non-preemptible and too many
entries were skipped in the loop that reset every cpu buffer, so add
cond_resched() to avoid it.

Cc: stable@vger.kernel.org
Fixes: 2f26ebd549 ("tracing: use timestamp to determine start of latency traces")
Link: https://lore.kernel.org/20240827124654.3817443-1-zhengyejian@huaweicloud.com
Suggested-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Zheng Yejian <zhengyejian@huaweicloud.com>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
2024-09-05 10:18:48 -04:00
Arnd Bergmann
f166da5c9d Samsung mach/soc changes for v6.12
1. Few ARM32 machine code cleanups,
 2. Add dedicated maintainer entry for ARM64 Exynos850 DTS and driver
    code.
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEE3dJiKD0RGyM7briowTdm5oaLg9cFAmbNwgkQHGtyemtAa2Vy
 bmVsLm9yZwAKCRDBN2bmhouD1zSiD/0XPrlzNt+2y3RnRVGdOZxb484HxSQG7F4k
 oYPSABwFHA/6/3BU6dux5u5n/sXlpNT2zYtHLC5GO5lp13kMbDgZn8lqlYIbrM5D
 hR3Lr/eSQhKw8Vb4yTKqJ2ID8jNvtIVbyMb1xBsSGRKQ1Szy/PF/gPUwyiIZxANt
 SFt+aMaN9y9qNojDI9ouKwE4UscPI329GcobDFPaiMMpgOzGiThe3nr9Efi2xwn/
 APk5xqGalDxW2wHvcrgUgMJPKFrGZ3hY5kWJXJJzvX9+NWDARsEk//FISkzlj1Kb
 qcqOrhDUkwhe5ZMpEC1rka8cPnEL4luE3Dnacyz/85Hl5Rn666g81Tx7HMF6lmKu
 YzZkEGHo9gbfr3hcyY+KUDiGrhomN/P9zYMNP64yY9vEQqiper0ryPwS8cR0XHVH
 pvS5m3vjkRq9le99LPRvlM28MX5/1NdvH31pp10+BLXlqDSNZ/VuFb9xIBAyAqMm
 izdRGgrjfwqrJWcbfIpn7yGZcxPXyyKQsXoTU/30crOAfVLFj0sw0fPRl9eefR7Z
 8pUlkEzwQshuIUhMwpJCv7x8X9hFcRF0bCYS3DXR5ErDNApkhQaD9imYmSGwQEOF
 AkgJDNElLVinfQvqHDB3c/RA1UqoWGsk5VlLzjrr+lxw2N73FMKLNer652d32Os+
 YUPA4IiRrA==
 =ykI6
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmbZvZ0ACgkQYKtH/8kJ
 Uidw4RAAzV5wLSnKPNMgG8QVsvCR1kdm+cKm/FZd2FybUcYuuotdnikpxPUajnjZ
 bG035/VctpCBMz2hOf0talsdB0tBXBywMf/CPgElC8UZ2lFk/RKMbiW1c9AuwoaE
 4h0q1ioiKV7qelt6B0Mm/h/IA4fIbm8d/CEO59QrIM109sVgyQfIR981BKrUI6Ub
 GQ8So8ofjaai8MmQLK0UZxzIP1RiykEpL6IBk3VhJcO1OiffWSYtR1c4JQFHvIXg
 l+uVrdvkUA2SYghPN2Xz3K2HSbR3Ni1L+3RcdoV+SQEFVXm/Br/Fi2uj6IM1iIa1
 YRaht1y968aWKYfODL53rQg/xjvlD/ss/qfSRjVHUUY8EbGCnyQCR5lkZSAIsIFA
 hE2rcxEjC5PUv0DpYkk9Lt87Xf9O67bhi/dMY4egsASsTZCzxJvWdARDgentxxTU
 xX39T7xzGfclsWnTPc1CHdOPlVV0n5YGc3pHRu7WtKGy8zNRP/LH0YHvCEiXmdSc
 ienmDhHiyCTzZCw+QXW1mV8S+6IRg2UAcFccwynjBo8Oeihc1JNiJjnJpHdYsdGg
 gt4yBXrx8eVqSg9NgURj5JiwKJJTv3oc5eaauKkALJZ8ULtQzuyJvwBrb0BSxbzi
 uQ+VIM9cGU8iJBjogva8f/WxuahvFvhGcOQWKjpJAbFcbcXe+7g=
 =xjo6
 -----END PGP SIGNATURE-----

Merge tag 'samsung-soc-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into soc/arm

Samsung mach/soc changes for v6.12

1. Few ARM32 machine code cleanups,
2. Add dedicated maintainer entry for ARM64 Exynos850 DTS and driver
   code.

* tag 'samsung-soc-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux:
  ARM: s3c: remove unused s3c2410_cpu_suspend() declaration
  ARM: s3c: remove unused declarations for s3c6400
  ARM: s3c: Remove unused s3c_init_uart_irqs() declaration
  MAINTAINERS: Add entry for Samsung Exynos850 SoC
  ARM: s3c: Drop explicit initialization of struct i2c_device_id::driver_data to 0

Link: https://lore.kernel.org/r/20240827121638.29707-3-krzysztof.kozlowski@linaro.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2024-09-05 14:18:05 +00:00
Arnd Bergmann
6d67480404 Qualcomm driver updates for v6.12
Support is added for making SCM driver configure the system either for a
 full or minimal ramdump following a system crash. The ramdump mode is
 changed from being enable-only to enable/disable as requested.
 
 The QSEECOM uefisecapp interface is allow-listed on Surface Laptop 7 and
 Lenovo Thinkpad T14s, providing EFI variable access.
 
 The change to match the SMD RPM driver based on the SMD channel name is
 reverted, in favor of stepping back to OF-based matching, as a means to
 get module autoloading to work properly.
 
 AOSS, APR, ICE, OCMEM, PBS and SMP2P drivers has error handling cleaned
 up using scoped resources.
 
 Trace events are added to the BWMON and SMP2P drivers, for better
 insights into their operations.
 
 The X1E LLCC configuration data is updated based on recommended values.
 
 A number of platforms are added to the in-kernel PD-mapper.
 
 SocInfo driver is extended with IDs from SM7325, QCS8275 and QCS8300
 families.
 -----BEGIN PGP SIGNATURE-----
 
 iQJJBAABCAAzFiEEBd4DzF816k8JZtUlCx85Pw2ZrcUFAmbYs3AVHGFuZGVyc3Nv
 bkBrZXJuZWwub3JnAAoJEAsfOT8Nma3FjywP/1IDWiKrOrIBYc6ndmssYrQLzlRw
 SSt/Q0YjPKogxl4qwTjTQUmBI/1I+vOa7kf9i0/BNpuslnhJYW51r9bZrcI0n3PW
 P1Pm7J32WGOIauFU9XoGmqzdlPBCVZKcfeCV3n9xTvF0pAipQqz46+O5mVg77jVU
 L5MaVIr4guk/glBJTym97KOlkSSbBsSmheistxiBJUIkUlZqX3YwBQE0Cih1VYOn
 DcQy29EjTpxhbLqI5BqFN3iJqGaV3RS32hL9hM8nYlXth0u8ZBy/H9AEViEK8M1K
 YakDoRkGyihj0M7oFV405yJdSskEbTBlxAfX7LH7x37XocRpsFf+u/Ti8VWxLMnt
 VUciuWA8bg6LnhMK1tQKEGM+3Wp2NZDJStKtV+OnYkvWbKN9QwS4DyiWdPvJGsgJ
 j4qq4B3nF3JU8Pu8Ih59LtPPFTa9/jMkOkqmF7smNehji8gjzHmkAhw6fWPCE5+h
 p8EC/XrYvXCwkBwPWE5vopip8CIpl3bMPb5bbHYGb4NuY59ztht40EExYxnhQzoN
 3ezg+J2jIEaG/HQiBcxt0NrjyLRzkWJVryRxigg1co8Alcmxh7B1UNshiWRI70MA
 P3Emjh8Snixnp7ZD5O5hyiJ4yahomsfuCoDjVL6Vk4AYjon4ZjZ8pgcGBLgB1gry
 Zvkj5b5vc+8VNHnd
 =hZ0b
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmbZvJUACgkQYKtH/8kJ
 Uice9w//SXO0VlWitafyNuWwwqZfWZY953j2sjAjPWC2OWLGgjTQPL2sDKaOnvWG
 FRl8dZmYRcaEb7C7NeWvs1QrUztvxKDXOCDKlmt82EotyBlH1vLFWJK5KJ3oO0sD
 0kQLWDr/KS/QIooXT/PcoFJ0mkpMqYKWV+XLLi+NDQsScMZsGyhZiDdv+qwX3qBw
 9lt/srB1VfgW8gBrOGAxmS/WDQ4wup7/KPNpaUTIdPR8JMNFgoMCVY03LkB+FCcM
 4s/MeecFzHavshFnZqcWzppf1FNX70lcaWEcbbNopM/bekZICFjGWZGoi+tK/8fZ
 WFj3OWZwDGYtxkYjT9M/zvxEJK2xDLosIOICV1dm+OcUN6LAXwknHBuCGMMNDQI1
 jOQjZBXn3A+aT/Amy5GpKV0ci4K/tTI6AfBGdlZJq9jsQOMfP8Cygsv6leRp3dpJ
 06v2ifSWUTv8+ucwYn/Oz0rZDZAe8ucswybzQo0lyor4Qg8lTZJFIU6iNoT/ZCCZ
 wlNg7t1OfkGGr08SuiAhV6+c5/CK2WivxCfKfZjw8+iMLJXyjE57fnf2HaU9Yfwp
 iJrV1euITVkLjmyMCg2YJSyWVl8O43T+LBcqreZel2iDJOBgY84zfk5hB/2sLLXj
 bo3H9QHD7IlQ3yOafT8zuxtanw3cJfBId34afsYD8h9khVz8OmI=
 =6GV4
 -----END PGP SIGNATURE-----

Merge tag 'qcom-drivers-for-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/drivers

Qualcomm driver updates for v6.12

Support is added for making SCM driver configure the system either for a
full or minimal ramdump following a system crash. The ramdump mode is
changed from being enable-only to enable/disable as requested.

The QSEECOM uefisecapp interface is allow-listed on Surface Laptop 7 and
Lenovo Thinkpad T14s, providing EFI variable access.

The change to match the SMD RPM driver based on the SMD channel name is
reverted, in favor of stepping back to OF-based matching, as a means to
get module autoloading to work properly.

AOSS, APR, ICE, OCMEM, PBS and SMP2P drivers has error handling cleaned
up using scoped resources.

Trace events are added to the BWMON and SMP2P drivers, for better
insights into their operations.

The X1E LLCC configuration data is updated based on recommended values.

A number of platforms are added to the in-kernel PD-mapper.

SocInfo driver is extended with IDs from SM7325, QCS8275 and QCS8300
families.

* tag 'qcom-drivers-for-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux: (33 commits)
  firmware: qcom: scm: Allow QSEECOM on Surface Laptop 7 models
  dt-bindings: soc: qcom: qcom,pmic-glink: Document SM7325 compatible
  soc: qcom: pd_mapper: Add SM7325 compatible
  soc: qcom: socinfo: Add Soc IDs for SM7325 family
  dt-bindings: arm: qcom,ids: Add IDs for SM7325 family
  soc: qcom: socinfo: add QCS8275/QCS8300 SoC ID
  dt-bindings: arm: qcom,ids: add SoC ID for QCS8275/QCS8300
  soc: qcom: smp2p: use scoped device node handling to simplify error paths
  soc: qcom: pbs: use scoped device node handling to simplify error paths
  soc: qcom: ocmem: use scoped device node handling to simplify error paths
  soc: qcom: ice: use scoped device node handling to simplify error paths
  soc: qcom: aoss: simplify with scoped for each OF child loop
  soc: qcom: apr: simplify with scoped for each OF child loop
  soc: qcom: smd-rpm: add qcom,smd-rpm compatible
  dt-bindings: soc: qcom: smd-rpm: add generic compatibles
  Revert "soc: qcom: smd-rpm: Match rpmsg channel instead of compatible"
  firmware: qcom: scm: Add multiple download mode support
  firmware: qcom: scm: Refactor code to support multiple dload mode
  soc: qcom: pd_mapper: Add more older platforms without domains
  soc: qcom: pd_mapper: Add X1E80100
  ...

Link: https://lore.kernel.org/r/20240904193042.15118-1-andersson@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2024-09-05 14:13:41 +00:00
Arnd Bergmann
3b42530638 Microchip AT91 SoC updates for v6.12
It contains:
 - support for the Microchip SAM9X7 SoC:
 -- power management
 -- SoC identification
 -- sysreg documentation updates
 -- necessary Kconfig updates
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQTsZ8eserC1pmhwqDmejrg/N2X7/QUCZtMiTwAKCRCejrg/N2X7
 /W78AP9+to1Ma9E6F97THV3DE1qUQltEY+G0Ms2ZJNXy61lX0AEAgUk7u7tIpxfL
 6aMRYhAWG/lUMAKFt3AWZSWLxhUzKAY=
 =vq3+
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmbZvHoACgkQYKtH/8kJ
 Uiemzw//Y2DRc8xF8cFX6ZudKwSFykIs6MghUwYsoGGUDikFzl/mgBTqQ3qOCb3N
 iS1I5EVEuI4IKgTk11PCU7tDXg6NHXbiFS7vMJhh0MtrZk+b6EO+GVJKbaLGi53P
 /OKOYe3ZZec37ZfHb8jRr1sZ380bcGHLLxfepQN8luP8b/+Nc7+fjWp7BKcg2H6g
 O4d86lt60jRFI4DMNNPJsWatalfMCAEficqzrOiv/tbZ324ab0IhbS92EWef+lAC
 0zq4jMffG5d4RVyHJSB45lij3JWxpaioNPYZBdv+h5U4c8CmfknFwcBqiwZa7mqT
 B75DO+QHa+Mofbu+tjOpmPeamIuf262d5lHHDzSAqzxy5VCzoXdslbtQCd7qT1UQ
 Zf6t4PlCylSo/IJ3w2dxMARviDfF4ebujsQ1coXYEd+mXjrO9EvqVaBRRLvsefPg
 4Irsf0zaOU4rSCdrTWkKaNh6gJRHhZ1sP2OOdJ4F+Gd5/mcyGe9gNjWdFjGqFcjb
 /SnO9TOtoH+DZjibe9beJu1cjpO13TXgQ2RjcfeKtcXq4gdV3SVsl9oaOUqZFDtC
 VtKQHRWm9PYHWi2qfAsVzPbVoBECys7m7HVOadBGD5Ayo11Yv2+jduW8x4qVK/QH
 l9iqiLFRYdRnVhIsFfOrGxBTmG4bdG8BdGHxXlvkje15SDYh3Cs=
 =FOWc
 -----END PGP SIGNATURE-----

Merge tag 'at91-soc-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/at91/linux into soc/drivers

Microchip AT91 SoC updates for v6.12

It contains:
- support for the Microchip SAM9X7 SoC:
-- power management
-- SoC identification
-- sysreg documentation updates
-- necessary Kconfig updates

* tag 'at91-soc-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/at91/linux:
  ARM: at91: Kconfig: add config flag for SAM9X7 SoC
  ARM: at91: add support in SoC driver for new sam9x7
  ARM: at91: pm: add sam9x7 SoC init config
  ARM: at91: pm: add support for sam9x7 SoC family
  dt-bindings: atmel-sysreg: add sam9x7

Link: https://lore.kernel.org/r/20240901133110.2038675-3-claudiu.beznea@tuxon.dev
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2024-09-05 14:13:14 +00:00
Herve Codina
dc2b17fbd5
soc: fsl: qe: ucc: Export ucc_mux_set_grant_tsa_bkpt
When TSA is compiled as module the following error is reported:
  "ucc_mux_set_grant_tsa_bkpt" [drivers/soc/fsl/qe/tsa.ko] undefined!

Indeed, the ucc_mux_set_grant_tsa_bkpt symbol is not exported.

Simply export ucc_mux_set_grant_tsa_bkpt.

Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202409051409.fszn8rEo-lkp@intel.com/
Signed-off-by: Herve Codina <herve.codina@bootlin.com>
Acked-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2024-09-05 14:12:15 +00:00
Arnd Bergmann
be5ea8f3e3 ARM: OMAP2+: misc driver updates for v6.12
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEe4dGDhaSf6n1v/EMWTcYmtP7xmUFAmbY9nMACgkQWTcYmtP7
 xmV87RAAmvj2+vIABiN4jvKXIPSjPO0OkqrOsCSlKS0+ZMtZSqZihA2RXAtn3609
 PIKDv1iunMDi3PJ6ehxLR2x3XgfwBoW53A0VN+3B0NvLi3OLzJ6pIu3zfdz1rlsY
 zvwm2kB4HDNVTnLHqD9Pc8yT4ynV8WdoLJwhG/PJniNIFg9zznpN+4POBKzZs2El
 3OXVJxPnVKk1MqSWHh51Xd09J6ccRS77R4uX8LGxmIefIq/ZvHllC5G2vgl+Qk7F
 4hz9r7/IgK+Cn75BxqK1/UM487i3Twbjgov+RwX5AuSdrTK0wuqb1B+pj63GMsOP
 Q32cDwXm/yIlduBuTxfm7BHkO2y4tL/DmuS8Cvk77X5QnUHuR9pB8xL7z7eXpVdq
 3yai9vlcfWaT5Oyuslbxr7f4QOhKLuWt0E75FIJweRhZJN7fyHMIQyVDHRa7hI/3
 NMI91jgXC2Oy+j0GAPViOMiHD+6JI667lPWyn1xWVKsjM7uw7pu7QhYugc7vHvaY
 D/HyZP/WvW1z7fZBP4pleIw3Ds2XaYSgJEmYP9OYhBRHjY/p55sSvYIeYaThNGJ/
 /wpu/tFLluRK1GZtr7qZ4nl2Lw9u/VLumhvjAzDCFmHb0uWMTYPqNNcREtcSzfAo
 RiJcCRftoTnCDezzAajan2+3yMF2+2wHurGD8z+FGlkxYmSJuyk=
 =41Q6
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmbZvBoACgkQYKtH/8kJ
 UieDvRAAqweRsOocf8ZZfXYX/bVadR/HnDG/CRAOVDOTqA12+G0k/4DEWo9KK0y+
 7w+wQtfeZ1mR67bGnwvNkJFuIY6teIhI6ms6jp77qS0aw6x9MwI4dDVU5V3d5Ipg
 z7d7YintxRg21FRaRy3aSUUs4K2RL7KjVdFUdoTEMkf/eDJDJeT59O5iHlXgm+Je
 DiVlIlVFYKp0SWmI3yswj7mbiGa8CdSDLJs8vpsay/ldsTPgGOZ7nwoe0LuA7x8G
 qtYK4Uj8c5En/PFv0QH5V0eICejg4nNNpr5BylYcJcO5YseEj/r+lAaojvZDr9tw
 2T4+wOqgCEe6ALoKaWfKfPANBvMAC17otRccbQTgZbFRHpPcSSYKt2kNMebQxLPJ
 xhmz7eQp22PZF/ludIGohJwvvu0wsO0v+QT2B9Al8nDkdNDOvGtPYfuixplnbnAQ
 T8A327jmTsDLLusULIVxT2vZADOWOMdo9g5kJrSqtKSphd8og5nf7mCR1hY5eGdS
 3PxzBAQwowMINDoga3WhAUr3loQ1Wl2wUyuFwdOVK/rpumGKyKzoYmCyCSXxBOwb
 2PsDXiECVZA9rTf6Pl65pv8uEPdaK7ZxRq5pqkRogaTKvYshdTMbcMneYC5JvGCC
 a9Xo2GITdi/ORHQ0DdOetlD4e4FGlbvf/KOf4i0YW/uX9LyttNs=
 =BgRh
 -----END PGP SIGNATURE-----

Merge tag 'omap-for-v6.12/drivers-signed' of https://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap into soc/drivers

ARM: OMAP2+: misc driver updates for v6.12

* tag 'omap-for-v6.12/drivers-signed' of https://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap:
  ARM: OMAP2+: Remove obsoleted declaration for gpmc_onenand_init
  bus: ti-sysc: Remove excess struct member 'disable_on_idle' description
  bus: ti-sysc: Use of_property_present()

Link: https://lore.kernel.org/r/7hcyljarit.fsf@baylibre.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2024-09-05 14:11:38 +00:00
Arnd Bergmann
742d980809 i.MX drivers changes for 6.12:
- A couple of imx-weim bus driver changes from Wu Bo to support compile
   test and use devm_clk_get_enabled() helper to clean up code a bit
 -----BEGIN PGP SIGNATURE-----
 
 iQFIBAABCgAyFiEEFmJXigPl4LoGSz08UFdYWoewfM4FAmbYQlAUHHNoYXduZ3Vv
 QGtlcm5lbC5vcmcACgkQUFdYWoewfM6C/gf/eWvecmB7fjdWujoUGmpehSdtxUrT
 hHAD9wVs9MoU1oUh50tUOlHPiQ1qPY1q8OvT/M0IUkRLgAeHjTvXJERpTS7DAMw5
 kOwt3yvVDgTR6ggruqrg8H89UEoN8qmxREOx+zBgt5Olwvy7yXsAwS1a01w9150R
 F+d+5oJlRN+B/GJtf9Y5LVLNOOAWABiCe+ZA8szrILOEhb/NFMcz1DEsLu+aMX8P
 rkrahtwYtYm61w9ugstKvfZ++FPSFdoS1z5gwhjpPawwwPekLEdcRs/6pSBOUJvT
 1Yvy5mhafQR+lHZ1Cl7omMInULHfbzWjtahUzTkmiEkkDrxEopOKhj7R6Q==
 =UaVE
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmbZvBMACgkQYKtH/8kJ
 UidV+A/9FkgimpLTNcIqCCEAp1oi6q17HAexruJNZ9Ty9LUYbBZqJEWHKXTdzpqO
 xFZVaQFc2QuV8SQJ2a2A/TKGdBAtJkcO2MhizClJdkgYriWJ9iyk+5G1j9JDHSc+
 yJyCYvtvoS9feNIgPPO+LsCUV/KJujPVP/5NroIdaPqvrIKCSfsbFBUX08gXfZSe
 rpiO5PqGLwHcceBDfMilfIQzFePZpOqJZIjYbsLRl9Gj5adZh26B+B0Tw2hxynj/
 hIMAz8fKST/1zww/IjIGjcB86dK+fbTTtXjZjRT7AxI17Jhq9/r9iZD/qCu64KNA
 NE1G+n1Yi9OuOS2aAGAowgalHzZ08gXGsse56fGxTL7vkN0wSxntcitBihg82LX0
 dZYvn8u5WW/qWMe/k4Cq4lw+DeHHhSl2S99SdZDDT0C0zWZ1dP5Pnp0uj+KVOcto
 dLvPiz0jixAcOqpcw4qt3VBZTf0LLLBM94ZDL2SGnbMLTu3+6HXKkw74m9SJ7T9q
 iYSjEZIdQZRezp8oSPp2V/sfWtqQcj2udfcMqrnNZjUGGoPU+8hqJVbtmU31vgGf
 hz/Gok7aytH6w10CdNAUXbeSVcgKHSoRTlorA0LeY75LzptPORZuCrjEX+qpcjuo
 bShyvqxApJUXm61JJPsWGs0evFeZEtY8aMwq79CBmv0idIiyb2c=
 =+bbh
 -----END PGP SIGNATURE-----

Merge tag 'imx-drivers-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into soc/drivers

i.MX drivers changes for 6.12:

- A couple of imx-weim bus driver changes from Wu Bo to support compile
  test and use devm_clk_get_enabled() helper to clean up code a bit

* tag 'imx-drivers-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
  bus: imx-weim: change to use devm_clk_get_enabled() helper
  bus: imx-weim: support compile test

Link: https://lore.kernel.org/r/20240904143439.211552-1-shawnguo2@yeah.net
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2024-09-05 14:11:31 +00:00
Arnd Bergmann
311ef8837f Reset controller updates for v6.12
Use get_device()/put_device() to keep reset controller devices alive
 while their reset controls are acquired.
 Enable support for the Amlogic T7 SoC reset controller.
 Remove unused EyeQ reset bindings and add a reset controller driver
 to be instantiated as auxiliary device by the EyeQ clock driver.
 Fix OF node leaks in the k210 and berlin probe() error paths.
 Add some simplifications and cleanup in the core, lcp18xx driver, and
 uniphier bindings.
 -----BEGIN PGP SIGNATURE-----
 
 iI0EABYIADUWIQRRO6F6WdpH1R0vGibVhaclGDdiwAUCZtg4SBcccC56YWJlbEBw
 ZW5ndXRyb25peC5kZQAKCRDVhaclGDdiwI3XAP4voAnbJS7rvnqv9zr/V0sXM2ml
 UORkWFiRVDVCavLxUwEAy/zDc3ZtcPSx64PE0o6t1Ol8+i2nqivqWUR3dj9WUg4=
 =qXYX
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmbZvA0ACgkQYKtH/8kJ
 UifHRA/8D7dtCmEKxOdxAIlrntPr2J3kXLA8YsOEH8aWvtJa6UU5yLdKnLOAqZ/u
 wiE41oJvcKE7CUphJqGqeOnjHp6j5Vnlb8aRGtwxomBLndxymMiIfYUI7Xe6vuHK
 qod6b7/dizqoOhzfa5gkLptRf36tMc4UgXuAS8gOhMe/O7BjBAg2UBSijggSZLOC
 g36jJ4eqknp/Vuy+o4B3yYhGm4RpoSbetTiqBulkO41PW0xE+p3h/YcHOYl9CJ6X
 3waabEe1/YxHqD+KSDyYQspuwrZdVOctS+DOuUoJsWOls/+n93EftRlzm4GT+5Y4
 Ik00sGzC6+p/8V+ecw/4e9kRbTjzAXOaVPTQoc5gIrweaOhUHCovukUQ+b5vcRRs
 s8nYfoq4GWzYg59PteCnss4iflbFxuwhKBqrg/ByQ7T8s/EbbwEjKZ3JqVup4Hv8
 4go8EVqad60ILwHkmPub8FsnjiyOfkgJfWhS2TxgxRAC5OLqLVQF0asp+gGaKCRJ
 xv+Gf8JjDTw09YMW+aWRNsW+7Tg4e27S3KUw18LshFKlBv9+oRsOeAKRKf2z62Nz
 0MO1peFHW2tdMhcX6AnGeD9jZUQxHn6DpZvpsAJynvDt/lEAaE49HX+cZPDqBezz
 lXQR/g6uC7mY1gWelOGqOYIpBLU2ao+MJ58h0PMpH/+nGclUF5s=
 =NcTE
 -----END PGP SIGNATURE-----

Merge tag 'reset-for-v6.12' of git://git.pengutronix.de/pza/linux into soc/drivers

Reset controller updates for v6.12

Use get_device()/put_device() to keep reset controller devices alive
while their reset controls are acquired.
Enable support for the Amlogic T7 SoC reset controller.
Remove unused EyeQ reset bindings and add a reset controller driver
to be instantiated as auxiliary device by the EyeQ clock driver.
Fix OF node leaks in the k210 and berlin probe() error paths.
Add some simplifications and cleanup in the core, lcp18xx driver, and
uniphier bindings.

* tag 'reset-for-v6.12' of git://git.pengutronix.de/pza/linux:
  reset: eyeq: add platform driver
  Revert "dt-bindings: reset: mobileye,eyeq5-reset: add bindings"
  reset: reset-meson: Add support for Amlogic T7 SoC reset controller
  dt-bindings: reset: Add Amlogic T7 reset controller
  reset: core: add get_device()/put_device on rcdev
  reset: lpc18xx: simplify with devm_clk_get_enabled()
  reset: lpc18xx: simplify with dev_err_probe()
  reset: simplify locking with guard()
  reset: k210: fix OF node leak in probe() error path
  reset: berlin: fix OF node leak in probe() error path
  dt-bindings: reset: socionext,uniphier-glue-reset: add top-level constraints

Link: https://lore.kernel.org/r/20240904103921.1479579-1-p.zabel@pengutronix.de
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2024-09-05 14:11:25 +00:00
Arnd Bergmann
639d5f6dee Integrator fixes for the v6.12 kernel cycle, some of_node_put():s
were missing in the SoC drivers.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEElDRnuGcz/wPCXQWMQRCzN7AZXXMFAmbW7PIACgkQQRCzN7AZ
 XXPZ9BAAjAABqgrENcKSTdxVeVbYywTE4Ar2ec7CONriOi7jb4dDvYdBQlcGhPPa
 1Katu4EiE5iU70dp2QoFRXO1Xn9kEMQ1QeIlwwoAAQ/QPVnr6S+nYjkZVeRm7H00
 vtwbp7F32u90z4V97YxzfiAkJmOsBdEyiOl2sSRuWZF6qMwlU1MOh8lh1P0caz2t
 mNCEgdrlCpZu9EvV9nqe+w0xqVs3E4+3fTSQhBk7TzZD0YpsQHQTq5KajPBkYqp7
 Pj1uedPonUfZPhtWAwKEBcHuRpZiEiRGUJe4biBZ8BIcjtUxKPtAPAwu54aZ6aDN
 FY6rQWd3OWA8qIqHELDgoLSWTocwwgoq4AdWwk70nFwqJRr7qKMeDAiwpplgGavE
 v3uUVJbMoi88l7R7vufsbRnUiNPB54V2zEnYlODT6p5HshoImAQdCVOG/w1OBPuN
 JuazK5pVJT6GIPvpuYJ6W7bezgyiManCLC3AWvCRWZ0bytIJXhtKFIf4fD0QXbqp
 jL1HxefBFLEBuvb8F9YBcYTmoq8Y/P/uTeaFberiadAkl+6xshsMtQ5Q7hK5YObx
 lvYgZ0cnbAArAevvh5tJE7oi5f4tixXA00FrMClutSj2RZpIlL26FusFVj9ot2sk
 ZlhoTt4SeShO3yfCkeRl5P7kgbrsxaOkKO8OjRs/OXHS/tQcTK4=
 =vbJH
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmbZvAIACgkQYKtH/8kJ
 Uif/bg/9ES2ggYaEPchPe9SD5O/lcS66vvb6QLwMYGoyC8jHy9aJNT8PAldl/VKv
 7yaQMID3AcDiZ7xnfn1QRbagYYklBxyPiwvMtRuHVhbJx/FyO9AKz1tUar9ALuoi
 XlFlWMIOWV44L4DtSFOVnyj/h5jOd+xZWBpq1+ZXsh412IdOSZY1diep87bdtGII
 UF0Cgc7oLrdNfqKLhJ+VX7+f0AnuRdYbA5rkAZY+gPb+ylOnlVjnO7puLOtPvjNP
 qRlePElYL4cGjorYqfpmRPVoNCbghyT850OBQbsp2udTF3rHBgAbtmr4GdWtOdBw
 uACH/4VxMyvmYDSJHvIw0Dn496grRyzY22981Cf6/VlFzSTF23+9yvpfSFucuPU3
 07NbdDKKmwYOD4dwgqOmNBcX+CDyR92o/JZ9wTrIXzJWVzoIVKjjm+YLRlugkzRE
 Om4xNnOeWSnUJRlbIEwRF+2QXW7SvSPBrKG7yKqPT7ulaid++Cr1mDRfF0Xr6fMs
 RL7KU89OzDNojlaOaENaEN6zb8mgbFEHWcNly69tUBZsdQ2f4w/nYFYVhnW7hCRt
 rfJsFt1fbfywR9WZWr9U1nl6nl1ZDKMSRwMImA4TI2x8Ahc2WkMuc7aDHXGnzncY
 H7K02wfx/PmzOgzCtlDlZZGli0YQzhKLuXfKqn4yd85fBQZKpus=
 =OdBY
 -----END PGP SIGNATURE-----

Merge tag 'integrator-v6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator into soc/drivers

Integrator fixes for the v6.12 kernel cycle, some of_node_put():s
were missing in the SoC drivers.

* tag 'integrator-v6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator:
  bus: integrator-lm: fix OF node leak in probe()
  ARM: versatile: fix OF node leak in CPUs prepare

Link: https://lore.kernel.org/r/CACRpkdahXECZXWA5uv=SZtkzU0E++fQj7QWK8kYuH0-asLUPqg@mail.gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2024-09-05 14:11:14 +00:00
Slark Xiao
84a5ae5b23 bus: mhi: host: pci_generic: Enable EDL trigger for Foxconn modems
All Foxconn modems support generic EDL trigger to flash the firmware.
Hence, enable the EDL trigger using mhi_pci_dev_info::edl_trigger.

Signed-off-by: Slark Xiao <slark_xiao@163.com>
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Link: https://lore.kernel.org/r/20240725022941.65948-2-slark_xiao@163.com
[mani: Reworded the subject and description]
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
2024-09-05 19:38:01 +05:30
Slark Xiao
a7bc66fe80 bus: mhi: host: pci_generic: Update EDL firmware path for Foxconn modems
Foxconn uses a unique firmware for their MHI based modems. So the generic
firmware from Qcom won't work. Hence, update the EDL firmware path to
include the 'foxconn' subdirectory based on the modem SoC so that the
Foxconn specific firmware could be used.

Respective firmware will be upstreamed to linux-firmware repo.

Cc: stable@vger.kernel.org # 6.11
Fixes: bf30a75e6e ("bus: mhi: host: Add support for Foxconn SDX72 modems")
Signed-off-by: Slark Xiao <slark_xiao@163.com>
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Link: https://lore.kernel.org/r/20240725022941.65948-1-slark_xiao@163.com
[mani: Reworded the subject and description]
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
2024-09-05 19:37:26 +05:30
Puranjay Mohan
c060f93253 arm64: stacktrace: fix the usage of ftrace_graph_ret_addr()
ftrace_graph_ret_addr() takes an 'idx' integer pointer that is used to
optimize the stack unwinding process. arm64 currently passes `NULL` for
this parameter which stops it from utilizing these optimizations.

Further, the current code for ftrace_graph_ret_addr() will just return
the passed in return address if it is NULL which will break this usage.

Pass a valid integer pointer to ftrace_graph_ret_addr() similar to
x86_64's stack unwinder.

Signed-off-by: Puranjay Mohan <puranjay@kernel.org>
Fixes: 29c1c24a27 ("function_graph: Fix up ftrace_graph_ret_addr()")
Acked-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Acked-by: Will Deacon <will@kernel.org>
Reviewed-by: Mark Rutland <mark.rutland@arm.com>
Tested-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Link: https://lore.kernel.org/r/20240618162342.28275-1-puranjay@kernel.org
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2024-09-05 15:03:35 +01:00
Maciej Fijalkowski
6b083650a3 xsk: Bump xsk_queue::queue_empty_descs in xp_can_alloc()
We have STAT_FILL_EMPTY test case in xskxceiver that tries to process
traffic with fill queue being empty which currently fails for zero copy
ice driver after it started to use xsk_buff_can_alloc() API. That is
because xsk_queue::queue_empty_descs is currently only increased from
alloc APIs and right now if driver sees that xsk_buff_pool will be
unable to provide the requested count of buffers, it bails out early,
skipping calls to xsk_buff_alloc{_batch}().

Mentioned statistic should be handled in xsk_buff_can_alloc() from the
very beginning, so let's add this logic now. Do it by open coding
xskq_cons_has_entries() and bumping queue_empty_descs in the middle when
fill queue currently has no entries.

Signed-off-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Magnus Karlsson <magnus.karlsson@intel.com>
Link: https://lore.kernel.org/bpf/20240904162808.249160-1-maciej.fijalkowski@intel.com
2024-09-05 15:56:49 +02:00
Paolo Abeni
22d6adac5b Merge branch 'add-driver-for-motorcomm-yt8821-2-5g-ethernet-phy'
Frank Sae says:

====================
Add driver for Motorcomm yt8821 2.5G ethernet phy

yt8521 and yt8531s as Gigabit transceiver use bit15:14(bit9 reserved
default 0) as phy speed mask, yt8821 as 2.5G transceiver uses bit9 bit15:14
as phy speed mask.

Be compatible to yt8821, reform phy speed mask and phy speed macro.

Based on update above, add yt8821 2.5G phy driver.
====================

Link: https://patch.msgid.link/20240901083526.163784-1-Frank.Sae@motor-comm.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2024-09-05 15:21:14 +02:00
Frank Sae
b671105b88 net: phy: Add driver for Motorcomm yt8821 2.5G ethernet phy
Add a driver for the motorcomm yt8821 2.5G ethernet phy. Verified the
driver on BPI-R3(with MediaTek MT7986(Filogic 830) SoC) development board,
which is developed by Guangdong Bipai Technology Co., Ltd..

yt8821 2.5G ethernet phy works in AUTO_BX2500_SGMII or FORCE_BX2500
interface, supports 2.5G/1000M/100M/10M speeds, and wol(magic package).

Signed-off-by: Frank Sae <Frank.Sae@motor-comm.com>
Reviewed-by: Sai Krishna <saikrishnag@marvell.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2024-09-05 15:21:12 +02:00
Frank Sae
8d878c87b5 net: phy: Optimize phy speed mask to be compatible to yt8821
yt8521 and yt8531s as Gigabit transceiver use bit15:14(bit9 reserved
default 0) as phy speed mask, yt8821 as 2.5G transceiver uses bit9 bit15:14
as phy speed mask.

Be compatible to yt8821, reform phy speed mask and phy speed macro.

Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Frank Sae <Frank.Sae@motor-comm.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2024-09-05 15:21:12 +02:00
Thomas Weißschuh
000f6d588a of: address: Report error on resource bounds overflow
The members "start" and "end" of struct resource are of type
"resource_size_t" which can be 32bit wide.
Values read from OF however are always 64bit wide.
Avoid silently truncating the value and instead return an error value.

This can happen on real systems when the DT was created for a
PAE-enabled kernel and a non-PAE kernel is actually running.
For example with an arm defconfig and "qemu-system-arm -M virt".

Link: https://bugs.launchpad.net/qemu/+bug/1790975
Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
Tested-by: Nam Cao <namcao@linutronix.de>
Reviewed-by: Nam Cao <namcao@linutronix.de>
Link: https://lore.kernel.org/r/20240905-of-resource-overflow-v1-1-0cd8bb92cc1f@linutronix.de
Cc: stable@vger.kernel.org
Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
2024-09-05 08:19:47 -05:00
Paolo Abeni
d0c4dd9f7c linux-can-next-for-6.12-20240904-2
-----BEGIN PGP SIGNATURE-----
 
 iQFHBAABCgAxFiEEUEC6huC2BN0pvD5fKDiiPnotvG8FAmbYV0kTHG1rbEBwZW5n
 dXRyb25peC5kZQAKCRAoOKI+ei28by1LB/sHoXO3xuCLnt8fWe0EgbukmuXY93n+
 vy2A4FzxS3Zg2M2Floc1k5gY5QNPE6IfpZoZnwn21L6KdO4b4Nkancr3jo8YL09O
 o4v2mcGNWmPIx8t63ni3TLe/SfuxFRlEidfVdGLWhNDygtC6QgUdnozqi6ssD0UY
 jHAKFgclgnx9kU6+v4/isvYEQOTauTjwdAUqITeN17ZLC5KJ44Os4WOIF0XSXrGi
 /LTHtbfBZtVxv6F8kIc8vh9/WrdnqluL9RaZq+bt/tZNkqwK+BPkT0lWsJ2vCinn
 arEORIDCYCv75trakUwnSuPZVOAN6FS2Xe2Qmd3IVAwEvX8aK8vf9lKO
 =PtSf
 -----END PGP SIGNATURE-----

Merge tag 'linux-can-next-for-6.12-20240904-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can-next

Marc Kleine-Budde says:

====================
pull-request: can-next 2024-09-04-2

this is a pull request of 18 patches for net-next/master.

All 18 patches add support for CAN-FD IP core found on Rockchip
RK3568.

The first patch is co-developed by Elaine Zhang and me and adds DT
bindings documentation.

The remaining 17 patches are by me and add the driver in several
stages.

linux-can-next-for-6.12-20240904-2

* tag 'linux-can-next-for-6.12-20240904-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can-next:
  can: rockchip_canfd: add support for CAN_CTRLMODE_BERR_REPORTING
  can: rockchip_canfd: add support for CAN_CTRLMODE_LOOPBACK
  can: rockchip_canfd: add hardware timestamping support
  can: rockchip_canfd: enable full TX-FIFO depth of 2
  can: rockchip_canfd: prepare to use full TX-FIFO depth
  can: rockchip_canfd: add stats support for errata workarounds
  can: rockchip_canfd: rkcanfd_get_berr_counter_corrected(): work around broken {RX,TX}ERRORCNT register
  can: rockchip_canfd: implement workaround for erratum 12
  can: rockchip_canfd: implement workaround for erratum 6
  can: rockchip_canfd: add TX PATH
  can: rockchip_canfd: rkcanfd_register_done(): add warning for erratum 5
  can: rockchip_canfd: rkcanfd_handle_rx_int_one(): implement workaround for erratum 5: check for empty FIFO
  can: rockchip_canfd: add notes about known issues
  can: rockchip_canfd: add support for rk3568v3
  can: rockchip_canfd: add quirk for broken CAN-FD support
  can: rockchip_canfd: add quirks for errata workarounds
  can: rockchip_canfd: add driver for Rockchip CAN-FD controller
  dt-bindings: can: rockchip_canfd: add rockchip CAN-FD controller
====================

Link: https://patch.msgid.link/20240904130256.1965582-1-mkl@pengutronix.de
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2024-09-05 15:18:10 +02:00
Ingo Franzki
992b706680 s390/sha3: Fix SHA3 selftests failures
Since commit "s390/sha3: Support sha3 performance enhancements"
the selftests of the sha3_256_s390 and sha3_512_s390 kernel digests
sometimes fail with:

  alg: shash: sha3-256-s390 test failed (wrong result) on test vector 3,
              cfg="import/export"
  alg: self-tests for sha3-256 using sha3-256-s390 failed (rc=-22)

or with

  alg: ahash: sha3-256-s390 test failed (wrong result) on test vector 3,
              cfg="digest misaligned splits crossing pages"
  alg: self-tests for sha3-256 using sha3-256-s390 failed (rc=-22)

The first failure is because the newly introduced context field
'first_message_part' is not copied during export and import operations.
Because of that the value of 'first_message_part' is more or less random
after an import into a newly allocated context and may or may not fit to
the state of the imported SHA3 operation, causing an invalid hash when it
does not fit.

Save the 'first_message_part' field in the currently unused field 'partial'
of struct sha3_state, even though the meaning of 'partial' is not exactly
the same as 'first_message_part'. For the caller the returned state blob
is opaque and it must only be ensured that the state can be imported later
on by the module that exported it.

The second failure is when on entry of s390_sha_update() the flag
'first_message_part' is on, and kimd is called in the first 'if (index)'
block as well as in the second 'if (len >= bsize)' block. In this case,
the 'first_message_part' is turned off after the first kimd, but the
function code incorrectly retains the NIP flag. Reset the NIP flag after
the first kimd unconditionally besides turning 'first_message_part' off.

Reported-by: Marc Hartmayer <mhartmay@linux.ibm.com>
Fixes: 88c02b3f79 ("s390/sha3: Support sha3 performance enhancements")
Reviewed-by: Harald Freudenberger <freude@linux.ibm.com>
Reviewed-by: Holger Dengler <dengler@linux.ibm.com>
Reviewed-by: Joerg Schmidbauer <jschmidb@de.ibm.com>
Signed-off-by: Ingo Franzki <ifranzki@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
2024-09-05 15:17:23 +02:00
Harald Freudenberger
fd197556ee s390/pkey: Add AES xts and HMAC clear key token support
Add support for deriving protected keys from clear key token for
AES xts and HMAC keys via PCKMO instruction. Add support for
protected key generation and unwrap of protected key tokens for
these key types. Furthermore 4 new sysfs attributes are introduced:

- /sys/devices/virtual/misc/pkey/protkey/protkey_aes_xts_128
- /sys/devices/virtual/misc/pkey/protkey/protkey_aes_xts_256
- /sys/devices/virtual/misc/pkey/protkey/protkey_hmac_512
- /sys/devices/virtual/misc/pkey/protkey/protkey_hmac_1024

Signed-off-by: Harald Freudenberger <freude@linux.ibm.com>
Reviewed-by: Ingo Franzki <ifranzki@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
2024-09-05 15:17:23 +02:00
Harald Freudenberger
8fe32188f9 s390/cpacf: Add MSA 10 and 11 new PCKMO functions
Add the defines for the new PCKMO functions covering
MSA 10 (AES XTS "double" keys) and MSA 11 (HMAC keys)
support.

Signed-off-by: Harald Freudenberger <freude@linux.ibm.com>
Reviewed-by: Ingo Franzki <ifranzki@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
2024-09-05 15:17:23 +02:00
Gerald Schaefer
131b8db785 s390/mm: Add cond_resched() to cmm_alloc/free_pages()
Adding/removing large amount of pages at once to/from the CMM balloon
can result in rcu_sched stalls or workqueue lockups, because of busy
looping w/o cond_resched().

Prevent this by adding a cond_resched(). cmm_free_pages() holds a
spin_lock while looping, so it cannot be added directly to the existing
loop. Instead, introduce a wrapper function that operates on maximum 256
pages at once, and add it there.

Signed-off-by: Gerald Schaefer <gerald.schaefer@linux.ibm.com>
Reviewed-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
2024-09-05 15:17:23 +02:00
Thomas Richter
0114009953 s390/pai_ext: Update PAI extension 1 counters
Update the internal array of PAI extension 1 NNPA
counter string table to support specialized processor
instrumentation assist instructions.

Signed-off-by: Thomas Richter <tmricht@linux.ibm.com>
Acked-by: Sumanth Korikkar <sumanthk@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
2024-09-05 15:17:23 +02:00
Thomas Richter
4ae48555d0 s390/pai_crypto: Add support for MSA 10 and 11 pai counters
Update the internal array of PAI crypto counter string
table with new counters supported with Message Security
Assist extension (MSA) 10 and MSA 11.

Signed-off-by: Thomas Richter <tmricht@linux.ibm.com>
Acked-by: Sumanth Korikkar <sumanthk@linux.ibm.com>
Acked-by: Finn Callies <fcallies@linux.ibm.com>
Tested-by: Finn Callies <fcallies@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
2024-09-05 15:17:23 +02:00
Takashi Sakamoto
7519033f31 firewire: core: use WARN_ON_ONCE() to avoid superfluous dumps
It is enough to notify programming mistakes to programmers just once.

Suggested-by: Takashi Iwai <tiwai@suse.de>
Link: https://lore.kernel.org/r/20240905131029.6433-1-o-takashi@sakamocchi.jp
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
2024-09-05 22:10:29 +09:00
Li Zetao
92f4368347 pinctrl: Remove redundant null pointer checks in pinctrl_remove_device_debugfs()
Since the debugfs_create_dir() never returns a null pointer, checking
the return value for a null pointer is redundant, and using IS_ERR is
safe enough.

Signed-off-by: Li Zetao <lizetao1@huawei.com>
Link: https://lore.kernel.org/20240903143812.2005071-1-lizetao1@huawei.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2024-09-05 15:09:47 +02:00
Linus Walleij
dbf0e9d911 pinctrl: renesas: Updates for v6.12 (take two)
- Miscellaneous fixes and improvements.
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQQ9qaHoIs/1I4cXmEiKwlD9ZEnxcAUCZtcfEgAKCRCKwlD9ZEnx
 cAFWAP9aEn3SLVWHs9B8YbeGRST/ml7W4Vl0/UXg8Eth5ChT8AD/Wx8y3IUVzmsZ
 vLycxQdzSB79ajexmQzMyVy5Ed3EHQc=
 =Is1J
 -----END PGP SIGNATURE-----

Merge tag 'renesas-pinctrl-for-v6.12-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers into devel

pinctrl: renesas: Updates for v6.12 (take two)

  - Miscellaneous fixes and improvements.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2024-09-05 15:08:12 +02:00
Zhang Zekun
4e26ddab82 gpio: xilinx: Use helper function devm_clk_get_optional_enabled()
devm_clk_get_optional() and clk_prepare_enable() can be replaced by helper
function devm_clk_get_optional_enabled(). Let's simplify code with use of
devm_clk_get_optional_enabled() and avoid calling clk_disable_unprepare().

Signed-off-by: Zhang Zekun <zhangzekun11@huawei.com>
Link: https://lore.kernel.org/r/20240904092311.9544-5-zhangzekun11@huawei.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
2024-09-05 15:04:44 +02:00
Zhang Zekun
162b169656 gpio: mb86s7x: Use helper function devm_clk_get_optional_enabled()
devm_clk_get_optional() and clk_prepare_enable() can be replaced by helper
function devm_clk_get_optional_enabled(). Let's simplify code with use of
devm_clk_get_optional_enabled() and avoid calling clk_disable_unprepare().

Signed-off-by: Zhang Zekun <zhangzekun11@huawei.com>
Link: https://lore.kernel.org/r/20240904092311.9544-4-zhangzekun11@huawei.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
2024-09-05 15:04:44 +02:00
Zhang Zekun
8abc67adc9 gpio: lpc18xx: Use helper function devm_clk_get_enabled()
devm_clk_get() and clk_prepare_enable() can be replaced by helper
function devm_clk_get_enabled(). Let's use devm_clk_get_enabled() to
simplify code and avoid calling clk_disable_unprepare().

Signed-off-by: Zhang Zekun <zhangzekun11@huawei.com>
Link: https://lore.kernel.org/r/20240904092311.9544-3-zhangzekun11@huawei.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
2024-09-05 15:04:44 +02:00
Zhang Zekun
da426eda1b gpio: cadence: Use helper function devm_clk_get_enabled()
devm_clk_get() and clk_prepare_enable() can be replaced by helper
function devm_clk_get_enabled(). Let's use devm_clk_get_enabled() to
simplify code and avoid calling clk_disable_unprepare().

Signed-off-by: Zhang Zekun <zhangzekun11@huawei.com>
Link: https://lore.kernel.org/r/20240904092311.9544-2-zhangzekun11@huawei.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
2024-09-05 15:04:44 +02:00
Nícolas F. R. A. Prado
05144ab7b7 kselftest: dt: Ignore nodes that have ancestors disabled
Filter out nodes that have one of its ancestors disabled as they aren't
expected to probe.

This removes the following false-positive failures on the
sc7180-trogdor-lazor-limozeen-nots-r5 platform:

/soc@0/geniqup@8c0000/i2c@894000/proximity@28
/soc@0/geniqup@ac0000/spi@a90000/ec@0
/soc@0/remoteproc@62400000/glink-edge/apr
/soc@0/remoteproc@62400000/glink-edge/apr/service@3
/soc@0/remoteproc@62400000/glink-edge/apr/service@4
/soc@0/remoteproc@62400000/glink-edge/apr/service@4/clock-controller
/soc@0/remoteproc@62400000/glink-edge/apr/service@4/dais
/soc@0/remoteproc@62400000/glink-edge/apr/service@7
/soc@0/remoteproc@62400000/glink-edge/apr/service@7/dais
/soc@0/remoteproc@62400000/glink-edge/apr/service@8
/soc@0/remoteproc@62400000/glink-edge/apr/service@8/routing
/soc@0/remoteproc@62400000/glink-edge/fastrpc
/soc@0/remoteproc@62400000/glink-edge/fastrpc/compute-cb@3
/soc@0/remoteproc@62400000/glink-edge/fastrpc/compute-cb@4
/soc@0/remoteproc@62400000/glink-edge/fastrpc/compute-cb@5
/soc@0/spmi@c440000/pmic@0/pon@800/pwrkey

Fixes: 14571ab1ad ("kselftest: Add new test for detecting unprobed Devicetree devices")
Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
Link: https://lore.kernel.org/r/20240729-dt-kselftest-parent-disabled-v2-1-d7a001c4930d@collabora.com
Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
2024-09-05 07:54:16 -05:00
Fabio Estevam
c65d679667 dt-bindings: lcdif: Document the dmas/dma-names properties
i.MX28 has an RX DMA channel associated with the LCDIF controller.

Document the 'dmas' and 'dma-names' properties to fix the following
dt-schema warnings:

lcdif@80030000: 'dma-names', 'dmas' do not match any of the regexes: 'pinctrl-[0-9]+'

Signed-off-by: Fabio Estevam <festevam@denx.de>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20240904104027.2065621-1-festevam@gmail.com
Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
2024-09-05 07:54:16 -05:00
Animesh Agarwal
0416f00cb0 dt-bindings: watchdog: nxp,lpc1850-wdt: Convert bindings to dtschema
Convert the NXP LPC18xx Watchdog Timer bindings to yaml format.

Cc: Daniel Baluta <daniel.baluta@nxp.com>
Signed-off-by: Animesh Agarwal <animeshagarwal28@gmail.com>
Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
Link: https://lore.kernel.org/r/20240814061210.56213-1-animeshagarwal28@gmail.com
Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
2024-09-05 07:54:16 -05:00
Frank Li
90e09575d4 dt-bindings: watchdog: convert ziirave-wdt.txt to yaml
Convert ziirave-wdt.txt to yaml format.

Additional change:
- Add i2c node in example.
- Add ref to watchdog.yaml

Fix below warning:
arch/arm64/boot/dts/freescale/imx8mq-zii-ultra-rmb3.dtb: /soc@0/bus@30800000/i2c@30a40000/watchdog@38:
	failed to match any schema with compatible: ['zii,rave-wdt']

Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
Signed-off-by: Frank Li <Frank.Li@nxp.com>
Link: https://lore.kernel.org/r/20240814161250.4017427-1-Frank.Li@nxp.com
Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
2024-09-05 07:54:16 -05:00
Jens Reidel
d9b5ca66b3 dt-bindings: input: qcom,pm8xxx-vib: Document PM6150 compatible
The PM6150 vibrator module is compatible with the PMI632 vibrator
module, document the PM6150 vibrator compatible as fallback for the
PMI632 vibrator.

Signed-off-by: Jens Reidel <adrian@travitia.xyz>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20240606181027.98537-2-adrian@travitia.xyz
Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
2024-09-05 07:54:16 -05:00
Xavier
e02147cb70 mm/slab: Optimize the code logic in find_mergeable()
We can first assess the flags, if it's unmergeable, there's no need
to calculate the size and align.

Signed-off-by: Xavier <xavier_qy@163.com>
Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
2024-09-05 14:42:23 +02:00
Michael Ellerman
a5a670df1d macintosh/via-pmu: register_pmu_pm_ops() can be __init
register_pmu_pm_ops() is only called at init time, via
device_initcall(), so can be marked __init. The driver can't be built as
a module.

Reviewed-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20240821082101.877438-1-mpe@ellerman.id.au
2024-09-05 22:30:18 +10:00
Michael Ellerman
5b4bc44a48 powerpc: Stop using no_llseek
Since commit 868941b144 ("fs: remove no_llseek"), no_llseek() is
simply defined to be NULL, and a NULL llseek means seeking is
unsupported.

So for statically defined file_operations, such as all these, there's no
need or benefit to set llseek = no_llseek.

Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20240903111951.141376-1-mpe@ellerman.id.au
2024-09-05 22:30:14 +10:00
Michael Ellerman
29dbb98449 powerpc/64s: Remove the "fast endian switch" syscall
The non-standard "fast endian switch" syscall was added in 2008[1],
but was never widely used. It was disabled by default in 2017[2], and
there's no evidence it's ever been used since.

Remove it entirely.

A normal endian switch syscall was added in 2015[3].

[1]: 745a14cc26 ("[POWERPC] Add fast little-endian switch system call")
[2]: 529d235a0e ("powerpc: Add a proper syscall for switching endianness")
[3]: 727f13616c ("powerpc: Disable the fast-endian switch syscall by default")

Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20240823070830.1269033-1-mpe@ellerman.id.au
2024-09-05 22:30:05 +10:00
Michael Ellerman
87def77bb5 powerpc/mm/64s: Restrict THP to Radix or HPT w/64K pages
Transparent hugepages (THP) are not supported when using the Hash Page
Table (HPT) MMU with 4K pages.

Currently a HPT-only 4K kernel still allows THP to be enabled, which
is misleading.

Add restrictions to the PPC_THP symbol so that if the kernel is
configured with 4K pages and only the HPT MMU (no Radix), then THP is
disabled.

Note that it's still possible to build a combined Radix/HPT kernel with 4K
pages, which does allow THP to be enabled at build time. As such the HPT
code still needs to provide some THP related symbols, to allow the build
to succeed, but those code paths are never run. See the stubs in
arch/powerpc/include/asm/book3s/64/hash-4k.h.

Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20240823032911.1238471-2-mpe@ellerman.id.au
2024-09-05 22:29:57 +10:00
Michael Ellerman
f61d413a1c powerpc/mm/64s: Move THP reqs into a separate symbol
Move the Kconfig symbols related to transparent hugepages (THP) under a
separate config symbol, separate from CONFIG_PPC_BOOK3S_64.

The new symbol is automatically enabled if CONFIG_PPC_BOOK3S_64 is
enabled, so there is no behaviour change, except for the existence of
the new PPC_THP symbol.

Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20240823032911.1238471-1-mpe@ellerman.id.au
2024-09-05 22:29:57 +10:00
Michael Ellerman
8589cdf0cf powerpc/64s: Make mmu_hash_ops __ro_after_init
The mmu_hash_ops are only assigned to during boot, so mark them
__ro_after_init to prevent any further modification.

Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20240821080745.872151-1-mpe@ellerman.id.au
2024-09-05 22:29:31 +10:00
Abhishek Dubey
19f1bc3fb5 powerpc: Replace kretprobe code with rethook on powerpc
This is an adaptation of commit f3a112c0c4 ("x86,rethook,kprobes:
Replace kretprobe with rethook on x86") to powerpc.

Rethook follows the existing kretprobe implementation, but separates
it from kprobes so that it can be used by fprobe (ftrace-based
function entry/exit probes). As such, this patch also enables fprobe
to work on powerpc. The only other change compared to the existing
kretprobe implementation is doing the return address fixup in
arch_rethook_fixup_return().

Reference to other archs:
commit b57c2f1240 ("riscv: add riscv rethook implementation")
commit 7b0a096436 ("LoongArch: Replace kretprobe with rethook")

Note:
=====

In future, rethook will be only for kretprobe, and kretprobe
will be replaced by fprobe.

https://lore.kernel.org/all/172000134410.63468.13742222887213469474.stgit@devnote2/

We will	adapt the above	implementation for powerpc once its upstream.
Until then, we can have	this implementation of rethook to serve
current	kretprobe usecases.

Reviewed-by: Naveen Rao <naveen@kernel.org>
Signed-off-by: Abhishek Dubey <adubey@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20240830113131.7597-1-adubey@linux.ibm.com
2024-09-05 22:25:36 +10:00
Huang Xiaojia
6f2683274d powerpc: pseries: Constify struct kobj_type
'struct kobj_type' is not modified. It is only used in kobject_init()
which takes a 'const struct kobj_type *ktype' parameter.

Constifying this structure moves some data to a read-only section,
so increase over all security.

On a x86_64, compiled with ppc64 defconfig:
Before:
======
   text	   data	    bss	    dec	    hex	filename
   1885	    368	     16	   2269	    8dd	arch/powerpc/platforms/pseries/vas-sysfs.o

After:
======
   text	   data	    bss	    dec	    hex	filename
   1981	    272	     16	   2269	    8dd	arch/powerpc/platforms/pseries/vas-sysfs.o

Signed-off-by: Huang Xiaojia <huangxiaojia2@huawei.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20240826150957.3500237-3-huangxiaojia2@huawei.com
2024-09-05 22:25:36 +10:00
Huang Xiaojia
7492ca369e powerpc: powernv: Constify struct kobj_type
'struct kobj_type' is not modified. It is only used in kobject_init()
which takes a 'const struct kobj_type *ktype' parameter.

Constifying this structure moves some data to a read-only section,
so increase over all security.

On a x86_64, compiled with ppc64 defconfig:
Before:
======
   text	   data	    bss	    dec	    hex	filename
   3775	    256	      8	   4039	    fc7	arch/powerpc/platforms/powernv/opal-dump.o
   2679	    260	      8	   2947	    b83	arch/powerpc/platforms/powernv/opal-elog.o

After:
======
   text	   data	    bss	    dec	    hex	filename
   3823	    208	      8	   4039	    fc7	arch/powerpc/platforms/powernv/opal-dump.o
   2727	    212	      8	   2947	    b83	arch/powerpc/platforms/powernv/opal-elog.o

Signed-off-by: Huang Xiaojia <huangxiaojia2@huawei.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20240826150957.3500237-2-huangxiaojia2@huawei.com
2024-09-05 22:25:36 +10:00
Huang Xiaojia
7509c23770 powerpc: Constify struct kobj_type
'struct kobj_type' is not modified. It is only used in
kobject_init_and_add()/kobject_init() which takes
a 'const struct kobj_type *ktype' parameter.

Constifying this structure moves some data to a read-only section,
so increase over all security.

On a x86_64, compiled with ppc64 defconfig:
Before:
======
   text	   data	    bss	    dec	    hex	filename
   7145	    606	      0	   7751	   1e47	arch/powerpc/kernel/cacheinfo.o
   3663	    384	     16	   4063	    fdf	arch/powerpc/kernel/secvar-sysfs.o

After:
======
   text    data     bss     dec     hex filename
   7193	    558	      0	   7751	   1e47	arch/powerpc/kernel/cacheinfo.o
   3663	    384	     16	   4063	    fdf	arch/powerpc/kernel/secvar-sysfs.o

Signed-off-by: Huang Xiaojia <huangxiaojia2@huawei.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20240826150957.3500237-1-huangxiaojia2@huawei.com
2024-09-05 22:25:36 +10:00