Skip to content
  1. Aug 31, 2023
    • Florian Westphal's avatar
      net: fib: avoid warn splat in flow dissector · 8aae7625
      Florian Westphal authored
      New skbs allocated via nf_send_reset() have skb->dev == NULL.
      
      fib*_rules_early_flow_dissect helpers already have a 'struct net'
      argument but its not passed down to the flow dissector core, which
      will then WARN as it can't derive a net namespace to use:
      
       WARNING: CPU: 0 PID: 0 at net/core/flow_dissector.c:1016 __skb_flow_dissect+0xa91/0x1cd0
       [..]
        ip_route_me_harder+0x143/0x330
        nf_send_reset+0x17c/0x2d0 [nf_reject_ipv4]
        nft_reject_inet_eval+0xa9/0xf2 [nft_reject_inet]
        nft_do_chain+0x198/0x5d0 [nf_tables]
        nft_do_chain_inet+0xa4/0x110 [nf_tables]
        nf_hook_slow+0x41/0xc0
        ip_local_deliver+0xce/0x110
        ..
      
      Cc: Stanislav Fomichev <sdf@google.com>
      Cc: David Ahern <dsahern@kernel.org>
      Cc: Ido Schimmel <idosch@nvidia.com>
      Fixes: 812fa71f ("netfilter: Dissect flow after packet mangling")
      Link: https://bugzilla.kernel.org/show_bug.cgi?id=217826
      
      
      Signed-off-by: default avatarFlorian Westphal <fw@strlen.de>
      Reviewed-by: default avatarIdo Schimmel <idosch@nvidia.com>
      Reviewed-by: default avatarDavid Ahern <dsahern@kernel.org>
      Link: https://lore.kernel.org/r/20230830110043.30497-1-fw@strlen.de
      
      
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      8aae7625
    • Eric Dumazet's avatar
      net: read sk->sk_family once in sk_mc_loop() · a3e0fdf7
      Eric Dumazet authored
      
      
      syzbot is playing with IPV6_ADDRFORM quite a lot these days,
      and managed to hit the WARN_ON_ONCE(1) in sk_mc_loop()
      
      We have many more similar issues to fix.
      
      WARNING: CPU: 1 PID: 1593 at net/core/sock.c:782 sk_mc_loop+0x165/0x260
      Modules linked in:
      CPU: 1 PID: 1593 Comm: kworker/1:3 Not tainted 6.1.40-syzkaller #0
      Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/26/2023
      Workqueue: events_power_efficient gc_worker
      RIP: 0010:sk_mc_loop+0x165/0x260 net/core/sock.c:782
      Code: 34 1b fd 49 81 c7 18 05 00 00 4c 89 f8 48 c1 e8 03 42 80 3c 20 00 74 08 4c 89 ff e8 25 36 6d fd 4d 8b 37 eb 13 e8 db 33 1b fd <0f> 0b b3 01 eb 34 e8 d0 33 1b fd 45 31 f6 49 83 c6 38 4c 89 f0 48
      RSP: 0018:ffffc90000388530 EFLAGS: 00010246
      RAX: ffffffff846d9b55 RBX: 0000000000000011 RCX: ffff88814f884980
      RDX: 0000000000000102 RSI: ffffffff87ae5160 RDI: 0000000000000011
      RBP: ffffc90000388550 R08: 0000000000000003 R09: ffffffff846d9a65
      R10: 0000000000000002 R11: ffff88814f884980 R12: dffffc0000000000
      R13: ffff88810dbee000 R14: 0000000000000010 R15: ffff888150084000
      FS: 0000000000000000(0000) GS:ffff8881f6b00000(0000) knlGS:0000000000000000
      CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      CR2: 0000000020000180 CR3: 000000014ee5b000 CR4: 00000000003506e0
      DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
      Call Trace:
      <IRQ>
      [<ffffffff8507734f>] ip6_finish_output2+0x33f/0x1ae0 net/ipv6/ip6_output.c:83
      [<ffffffff85062766>] __ip6_finish_output net/ipv6/ip6_output.c:200 [inline]
      [<ffffffff85062766>] ip6_finish_output+0x6c6/0xb10 net/ipv6/ip6_output.c:211
      [<ffffffff85061f8c>] NF_HOOK_COND include/linux/netfilter.h:298 [inline]
      [<ffffffff85061f8c>] ip6_output+0x2bc/0x3d0 net/ipv6/ip6_output.c:232
      [<ffffffff852071cf>] dst_output include/net/dst.h:444 [inline]
      [<ffffffff852071cf>] ip6_local_out+0x10f/0x140 net/ipv6/output_core.c:161
      [<ffffffff83618fb4>] ipvlan_process_v6_outbound drivers/net/ipvlan/ipvlan_core.c:483 [inline]
      [<ffffffff83618fb4>] ipvlan_process_outbound drivers/net/ipvlan/ipvlan_core.c:529 [inline]
      [<ffffffff83618fb4>] ipvlan_xmit_mode_l3 drivers/net/ipvlan/ipvlan_core.c:602 [inline]
      [<ffffffff83618fb4>] ipvlan_queue_xmit+0x1174/0x1be0 drivers/net/ipvlan/ipvlan_core.c:677
      [<ffffffff8361ddd9>] ipvlan_start_xmit+0x49/0x100 drivers/net/ipvlan/ipvlan_main.c:229
      [<ffffffff84763fc0>] netdev_start_xmit include/linux/netdevice.h:4925 [inline]
      [<ffffffff84763fc0>] xmit_one net/core/dev.c:3644 [inline]
      [<ffffffff84763fc0>] dev_hard_start_xmit+0x320/0x980 net/core/dev.c:3660
      [<ffffffff8494c650>] sch_direct_xmit+0x2a0/0x9c0 net/sched/sch_generic.c:342
      [<ffffffff8494d883>] qdisc_restart net/sched/sch_generic.c:407 [inline]
      [<ffffffff8494d883>] __qdisc_run+0xb13/0x1e70 net/sched/sch_generic.c:415
      [<ffffffff8478c426>] qdisc_run+0xd6/0x260 include/net/pkt_sched.h:125
      [<ffffffff84796eac>] net_tx_action+0x7ac/0x940 net/core/dev.c:5247
      [<ffffffff858002bd>] __do_softirq+0x2bd/0x9bd kernel/softirq.c:599
      [<ffffffff814c3fe8>] invoke_softirq kernel/softirq.c:430 [inline]
      [<ffffffff814c3fe8>] __irq_exit_rcu+0xc8/0x170 kernel/softirq.c:683
      [<ffffffff814c3f09>] irq_exit_rcu+0x9/0x20 kernel/softirq.c:695
      
      Fixes: 7ad6848c ("ip: fix mc_loop checks for tunnels with multicast outer addresses")
      Reported-by: default avatarsyzbot <syzkaller@googlegroups.com>
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Reviewed-by: default avatarKuniyuki Iwashima <kuniyu@amazon.com>
      Link: https://lore.kernel.org/r/20230830101244.1146934-1-edumazet@google.com
      
      
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      a3e0fdf7
    • Eric Dumazet's avatar
      ipv4: annotate data-races around fi->fib_dead · fce92af1
      Eric Dumazet authored
      
      
      syzbot complained about a data-race in fib_table_lookup() [1]
      
      Add appropriate annotations to document it.
      
      [1]
      BUG: KCSAN: data-race in fib_release_info / fib_table_lookup
      
      write to 0xffff888150f31744 of 1 bytes by task 1189 on cpu 0:
      fib_release_info+0x3a0/0x460 net/ipv4/fib_semantics.c:281
      fib_table_delete+0x8d2/0x900 net/ipv4/fib_trie.c:1777
      fib_magic+0x1c1/0x1f0 net/ipv4/fib_frontend.c:1106
      fib_del_ifaddr+0x8cf/0xa60 net/ipv4/fib_frontend.c:1317
      fib_inetaddr_event+0x77/0x200 net/ipv4/fib_frontend.c:1448
      notifier_call_chain kernel/notifier.c:93 [inline]
      blocking_notifier_call_chain+0x90/0x200 kernel/notifier.c:388
      __inet_del_ifa+0x4df/0x800 net/ipv4/devinet.c:432
      inet_del_ifa net/ipv4/devinet.c:469 [inline]
      inetdev_destroy net/ipv4/devinet.c:322 [inline]
      inetdev_event+0x553/0xaf0 net/ipv4/devinet.c:1606
      notifier_call_chain kernel/notifier.c:93 [inline]
      raw_notifier_call_chain+0x6b/0x1c0 kernel/notifier.c:461
      call_netdevice_notifiers_info net/core/dev.c:1962 [inline]
      call_netdevice_notifiers_mtu+0xd2/0x130 net/core/dev.c:2037
      dev_set_mtu_ext+0x30b/0x3e0 net/core/dev.c:8673
      do_setlink+0x5be/0x2430 net/core/rtnetlink.c:2837
      rtnl_setlink+0x255/0x300 net/core/rtnetlink.c:3177
      rtnetlink_rcv_msg+0x807/0x8c0 net/core/rtnetlink.c:6445
      netlink_rcv_skb+0x126/0x220 net/netlink/af_netlink.c:2549
      rtnetlink_rcv+0x1c/0x20 net/core/rtnetlink.c:6463
      netlink_unicast_kernel net/netlink/af_netlink.c:1339 [inline]
      netlink_unicast+0x56f/0x640 net/netlink/af_netlink.c:1365
      netlink_sendmsg+0x665/0x770 net/netlink/af_netlink.c:1914
      sock_sendmsg_nosec net/socket.c:725 [inline]
      sock_sendmsg net/socket.c:748 [inline]
      sock_write_iter+0x1aa/0x230 net/socket.c:1129
      do_iter_write+0x4b4/0x7b0 fs/read_write.c:860
      vfs_writev+0x1a8/0x320 fs/read_write.c:933
      do_writev+0xf8/0x220 fs/read_write.c:976
      __do_sys_writev fs/read_write.c:1049 [inline]
      __se_sys_writev fs/read_write.c:1046 [inline]
      __x64_sys_writev+0x45/0x50 fs/read_write.c:1046
      do_syscall_x64 arch/x86/entry/common.c:50 [inline]
      do_syscall_64+0x41/0xc0 arch/x86/entry/common.c:80
      entry_SYSCALL_64_after_hwframe+0x63/0xcd
      
      read to 0xffff888150f31744 of 1 bytes by task 21839 on cpu 1:
      fib_table_lookup+0x2bf/0xd50 net/ipv4/fib_trie.c:1585
      fib_lookup include/net/ip_fib.h:383 [inline]
      ip_route_output_key_hash_rcu+0x38c/0x12c0 net/ipv4/route.c:2751
      ip_route_output_key_hash net/ipv4/route.c:2641 [inline]
      __ip_route_output_key include/net/route.h:134 [inline]
      ip_route_output_flow+0xa6/0x150 net/ipv4/route.c:2869
      send4+0x1e7/0x500 drivers/net/wireguard/socket.c:61
      wg_socket_send_skb_to_peer+0x94/0x130 drivers/net/wireguard/socket.c:175
      wg_socket_send_buffer_to_peer+0xd6/0x100 drivers/net/wireguard/socket.c:200
      wg_packet_send_handshake_initiation drivers/net/wireguard/send.c:40 [inline]
      wg_packet_handshake_send_worker+0x10c/0x150 drivers/net/wireguard/send.c:51
      process_one_work+0x434/0x860 kernel/workqueue.c:2600
      worker_thread+0x5f2/0xa10 kernel/workqueue.c:2751
      kthread+0x1d7/0x210 kernel/kthread.c:389
      ret_from_fork+0x2e/0x40 arch/x86/kernel/process.c:145
      ret_from_fork_asm+0x11/0x20 arch/x86/entry/entry_64.S:304
      
      value changed: 0x00 -> 0x01
      
      Reported by Kernel Concurrency Sanitizer on:
      CPU: 1 PID: 21839 Comm: kworker/u4:18 Tainted: G W 6.5.0-syzkaller #0
      
      Fixes: dccd9ecc ("ipv4: Do not use dead fib_info entries.")
      Reported-by: default avatarsyzbot <syzkaller@googlegroups.com>
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Reviewed-by: default avatarDavid Ahern <dsahern@kernel.org>
      Link: https://lore.kernel.org/r/20230830095520.1046984-1-edumazet@google.com
      
      
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      fce92af1
    • Eric Dumazet's avatar
      sctp: annotate data-races around sk->sk_wmem_queued · dc9511dd
      Eric Dumazet authored
      
      
      sk->sk_wmem_queued can be read locklessly from sctp_poll()
      
      Use sk_wmem_queued_add() when the field is changed,
      and add READ_ONCE() annotations in sctp_writeable()
      and sctp_assocs_seq_show()
      
      syzbot reported:
      
      BUG: KCSAN: data-race in sctp_poll / sctp_wfree
      
      read-write to 0xffff888149d77810 of 4 bytes by interrupt on cpu 0:
      sctp_wfree+0x170/0x4a0 net/sctp/socket.c:9147
      skb_release_head_state+0xb7/0x1a0 net/core/skbuff.c:988
      skb_release_all net/core/skbuff.c:1000 [inline]
      __kfree_skb+0x16/0x140 net/core/skbuff.c:1016
      consume_skb+0x57/0x180 net/core/skbuff.c:1232
      sctp_chunk_destroy net/sctp/sm_make_chunk.c:1503 [inline]
      sctp_chunk_put+0xcd/0x130 net/sctp/sm_make_chunk.c:1530
      sctp_datamsg_put+0x29a/0x300 net/sctp/chunk.c:128
      sctp_chunk_free+0x34/0x50 net/sctp/sm_make_chunk.c:1515
      sctp_outq_sack+0xafa/0xd70 net/sctp/outqueue.c:1381
      sctp_cmd_process_sack net/sctp/sm_sideeffect.c:834 [inline]
      sctp_cmd_interpreter net/sctp/sm_sideeffect.c:1366 [inline]
      sctp_side_effects net/sctp/sm_sideeffect.c:1198 [inline]
      sctp_do_sm+0x12c7/0x31b0 net/sctp/sm_sideeffect.c:1169
      sctp_assoc_bh_rcv+0x2b2/0x430 net/sctp/associola.c:1051
      sctp_inq_push+0x108/0x120 net/sctp/inqueue.c:80
      sctp_rcv+0x116e/0x1340 net/sctp/input.c:243
      sctp6_rcv+0x25/0x40 net/sctp/ipv6.c:1120
      ip6_protocol_deliver_rcu+0x92f/0xf30 net/ipv6/ip6_input.c:437
      ip6_input_finish net/ipv6/ip6_input.c:482 [inline]
      NF_HOOK include/linux/netfilter.h:303 [inline]
      ip6_input+0xbd/0x1b0 net/ipv6/ip6_input.c:491
      dst_input include/net/dst.h:468 [inline]
      ip6_rcv_finish+0x1e2/0x2e0 net/ipv6/ip6_input.c:79
      NF_HOOK include/linux/netfilter.h:303 [inline]
      ipv6_rcv+0x74/0x150 net/ipv6/ip6_input.c:309
      __netif_receive_skb_one_core net/core/dev.c:5452 [inline]
      __netif_receive_skb+0x90/0x1b0 net/core/dev.c:5566
      process_backlog+0x21f/0x380 net/core/dev.c:5894
      __napi_poll+0x60/0x3b0 net/core/dev.c:6460
      napi_poll net/core/dev.c:6527 [inline]
      net_rx_action+0x32b/0x750 net/core/dev.c:6660
      __do_softirq+0xc1/0x265 kernel/softirq.c:553
      run_ksoftirqd+0x17/0x20 kernel/softirq.c:921
      smpboot_thread_fn+0x30a/0x4a0 kernel/smpboot.c:164
      kthread+0x1d7/0x210 kernel/kthread.c:389
      ret_from_fork+0x2e/0x40 arch/x86/kernel/process.c:145
      ret_from_fork_asm+0x11/0x20 arch/x86/entry/entry_64.S:304
      
      read to 0xffff888149d77810 of 4 bytes by task 17828 on cpu 1:
      sctp_writeable net/sctp/socket.c:9304 [inline]
      sctp_poll+0x265/0x410 net/sctp/socket.c:8671
      sock_poll+0x253/0x270 net/socket.c:1374
      vfs_poll include/linux/poll.h:88 [inline]
      do_pollfd fs/select.c:873 [inline]
      do_poll fs/select.c:921 [inline]
      do_sys_poll+0x636/0xc00 fs/select.c:1015
      __do_sys_ppoll fs/select.c:1121 [inline]
      __se_sys_ppoll+0x1af/0x1f0 fs/select.c:1101
      __x64_sys_ppoll+0x67/0x80 fs/select.c:1101
      do_syscall_x64 arch/x86/entry/common.c:50 [inline]
      do_syscall_64+0x41/0xc0 arch/x86/entry/common.c:80
      entry_SYSCALL_64_after_hwframe+0x63/0xcd
      
      value changed: 0x00019e80 -> 0x0000cc80
      
      Reported by Kernel Concurrency Sanitizer on:
      CPU: 1 PID: 17828 Comm: syz-executor.1 Not tainted 6.5.0-rc7-syzkaller-00185-g28f20a19294d #0
      Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/26/2023
      
      Fixes: 1da177e4 ("Linux-2.6.12-rc2")
      Reported-by: default avatarsyzbot <syzkaller@googlegroups.com>
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Cc: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
      Acked-by: default avatarXin Long <lucien.xin@gmail.com>
      Link: https://lore.kernel.org/r/20230830094519.950007-1-edumazet@google.com
      
      
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      dc9511dd
    • Eric Dumazet's avatar
      net/sched: fq_pie: avoid stalls in fq_pie_timer() · 8c21ab1b
      Eric Dumazet authored
      When setting a high number of flows (limit being 65536),
      fq_pie_timer() is currently using too much time as syzbot reported.
      
      Add logic to yield the cpu every 2048 flows (less than 150 usec
      on debug kernels).
      It should also help by not blocking qdisc fast paths for too long.
      Worst case (65536 flows) would need 31 jiffies for a complete scan.
      
      Relevant extract from syzbot report:
      
      rcu: INFO: rcu_preempt detected expedited stalls on CPUs/tasks: { 0-.... } 2663 jiffies s: 873 root: 0x1/.
      rcu: blocking rcu_node structures (internal RCU debug):
      Sending NMI from CPU 1 to CPUs 0:
      NMI backtrace for cpu 0
      CPU: 0 PID: 5177 Comm: syz-executor273 Not tainted 6.5.0-syzkaller-00453-g727dbda16b83 #0
      Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/26/2023
      RIP: 0010:check_kcov_mode kernel/kcov.c:173 [inline]
      RIP: 0010:write_comp_data+0x21/0x90 kernel/kcov.c:236
      Code: 2e 0f 1f 84 00 00 00 00 00 65 8b 05 01 b2 7d 7e 49 89 f1 89 c6 49 89 d2 81 e6 00 01 00 00 49 89 f8 65 48 8b 14 25 80 b9 03 00 <a9> 00 01 ff 00 74 0e 85 f6 74 59 8b 82 04 16 00 00 85 c0 74 4f 8b
      RSP: 0018:ffffc90000007bb8 EFLAGS: 00000206
      RAX: 0000000000000101 RBX: ffffc9000dc0d140 RCX: ffffffff885893b0
      RDX: ffff88807c075940 RSI: 0000000000000100 RDI: 0000000000000001
      RBP: 0000000000000000 R08: 0000000000000001 R09: 0000000000000000
      R10: 0000000000000000 R11: 0000000000000000 R12: ffffc9000dc0d178
      R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
      FS:  0000555555d54380(0000) GS:ffff8880b9800000(0000) knlGS:0000000000000000
      CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      CR2: 00007f6b442f6130 CR3: 000000006fe1c000 CR4: 00000000003506f0
      DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
      Call Trace:
       <NMI>
       </NMI>
       <IRQ>
       pie_calculate_probability+0x480/0x850 net/sched/sch_pie.c:415
       fq_pie_timer+0x1da/0x4f0 net/sched/sch_fq_pie.c:387
       call_timer_fn+0x1a0/0x580 kernel/time/timer.c:1700
      
      Fixes: ec97ecf1 ("net: sched: add Flow Queue PIE packet scheduler")
      Link: https://lore.kernel.org/lkml/00000000000017ad3f06040bf394@google.com/
      
      
      Reported-by: default avatar <syzbot+e46fbd5289363464bc13@syzkaller.appspotmail.com>
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Reviewed-by: default avatarMichal Kubiak <michal.kubiak@intel.com>
      Reviewed-by: default avatarJamal Hadi Salim <jhs@mojatatu.com>
      Link: https://lore.kernel.org/r/20230829123541.3745013-1-edumazet@google.com
      
      
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      8c21ab1b
    • Jakub Kicinski's avatar
      Merge tag 'nf-23-08-31' of git://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf · 4e60de1e
      Jakub Kicinski authored
      Pablo Neira Ayuso says:
      
      ====================
      Netfilter fixes for net
      
      The following patchset contains Netfilter fixes for net:
      
      1) Fix mangling of TCP options with non-linear skbuff, from Xiao Liang.
      
      2) OOB read in xt_sctp due to missing sanitization of array length field.
         From Wander Lairson Costa.
      
      3) OOB read in xt_u32 due to missing sanitization of array length field.
         Also from Wander Lairson Costa.
      
      All of them above, always broken for several releases.
      
      4) Missing audit log for set element reset command, from Phil Sutter.
      
      5) Missing audit log for rule reset command, also from Phil.
      
      These audit log support are missing in 6.5.
      
      * tag 'nf-23-08-31' of git://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf:
        netfilter: nf_tables: Audit log rule reset
        netfilter: nf_tables: Audit log setelem reset
        netfilter: xt_u32: validate user space input
        netfilter: xt_sctp: validate the flag_info count
        netfilter: nft_exthdr: Fix non-linear header modification
      ====================
      
      Link: https://lore.kernel.org/r/20230830235935.465690-1-pablo@netfilter.org
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      4e60de1e
    • Donald Hunter's avatar
      doc/netlink: Fix missing classic_netlink doc reference · ee940b57
      Donald Hunter authored
      
      
      Add missing cross-reference label for classic_netlink.
      
      Fixes: 2db8abf0 ("doc/netlink: Document the netlink-raw schema extensions")
      Signed-off-by: default avatarDonald Hunter <donald.hunter@gmail.com>
      Link: https://lore.kernel.org/r/20230829085539.36354-1-donald.hunter@gmail.com
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      ee940b57
    • Oliver Neukum's avatar
    • Russell King (Oracle)'s avatar
      net: stmmac: failure to probe without MAC interface specified · b5947239
      Russell King (Oracle) authored
      
      
      Alexander Stein reports that commit a014c355 ("net: stmmac: clarify
      difference between "interface" and "phy_interface"") caused breakage,
      because plat->mac_interface will never be negative. Fix this by using
      the "rc" temporary variable in stmmac_probe_config_dt().
      
      Reported-by: default avatarAlexander Stein <alexander.stein@ew.tq-group.com>
      Signed-off-by: default avatarRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
      Tested-by: default avatarAlexander Stein <alexander.stein@ew.tq-group.com>
      Link: https://lore.kernel.org/r/E1qayn0-006Q8J-GE@rmk-PC.armlinux.org.uk
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      b5947239
    • Phil Sutter's avatar
      netfilter: nf_tables: Audit log rule reset · ea078ae9
      Phil Sutter authored
      
      
      Resetting rules' stateful data happens outside of the transaction logic,
      so 'get' and 'dump' handlers have to emit audit log entries themselves.
      
      Fixes: 8daa8fde ("netfilter: nf_tables: Introduce NFT_MSG_GETRULE_RESET")
      Signed-off-by: default avatarPhil Sutter <phil@nwl.cc>
      Reviewed-by: default avatarRichard Guy Briggs <rgb@redhat.com>
      Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
      ea078ae9
    • Phil Sutter's avatar
      netfilter: nf_tables: Audit log setelem reset · 7e9be112
      Phil Sutter authored
      
      
      Since set element reset is not integrated into nf_tables' transaction
      logic, an explicit log call is needed, similar to NFT_MSG_GETOBJ_RESET
      handling.
      
      For the sake of simplicity, catchall element reset will always generate
      a dedicated log entry. This relieves nf_tables_dump_set() from having to
      adjust the logged element count depending on whether a catchall element
      was found or not.
      
      Fixes: 079cd633 ("netfilter: nf_tables: Introduce NFT_MSG_GETSETELEM_RESET")
      Signed-off-by: default avatarPhil Sutter <phil@nwl.cc>
      Reviewed-by: default avatarRichard Guy Briggs <rgb@redhat.com>
      Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
      7e9be112
  2. Aug 30, 2023
    • Wander Lairson Costa's avatar
      netfilter: xt_u32: validate user space input · 69c5d284
      Wander Lairson Costa authored
      
      
      The xt_u32 module doesn't validate the fields in the xt_u32 structure.
      An attacker may take advantage of this to trigger an OOB read by setting
      the size fields with a value beyond the arrays boundaries.
      
      Add a checkentry function to validate the structure.
      
      This was originally reported by the ZDI project (ZDI-CAN-18408).
      
      Fixes: 1b50b8a3 ("[NETFILTER]: Add u32 match")
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarWander Lairson Costa <wander@redhat.com>
      Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
      69c5d284
    • Wander Lairson Costa's avatar
      netfilter: xt_sctp: validate the flag_info count · e9947649
      Wander Lairson Costa authored
      
      
      sctp_mt_check doesn't validate the flag_count field. An attacker can
      take advantage of that to trigger a OOB read and leak memory
      information.
      
      Add the field validation in the checkentry function.
      
      Fixes: 2e4e6a17 ("[NETFILTER] x_tables: Abstraction layer for {ip,ip6,arp}_tables")
      Cc: stable@vger.kernel.org
      Reported-by: default avatarLucas Leong <wmliang@infosec.exchange>
      Signed-off-by: default avatarWander Lairson Costa <wander@redhat.com>
      Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
      e9947649
    • Xiao Liang's avatar
      netfilter: nft_exthdr: Fix non-linear header modification · 28427f36
      Xiao Liang authored
      
      
      Fix skb_ensure_writable() size. Don't use nft_tcp_header_pointer() to
      make it explicit that pointers point to the packet (not local buffer).
      
      Fixes: 99d1712b ("netfilter: exthdr: tcp option set support")
      Fixes: 7890cbea ("netfilter: exthdr: add support for tcp option removal")
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarXiao Liang <shaw.leon@gmail.com>
      Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
      28427f36
    • Heng Guo's avatar
      net: ipv4, ipv6: fix IPSTATS_MIB_OUTOCTETS increment duplicated · e4da8c78
      Heng Guo authored
      
      
      commit edf391ff ("snmp: add missing counters for RFC 4293") had
      already added OutOctets for RFC 4293. In commit 2d8dbb04 ("snmp: fix
      OutOctets counter to include forwarded datagrams"), OutOctets was
      counted again, but not removed from ip_output().
      
      According to RFC 4293 "3.2.3. IP Statistics Tables",
      ipipIfStatsOutTransmits is not equal to ipIfStatsOutForwDatagrams. So
      "IPSTATS_MIB_OUTOCTETS must be incremented when incrementing" is not
      accurate. And IPSTATS_MIB_OUTOCTETS should be counted after fragment.
      
      This patch reverts commit 2d8dbb04 ("snmp: fix OutOctets counter to
      include forwarded datagrams") and move IPSTATS_MIB_OUTOCTETS to
      ip_finish_output2 for ipv4.
      
      Reviewed-by: default avatarFilip Pudak <filip.pudak@windriver.com>
      Signed-off-by: default avatarHeng Guo <heng.guo@windriver.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e4da8c78
    • Linus Torvalds's avatar
      Merge tag 'net-next-6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next · bd6c11bc
      Linus Torvalds authored
      Pull networking updates from Paolo Abeni:
       "Core:
      
         - Increase size limits for to-be-sent skb frag allocations. This
           allows tun, tap devices and packet sockets to better cope with
           large writes operations
      
         - Store netdevs in an xarray, to simplify iterating over netdevs
      
         - Refactor nexthop selection for multipath routes
      
         - Improve sched class lifetime handling
      
         - Add backup nexthop ID support for bridge
      
         - Implement drop reasons support in openvswitch
      
         - Several data races annotations and fixes
      
         - Constify the sk parameter of routing functions
      
         - Prepend kernel version to netconsole message
      
        Protocols:
      
         - Implement support for TCP probing the peer being under memory
           pressure
      
         - Remove hard coded limitation on IPv6 specific info placement inside
           the socket struct
      
         - Get rid of sysctl_tcp_adv_win_scale and use an auto-estimated per
           socket scaling factor
      
         - Scaling-up the IPv6 expired route GC via a separated list of
           expiring routes
      
         - In-kernel support for the TLS alert protocol
      
         - Better support for UDP reuseport with connected sockets
      
         - Add NEXT-C-SID support for SRv6 End.X behavior, reducing the SR
           header size
      
         - Get rid of additional ancillary per MPTCP connection struct socket
      
         - Implement support for BPF-based MPTCP packet schedulers
      
         - Format MPTCP subtests selftests results in TAP
      
         - Several new SMC 2.1 features including unique experimental options,
           max connections per lgr negotiation, max links per lgr negotiation
      
        BPF:
      
         - Multi-buffer support in AF_XDP
      
         - Add multi uprobe BPF links for attaching multiple uprobes and usdt
           probes, which is significantly faster and saves extra fds
      
         - Implement an fd-based tc BPF attach API (TCX) and BPF link support
           on top of it
      
         - Add SO_REUSEPORT support for TC bpf_sk_assign
      
         - Support new instructions from cpu v4 to simplify the generated code
           and feature completeness, for x86, arm64, riscv64
      
         - Support defragmenting IPv(4|6) packets in BPF
      
         - Teach verifier actual bounds of bpf_get_smp_processor_id() and fix
           perf+libbpf issue related to custom section handling
      
         - Introduce bpf map element count and enable it for all program types
      
         - Add a BPF hook in sys_socket() to change the protocol ID from
           IPPROTO_TCP to IPPROTO_MPTCP to cover migration for legacy
      
         - Introduce bpf_me_mcache_free_rcu() and fix OOM under stress
      
         - Add uprobe support for the bpf_get_func_ip helper
      
         - Check skb ownership against full socket
      
         - Support for up to 12 arguments in BPF trampoline
      
         - Extend link_info for kprobe_multi and perf_event links
      
        Netfilter:
      
         - Speed-up process exit by aborting ruleset validation if a fatal
           signal is pending
      
         - Allow NLA_POLICY_MASK to be used with BE16/BE32 types
      
        Driver API:
      
         - Page pool optimizations, to improve data locality and cache usage
      
         - Introduce ndo_hwtstamp_get() and ndo_hwtstamp_set() to avoid the
           need for raw ioctl() handling in drivers
      
         - Simplify genetlink dump operations (doit/dumpit) providing them the
           common information already populated in struct genl_info
      
         - Extend and use the yaml devlink specs to [re]generate the split ops
      
         - Introduce devlink selective dumps, to allow SF filtering SF based
           on handle and other attributes
      
         - Add yaml netlink spec for netlink-raw families, allow route, link
           and address related queries via the ynl tool
      
         - Remove phylink legacy mode support
      
         - Support offload LED blinking to phy
      
         - Add devlink port function attributes for IPsec
      
        New hardware / drivers:
      
         - Ethernet:
            - Broadcom ASP 2.0 (72165) ethernet controller
            - MediaTek MT7988 SoC
            - Texas Instruments AM654 SoC
            - Texas Instruments IEP driver
            - Atheros qca8081 phy
            - Marvell 88Q2110 phy
            - NXP TJA1120 phy
      
         - WiFi:
            - MediaTek mt7981 support
      
         - Can:
            - Kvaser SmartFusion2 PCI Express devices
            - Allwinner T113 controllers
            - Texas Instruments tcan4552/4553 chips
      
         - Bluetooth:
            - Intel Gale Peak
            - Qualcomm WCN3988 and WCN7850
            - NXP AW693 and IW624
            - Mediatek MT2925
      
        Drivers:
      
         - Ethernet NICs:
            - nVidia/Mellanox:
               - mlx5:
                  - support UDP encapsulation in packet offload mode
                  - IPsec packet offload support in eswitch mode
                  - improve aRFS observability by adding new set of counters
                  - extends MACsec offload support to cover RoCE traffic
                  - dynamic completion EQs
               - mlx4:
                  - convert to use auxiliary bus instead of custom interface
                    logic
            - Intel
               - ice:
                  - implement switchdev bridge offload, even for LAG
                    interfaces
                  - implement SRIOV support for LAG interfaces
               - igc:
                  - add support for multiple in-flight TX timestamps
            - Broadcom:
               - bnxt:
                  - use the unified RX page pool buffers for XDP and non-XDP
                  - use the NAPI skb allocation cache
            - OcteonTX2:
               - support Round Robin scheduling HTB offload
               - TC flower offload support for SPI field
            - Freescale:
               - add XDP_TX feature support
            - AMD:
               - ionic: add support for PCI FLR event
               - sfc:
                  - basic conntrack offload
                  - introduce eth, ipv4 and ipv6 pedit offloads
            - ST Microelectronics:
               - stmmac: maximze PTP timestamping resolution
      
         - Virtual NICs:
            - Microsoft vNIC:
               - batch ringing RX queue doorbell on receiving packets
               - add page pool for RX buffers
            - Virtio vNIC:
               - add per queue interrupt coalescing support
            - Google vNIC:
               - add queue-page-list mode support
      
         - Ethernet high-speed switches:
            - nVidia/Mellanox (mlxsw):
               - add port range matching tc-flower offload
               - permit enslavement to netdevices with uppers
      
         - Ethernet embedded switches:
            - Marvell (mv88e6xxx):
               - convert to phylink_pcs
            - Renesas:
               - r8A779fx: add speed change support
               - rzn1: enables vlan support
      
         - Ethernet PHYs:
            - convert mv88e6xxx to phylink_pcs
      
         - WiFi:
            - Qualcomm Wi-Fi 7 (ath12k):
               - extremely High Throughput (EHT) PHY support
            - RealTek (rtl8xxxu):
               - enable AP mode for: RTL8192FU, RTL8710BU (RTL8188GU),
                 RTL8192EU and RTL8723BU
            - RealTek (rtw89):
               - Introduce Time Averaged SAR (TAS) support
      
         - Connector:
            - support for event filtering"
      
      * tag 'net-next-6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (1806 commits)
        net: ethernet: mtk_wed: minor change in wed_{tx,rx}info_show
        net: ethernet: mtk_wed: add some more info in wed_txinfo_show handler
        net: stmmac: clarify difference between "interface" and "phy_interface"
        r8152: add vendor/device ID pair for D-Link DUB-E250
        devlink: move devlink_notify_register/unregister() to dev.c
        devlink: move small_ops definition into netlink.c
        devlink: move tracepoint definitions into core.c
        devlink: push linecard related code into separate file
        devlink: push rate related code into separate file
        devlink: push trap related code into separate file
        devlink: use tracepoint_enabled() helper
        devlink: push region related code into separate file
        devlink: push param related code into separate file
        devlink: push resource related code into separate file
        devlink: push dpipe related code into separate file
        devlink: move and rename devlink_dpipe_send_and_alloc_skb() helper
        devlink: push shared buffer related code into separate file
        devlink: push port related code into separate file
        devlink: push object register/unregister notifications into separate helpers
        inet: fix IP_TRANSPARENT error handling
        ...
      bd6c11bc
    • Linus Torvalds's avatar
      Merge tag 'v6.6-p1' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · 68cf0176
      Linus Torvalds authored
      Pull crypto updates from Herbert Xu:
       "API:
         - Move crypto engine callback from tfm ctx into algorithm object
         - Fix atomic sleep bug in crypto_destroy_instance
         - Move lib/mpi into lib/crypto
      
        Algorithms:
         - Add chacha20 and poly1305 implementation for powerpc p10
      
        Drivers:
         - Add AES skcipher and aead support to starfive
         - Add Dynamic Boost Control support to ccp
         - Add support for STM32P13 platform to stm32"
      
      * tag 'v6.6-p1' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (149 commits)
        Revert "dt-bindings: crypto: qcom,prng: Add SM8450"
        crypto: chelsio - Remove unused declarations
        X.509: if signature is unsupported skip validation
        crypto: qat - fix crypto capability detection for 4xxx
        crypto: drivers - Explicitly include correct DT includes
        crypto: engine - Remove crypto_engine_ctx
        crypto: zynqmp - Use new crypto_engine_op interface
        crypto: virtio - Use new crypto_engine_op interface
        crypto: stm32 - Use new crypto_engine_op interface
        crypto: jh7110 - Use new crypto_engine_op interface
        crypto: rk3288 - Use new crypto_engine_op interface
        crypto: omap - Use new crypto_engine_op interface
        crypto: keembay - Use new crypto_engine_op interface
        crypto: sl3516 - Use new crypto_engine_op interface
        crypto: caam - Use new crypto_engine_op interface
        crypto: aspeed - Remove non-standard sha512 algorithms
        crypto: aspeed - Use new crypto_engine_op interface
        crypto: amlogic - Use new crypto_engine_op interface
        crypto: sun8i-ss - Use new crypto_engine_op interface
        crypto: sun8i-ce - Use new crypto_engine_op interface
        ...
      68cf0176
    • Linus Torvalds's avatar
      Merge tag 'gpio-updates-for-v6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux · f97e18a3
      Linus Torvalds authored
      Pull gpio updates from Bartosz Golaszewski:
       "We have a lot of code refactoring using common helpers and ended up
        removing more lines then we're adding this release cycle.
      
        Nothing really stands out, just small updates all over the place.
      
        Core GPIOLIB updates:
         - wake-up poll() in user-space on device unbind
         - improve fwnode usage
         - interrupt domain handling improvements
         - correctly handle the ngpios property in gpio-mmio
      
        Driver cleanups:
         - remove unneeded calls to platform_set_drvdata() all around the
           place
         - remove unneeded of_match_ptr() expansions whenever a driver depends
           on CONFIG_OF
         - remove redundant calls to dev_err_probe() from gpio-omap and
           gpio-davinci
      
        Driver improvements:
         - use autopointers and guards from cleanup.h in gpio-sim
         - shrink code in gpio-sim using some common helpers
         - convert the idio family of drivers to using gpio-regmap
         - convert gpio-ws16c48 to using gpio-regmap
         - use devres to simplify code in gpio-pisosr and gpio-mxc
         - update gpio-sifive: support IRQ wake, improve interrupt handling,
           allow building as module
         - make gpio-ge and gpio-bcm-kona OF-independent (plus some minor
           tweaks)
         - add support for new models in gpio-pca953x and gpio-ds4520
         - add runtime PM support to gpio-mxc
         - fix a build warning in gpio-mxs
         - add support for adding pin ranges to gpio-mlxbf3
         - add counter/timer support to gpio-104-dio-48e
         - switch to dynamic GPIO base allocation in gpio-vf610
         - minor oneliners here and there
      
        Device-tree bindings updates:
         - enable the gpio-line-names property in snps,dw-apb and STMPE GPIO
         - document new models in fsl-imx-gpio, ds4520 and pca95xx
         - convert the bindings for brcm,kona-gpio to YAML"
      
      * tag 'gpio-updates-for-v6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux: (94 commits)
        gpio: pca953x: add support for TCA9538
        dt-bindings: gpio: pca95xx: document new tca9538 chip
        gpio: pca953x: Use i2c_get_match_data()
        gpio: mlxbf3: use capital "OR" for multiple licenses in SPDX
        gpio: pcf857x: Extend match data support for OF tables
        gpio: vf610: switch to dynamic allocat GPIO base
        gpiolib: provide and use gpiod_line_state_notify()
        gpio: cdev: wake up lineevent poll() on device unbind
        gpio: cdev: wake up linereq poll() on device unbind
        gpio: cdev: wake up chardev poll() on device unbind
        gpiolib: add a second blocking notifier to struct gpio_device
        gpio: cdev: open-code to_gpio_chardev_data()
        gpiolib: rename the gpio_device notifier
        gpio: mlxbf3: Support add_pin_ranges()
        gpio: mxc: Use helper function devm_clk_get_optional_enabled()
        gpio: pca9570: fix kerneldoc
        gpio: sim: simplify code with cleanup helpers
        gpio: sim: replace memmove() + strstrip() with skip_spaces() + strim()
        gpio: sim: simplify gpio_sim_device_config_live_store()
        gpio: mxc: release the parent IRQ in runtime suspend
        ...
      f97e18a3
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-v6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging · 41e97d7a
      Linus Torvalds authored
      Pull hwmon updates from Guenter Roeck:
       "New drivers:
      
         - Renesas HS3001
      
        Chip support added to existing drivers:
      
         - pmbus/mp2975 driver now supports MP2971 and MP2973
      
        Functional improvements:
      
         - Additional voltage and temperature sensor support for
           NCT6798/NCT6799 in nt6755 driver
      
         - it87 driver now detects AMDTSI sensor type
      
         - dimmtemp now supports more than 32 DIMMs
      
        Driver removals:
      
         - sm665 driver removed as unsupportable and long since obsolete
      
        .. and minor fixes, cleanups, and simplifications in several drivers"
      
      * tag 'hwmon-for-v6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (57 commits)
        hwmon: (tmp513) Simplify probe()
        hwmon: (tmp513) Fix the channel number in tmp51x_is_visible()
        hwmon: (mlxreg-fan) Extend number of supported fans
        hwmon: (sis5595) Do PCI error checks on own line
        hwmon: (vt8231) Do PCI error checks on own line
        hwmon: (via686a) Do PCI error checks on own line
        hwmon: pmbus: Fix -EIO seen on pli1209
        hwmon: pmbus: Drop unnecessary clear fault page
        hwmon: pmbus: Reduce clear fault page invocations
        hwmon: (nsa320-hwmon) Remove redundant of_match_ptr()
        hwmon: (pmbus/ucd9200) fix Wvoid-pointer-to-enum-cast warning
        hwmon: (pmbus/ucd9000) fix Wvoid-pointer-to-enum-cast warning
        hwmon: (pmbus/tps53679) fix Wvoid-pointer-to-enum-cast warning
        hwmon: (pmbus/ibm-cffps) fix Wvoid-pointer-to-enum-cast warning
        hwmon: (tmp513) fix Wvoid-pointer-to-enum-cast warning
        hwmon: (max6697) fix Wvoid-pointer-to-enum-cast warning
        hwmon: (max20730) fix Wvoid-pointer-to-enum-cast warning
        hwmon: (lm90) fix Wvoid-pointer-to-enum-cast warning
        hwmon: (lm85) fix Wvoid-pointer-to-enum-cast warning
        hwmon: (lm75) fix Wvoid-pointer-to-enum-cast warning
        ...
      41e97d7a
    • Linus Torvalds's avatar
      Merge tag 'mmc-v6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc · 995cda62
      Linus Torvalds authored
      Pull MMC updates from Ulf Hansson:
       "MMC core:
         - Convert drivers to use the ->remove_new() callback
         - Propagate the removable attribute for the card's device
      
        MMC host:
         - Convert drivers to use the ->remove_new() callback
         - atmel-mci: Convert to gpio descriptors and cleanup the code
         - davinci: Make SDIO irq truly optional
         - renesas_sdhi: Register irqs before registering controller
         - sdhci: Simplify the sdhci_pltfm_* interface a bit
         - sdhci-esdhc-imx: Improve support for the 1.8V errata
         - sdhci-of-at91: Add support for the microchip sam9x7 variant
         - sdhci-of-dwcmshc: Add support for runtime PM
         - sdhci-pci-o2micro: Add support for the new Bayhub GG8 variant
         - sdhci-sprd: Add support for SD high-speed mode tuning
         - uniphier-sd: Register irqs before registering controller"
      
      * tag 'mmc-v6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc: (108 commits)
        mmc: atmel-mci: Move card detect gpio polarity quirk to gpiolib
        mmc: atmel-mci: move atmel MCI header file
        mmc: atmel-mci: Convert to gpio descriptors
        mmc: sdhci-sprd: Add SD HS mode online tuning
        mmc: core: Add host specific tuning support for SD HS mode
        mmc: sdhci-of-dwcmshc: Add runtime PM operations
        mmc: sdhci-of-dwcmshc: Add error handling in dwcmshc_resume
        mmc: sdhci-esdhc-imx: improve ESDHC_FLAG_ERR010450
        mmc: sdhci-pltfm: Rename sdhci_pltfm_register()
        mmc: sdhci-pltfm: Remove sdhci_pltfm_unregister()
        mmc: sdhci-st: Use sdhci_pltfm_remove()
        mmc: sdhci-pxav2: Use sdhci_pltfm_remove()
        mmc: sdhci-of-sparx5: Use sdhci_pltfm_remove()
        mmc: sdhci-of-hlwd: Use sdhci_pltfm_remove()
        mmc: sdhci-of-esdhc: Use sdhci_pltfm_remove()
        mmc: sdhci-of-at91: Use sdhci_pltfm_remove()
        mmc: sdhci-of-arasan: Use sdhci_pltfm_remove()
        mmc: sdhci-iproc: Use sdhci_pltfm_remove()
        mmc: sdhci_f_sdh30: Use sdhci_pltfm_remove()
        mmc: sdhci-dove: Use sdhci_pltfm_remove()
        ...
      995cda62
    • Linus Torvalds's avatar
      Merge tag 'spi-v6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · 3b6bf5b1
      Linus Torvalds authored
      Pull spi updates from Mark Brown:
       "There's been quite a lot of generic activity here, but more
        administrative than featuers. We also have a bunch of new drivers,
        including one that's part of a MFD so we pulled in the core parts of
        that:
      
         - Lots of work from both Yang Yingliang and Andy Shevchenko on moving
           to host/device/controller based terminology for devices.
      
         - QuadSPI SPI support for Allwinner sun6i.
      
         - New device support Cirrus Logic CS43L43, Longsoon, Qualcomm GENI
           QuPv3 and StarFive JH7110 QSPI"
      
      * tag 'spi-v6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (151 commits)
        spi: at91-usart: Use PTR_ERR_OR_ZERO() to simplify code
        spi: spi-sn-f-ospi: switch to use modern name
        spi: sifive: switch to use modern name
        spi: sh: switch to use modern name
        spi: sh-sci: switch to use modern name
        spi: sh-msiof: switch to use modern name
        spi: sh-hspi: switch to use modern name
        spi: sc18is602: switch to use modern name
        spi: s3c64xx: switch to use modern name
        spi: rzv2m-csi: switch to use devm_spi_alloc_host()
        spi: rspi: switch to use spi_alloc_host()
        spi: rockchip: switch to use modern name
        spi: rockchip-sfc: switch to use modern name
        spi: realtek-rtl: switch to use devm_spi_alloc_host()
        spi: rb4xx: switch to use modern name
        spi: qup: switch to use modern name
        spi: spi-qcom-qspi: switch to use modern name
        spi: pxa2xx: switch to use modern name
        spi: ppc4xx: switch to use modern name
        spi: spl022: switch to use modern name
        ...
      3b6bf5b1
    • Linus Torvalds's avatar
      Merge tag 'regulator-v6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator · 65234f96
      Linus Torvalds authored
      Pull regulator updates from Mark Brown:
       "Other than new device support and some minor fixes this has been a
        really quiet release, the only notable things are the new drivers.
      
        There's a couple of MFDs among the new devices so the generic parts
        are pulled in:
      
         - Support for Analog Devices MAX77831/57/59, Awinc AW37503, Qualcom
           PMX75 and RFGEN, RealTek RT5733, RichTek RTQ2208 and Texas
           Instruments TPS65086"
      
      * tag 'regulator-v6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (68 commits)
        regulator: userspace-consumer: Drop event support for this cycle
        regulator: aw37503: Switch back to use struct i2c_driver's .probe()
        dt-bindings: regulator: qcom,rpmh-regulator: allow i, j, l, m & n as RPMh resource name suffix
        regulator: dt-bindings: Add Awinic AW37503
        regulator: aw37503: add regulator driver for Awinic AW37503
        regulator: tps65086: Select dedicated regulator config for chip variant
        mfd: tps65086: Read DEVICE ID register 1 from device
        regulator: raa215300: Update help description
        regulator: raa215300: Add missing blank space
        regulator: raa215300: Change rate from 32000->32768
        regulator: db8500-prcmu: Remove unused declaration power_state_active_is_enabled()
        regulator: raa215300: Add const definition
        regulator: raa215300: Fix resource leak in case of error
        regulator: rtq2208: Switch back to use struct i2c_driver's .probe()
        regulator: lp872x: Fix Wvoid-pointer-to-enum-cast warning
        regulator: max77857: Fix Wvoid-pointer-to-enum-cast warning
        regulator: ltc3589: Fix Wvoid-pointer-to-enum-cast warning
        regulator: qcom_rpm-regulator: Use devm_kmemdup to replace devm_kmalloc + memcpy
        regulator: tps6286x-regulator: Remove redundant of_match_ptr() macros
        regulator: pfuze100-regulator: Remove redundant of_match_ptr() macro
        ...
      65234f96
    • Linus Torvalds's avatar
      Merge tag 'regmap-v6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap · 0fc81f37
      Linus Torvalds authored
      Pull regmap updates from Mark Brown:
       "This is a much quieter release than the past few, there's one small
        API addition that I noticed a user for in ALSA and a bunch of
        cleanups:
      
         - Provide an interface for determining if a register is present in
           the cache and add a user of it in ALSA.
      
         - Full support for dynamic allocations, following the temporary
           bodges that were done as fixes in the previous release.
      
         - Remove the unused and questionably working 64 bit support"
      
      * tag 'regmap-v6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
        regmap: Fix the type used for a bitmap pointer
        regmap: Remove dynamic allocation warnings for rbtree and maple
        regmap: rbtree: Use alloc_flags for memory allocations
        regmap: maple: Use alloc_flags for memory allocations
        regmap: Reject fast_io regmap configurations with RBTREE and MAPLE caches
        ALSA: hda: Use regcache_reg_cached() rather than open coding
        regmap: Provide test for regcache_reg_present()
        regmap: Let users check if a register is cached
        regmap: Provide user selectable option to enable regmap
        regmap: mmio: Remove unused 64-bit support code
        regmap: cache: Revert "Add 64-bit mode support"
        regmap: Revert "add 64-bit mode support" and Co.
      0fc81f37
    • Linus Torvalds's avatar
      Merge tag 'hsi-for-6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi · c35c486c
      Linus Torvalds authored
      Pull HSI update from Sebastian Reichel:
      
       - explicitly include correct DT includes
      
      * tag 'hsi-for-6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi:
        hsi: omap_ssi: Explicitly include correct DT includes
      c35c486c
  3. Aug 29, 2023
    • Linus Torvalds's avatar
      Merge tag 'for-v6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply · b547f9b3
      Linus Torvalds authored
      Pull power supply and reset updates from Sebastian Reichel:
      
       - core: avoid duplicate hwmon device from thermal framework
      
       - convert multiple drivers to devm_platform_ioremap_resource
      
       - at91-reset: add sysfs interface to the power on reason
      
       - misc small fixes and improvements
      
      * tag 'for-v6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply:
        power: supply: qcom_pmi8998_charger: fix charger status
        power: supply: qcom_pmi8998_charger: remove CHARGE_CONTROL_LIMIT_* props
        power: supply: qcom_pmi8998_charger: fix uninitialized variable
        power: reset: oxnas-restart: remove obsolete restart driver
        power: supply: core: Avoid duplicate hwmon device from thermal framework
        power: reset: ocelot: Convert to devm_platform_ioremap_resource()
        power: reset: msm: Convert to devm_platform_ioremap_resource()
        power: reset: gemini-poweroff: Convert to devm_platform_ioremap_resource()
        power: reset: brcm-kona: Convert to devm_platform_ioremap_resource()
        power: reset: at91-sama5d2_shdwc: Convert to devm_platform_ioremap_resource()
        power: reset: at91-poweroff: Convert to devm_platform_ioremap_resource()
        power: reset: at91-reset: add sysfs interface to the power on reason
        power: supply: bd99954: make read-only array sub_status_reg
        power: supply: bq24190: Considers FORCE_20PCT when getting IPRECHG
        power: Explicitly include correct DT includes
      b547f9b3
    • Linus Torvalds's avatar
      Merge tag 'auxdisplay-6.6' of https://github.com/ojeda/linux · 5ea0cf77
      Linus Torvalds authored
      Pull auxdisplay update from Miguel Ojeda:
      
       - hd44780: move cursor home after clear display command
      
         The change allows to support displays like the NewHaven
         NHD-0220DZW-AG5 which has a non-standard controller.
      
      * tag 'auxdisplay-6.6' of https://github.com/ojeda/linux:
        auxdisplay: hd44780: move cursor home after clear display command
      5ea0cf77
    • Linus Torvalds's avatar
      Merge tag 'rust-6.6' of https://github.com/Rust-for-Linux/linux · a031fe8d
      Linus Torvalds authored
      Pull rust updates from Miguel Ojeda:
       "In terms of lines, most changes this time are on the pinned-init API
        and infrastructure. While we have a Rust version upgrade, and thus a
        bunch of changes from the vendored 'alloc' crate as usual, this time
        those do not account for many lines.
      
        Toolchain and infrastructure:
      
         - Upgrade to Rust 1.71.1. This is the second such upgrade, which is a
           smaller jump compared to the last time.
      
           This version allows us to remove the '__rust_*' allocator functions
           -- the compiler now generates them as expected, thus now our
           'KernelAllocator' is used.
      
           It also introduces the 'offset_of!' macro in the standard library
           (as an unstable feature) which we will need soon. So far, we were
           using a declarative macro as a prerequisite in some not-yet-landed
           patch series, which did not support sub-fields (i.e. nested
           structs):
      
               #[repr(C)]
               struct S {
                   a: u16,
                   b: (u8, u8),
               }
      
               assert_eq!(offset_of!(S, b.1), 3);
      
         - Upgrade to bindgen 0.65.1. This is the first time we upgrade its
           version.
      
           Given it is a fairly big jump, it comes with a fair number of
           improvements/changes that affect us, such as a fix needed to
           support LLVM 16 as well as proper support for '__noreturn' C
           functions, which are now mapped to return the '!' type in Rust:
      
               void __noreturn f(void); // C
               pub fn f() -> !;         // Rust
      
         - 'scripts/rust_is_available.sh' improvements and fixes.
      
           This series takes care of all the issues known so far and adds a
           few new checks to cover for even more cases, plus adds some more
           help texts. All this together will hopefully make problematic
           setups easier to identify and to be solved by users building the
           kernel.
      
           In addition, it adds a test suite which covers all branches of the
           shell script, as well as tests for the issues found so far.
      
         - Support rust-analyzer for out-of-tree modules too.
      
         - Give 'cfg's to rust-analyzer for the 'core' and 'alloc' crates.
      
         - Drop 'scripts/is_rust_module.sh' since it is not needed anymore.
      
        Macros crate:
      
         - New 'paste!' proc macro.
      
           This macro is a more flexible version of 'concat_idents!': it
           allows the resulting identifier to be used to declare new items and
           it allows to transform the identifiers before concatenating them,
           e.g.
      
               let x_1 = 42;
               paste!(let [<x _2>] = [<x _1>];);
               assert!(x_1 == x_2);
      
           The macro is then used for several of the pinned-init API changes
           in this pull.
      
        Pinned-init API:
      
         - Make '#[pin_data]' compatible with conditional compilation of
           fields, allowing to write code like:
      
               #[pin_data]
               pub struct Foo {
                   #[cfg(CONFIG_BAR)]
                   a: Bar,
                   #[cfg(not(CONFIG_BAR))]
                   a: Baz,
               }
      
         - New '#[derive(Zeroable)]' proc macro for the 'Zeroable' trait,
           which allows 'unsafe' implementations for structs where every field
           implements the 'Zeroable' trait, e.g.:
      
               #[derive(Zeroable)]
               pub struct DriverData {
                   id: i64,
                   buf_ptr: *mut u8,
                   len: usize,
               }
      
         - Add '..Zeroable::zeroed()' syntax to the 'pin_init!' macro for
           zeroing all other fields, e.g.:
      
               pin_init!(Buf {
                   buf: [1; 64],
                   ..Zeroable::zeroed()
               });
      
         - New '{,pin_}init_array_from_fn()' functions to create array
           initializers given a generator function, e.g.:
      
               let b: Box<[usize; 1_000]> = Box::init::<Error>(
                   init_array_from_fn(|i| i)
               ).unwrap();
      
               assert_eq!(b.len(), 1_000);
               assert_eq!(b[123], 123);
      
         - New '{,pin_}chain' methods for '{,Pin}Init<T, E>' that allow to
           execute a closure on the value directly after initialization, e.g.:
      
               let foo = init!(Foo {
                   buf <- init::zeroed()
               }).chain(|foo| {
                   foo.setup();
                   Ok(())
               });
      
         - Support arbitrary paths in init macros, instead of just identifiers
           and generic types.
      
         - Implement the 'Zeroable' trait for the 'UnsafeCell<T>' and
           'Opaque<T>' types.
      
         - Make initializer values inaccessible after initialization.
      
         - Make guards in the init macros hygienic.
      
        'allocator' module:
      
         - Use 'krealloc_aligned()' in 'KernelAllocator::alloc' preventing
           misaligned allocations when the Rust 1.71.1 upgrade is applied
           later in this pull.
      
           The equivalent fix for the previous compiler version (where
           'KernelAllocator' is not yet used) was merged into 6.5 already,
           which added the 'krealloc_aligned()' function used here.
      
         - Implement 'KernelAllocator::{realloc, alloc_zeroed}' for
           performance, using 'krealloc_aligned()' too, which forwards the
           call to the C API.
      
        'types' module:
      
         - Make 'Opaque' be '!Unpin', removing the need to add a
           'PhantomPinned' field to Rust structs that contain C structs which
           must not be moved.
      
         - Make 'Opaque' use 'UnsafeCell' as the outer type, rather than
           inner.
      
        Documentation:
      
         - Suggest obtaining the source code of the Rust's 'core' library
           using the tarball instead of the repository.
      
        MAINTAINERS:
      
         - Andreas and Alice, from Samsung and Google respectively, are
           joining as reviewers of the "RUST" entry.
      
        As well as a few other minor changes and cleanups"
      
      * tag 'rust-6.6' of https://github.com/Rust-for-Linux/linux: (42 commits)
        rust: init: update expanded macro explanation
        rust: init: add `{pin_}chain` functions to `{Pin}Init<T, E>`
        rust: init: make `PinInit<T, E>` a supertrait of `Init<T, E>`
        rust: init: implement `Zeroable` for `UnsafeCell<T>` and `Opaque<T>`
        rust: init: add support for arbitrary paths in init macros
        rust: init: add functions to create array initializers
        rust: init: add `..Zeroable::zeroed()` syntax for zeroing all missing fields
        rust: init: make initializer values inaccessible after initializing
        rust: init: wrap type checking struct initializers in a closure
        rust: init: make guards in the init macros hygienic
        rust: add derive macro for `Zeroable`
        rust: init: make `#[pin_data]` compatible with conditional compilation of fields
        rust: init: consolidate init macros
        docs: rust: clarify what 'rustup override' does
        docs: rust: update instructions for obtaining 'core' source
        docs: rust: add command line to rust-analyzer section
        scripts: generate_rust_analyzer: provide `cfg`s for `core` and `alloc`
        rust: bindgen: upgrade to 0.65.1
        rust: enable `no_mangle_with_rust_abi` Clippy lint
        rust: upgrade to Rust 1.71.1
        ...
      a031fe8d
    • Linus Torvalds's avatar
      Merge tag 'tpmdd-v6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-tpmdd · f2586d92
      Linus Torvalds authored
      Pull tpm updates from Jarkko Sakkinen:
      
       - Restrict linking of keys to .ima and .evm keyrings based on
         digitalSignature attribute in the certificate
      
       - PowerVM: load machine owner keys into the .machine [1] keyring
      
       - PowerVM: load module signing keys into the secondary trusted keyring
         (keys blessed by the vendor)
      
       - tpm_tis_spi: half-duplex transfer mode
      
       - tpm_tis: retry corrupted transfers
      
       - Apply revocation list (.mokx) to an all system keyrings (e.g.
         .machine keyring)
      
      Link: https://blogs.oracle.com/linux/post/the-machine-keyring [1]
      
      * tag 'tpmdd-v6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-tpmdd:
        certs: Reference revocation list for all keyrings
        tpm/tpm_tis_synquacer: Use module_platform_driver macro to simplify the code
        tpm: remove redundant variable len
        tpm_tis: Resend command to recover from data transfer errors
        tpm_tis: Use responseRetry to recover from data transfer errors
        tpm_tis: Move CRC check to generic send routine
        tpm_tis_spi: Add hardware wait polling
        KEYS: Replace all non-returning strlcpy with strscpy
        integrity: PowerVM support for loading third party code signing keys
        integrity: PowerVM machine keyring enablement
        integrity: check whether imputed trust is enabled
        integrity: remove global variable from machine_keyring.c
        integrity: ignore keys failing CA restrictions on non-UEFI platform
        integrity: PowerVM support for loading CA keys on machine keyring
        integrity: Enforce digitalSignature usage in the ima and evm keyrings
        KEYS: DigitalSignature link restriction
        tpm_tis: Revert "tpm_tis: Disable interrupts on ThinkPad T490s"
      f2586d92
    • Paolo Abeni's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · c873512e
      Paolo Abeni authored
      
      
      Merge in late fixes to prepare for the 6.6 net-next PR.
      
      No conflicts.
      
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      c873512e
    • Linus Torvalds's avatar
      Merge tag 'linux-kselftest-nolibc-6.6-rc1' of... · 1c59d383
      Linus Torvalds authored
      Merge tag 'linux-kselftest-nolibc-6.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull nolibc updates from Shuah Khan:
       "Nolibc:
         - improved portability by removing build errors with -ENOSYS
         - added syscall6() on MIPS to support pselect6() and mmap()
         - added setvbuf(), rmdir(), pipe(), pipe2()
         - add support for ppc/ppc64
         - environ is no longer optional
         - fixed frame pointer issues at -O0
         - dropped sys_stat() in favor of sys_statx()
         - centralized _start_c() to remove lots of asm code
         - switched size_t to __SIZE_TYPE__
      
        Selftests:
         - improved status reporting (success/warning/failure counts, path to
           log file)
         - various code cleanups (indent, unused variables, ...)
         - more consistent test numbering
         - enabled compiler warnings
         - dropped unreliable chmod_net test
         - improved reliability (create /dev/zero & /tmp, rely less on /proc)
         - new tests (brk/sbrk/mmap/munmap)
         - improved compatibility with musl
         - new run-nolibc-test target to build and run natively
         - new run-libc-test target to build and run against native libc
         - made the cmdline parser more reliable against boolean arguments
         - dropped dependency on memfd for vfprintf() test
         - nolibc-test is no longer stripped
         - added support for extending ARCH via XARCH
      
        Other:
         - add Thomas as co-maintainer"
      
      * tag 'linux-kselftest-nolibc-6.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest: (103 commits)
        tools/nolibc: avoid undesired casts in the __sysret() macro
        tools/nolibc: keep brk(), sbrk(), mmap() away from __sysret()
        tools/nolibc: silence ppc64 compile warnings
        selftests/nolibc: libc-test: use HOSTCC instead of CC
        tools/nolibc: stackprotector.h: make __stack_chk_init static
        selftests/nolibc: allow report with existing test log
        selftests/nolibc: add test support for ppc64
        selftests/nolibc: add test support for ppc64le
        selftests/nolibc: add test support for ppc
        selftests/nolibc: add XARCH and ARCH mapping support
        tools/nolibc: add support for powerpc64
        tools/nolibc: add support for powerpc
        MAINTAINERS: nolibc: add myself as co-maintainer
        selftests/nolibc: enable compiler warnings
        selftests/nolibc: don't strip nolibc-test
        selftests/nolibc: prevent out of bounds access in expect_vfprintf
        selftests/nolibc: use correct return type for read() and write()
        selftests/nolibc: avoid sign-compare warnings
        selftests/nolibc: avoid unused parameter warnings
        selftests/nolibc: make functions static if possible
        ...
      1c59d383
    • Linus Torvalds's avatar
      Merge tag 'linux-kselftest-kunit-6.6-rc1' of... · 815c24a0
      Linus Torvalds authored
      Merge tag 'linux-kselftest-kunit-6.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull kunit updates from Shuah Khan:
      
       - add support for running Rust documentation tests as KUnit tests
      
       - make init, str, sync, types doctests compilable/testable
      
       - add support for attributes API which include speed, modules
         attributes, ability to filter and report attributes
      
       - add support for marking tests slow using attributes API
      
       - add attributes API documentation
      
       - fix a wild-memory-access bug in kunit_filter_suites() and a possible
         memory leak in kunit_filter_suites()
      
       - add support for counting number of test suites in a module, list
         action to kunit test modules, and test filtering on module tests
      
      * tag 'linux-kselftest-kunit-6.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest: (25 commits)
        kunit: fix struct kunit_attr header
        kunit: replace KUNIT_TRIGGER_STATIC_STUB maro with KUNIT_STATIC_STUB_REDIRECT
        kunit: Allow kunit test modules to use test filtering
        kunit: Make 'list' action available to kunit test modules
        kunit: Report the count of test suites in a module
        kunit: fix uninitialized variables bug in attributes filtering
        kunit: fix possible memory leak in kunit_filter_suites()
        kunit: fix wild-memory-access bug in kunit_filter_suites()
        kunit: Add documentation of KUnit test attributes
        kunit: add tests for filtering attributes
        kunit: time: Mark test as slow using test attributes
        kunit: memcpy: Mark tests as slow using test attributes
        kunit: tool: Add command line interface to filter and report attributes
        kunit: Add ability to filter attributes
        kunit: Add module attribute
        kunit: Add speed attribute
        kunit: Add test attributes API structure
        MAINTAINERS: add Rust KUnit files to the KUnit entry
        rust: support running Rust documentation tests as KUnit ones
        rust: types: make doctests compilable/testable
        ...
      815c24a0
    • Linus Torvalds's avatar
      Merge tag 'linux-kselftest-next-6.6-rc1' of... · 5a31cc72
      Linus Torvalds authored
      Merge tag 'linux-kselftest-next-6.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull Kselftest updates from Shuah Khan:
       "A mix of fixes, enhancements, and new tests. Bulk of the changes
        enhance and fix rseq and resctrl tests.
      
        In addition, user_events, dmabuf-heaps and perf_events are added to
        default kselftest build and test coverage. A futex test fix, enhance
        prctl test coverage, and minor fixes are included in this update"
      
      * tag 'linux-kselftest-next-6.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest: (32 commits)
        selftests: cachestat: use proper syscall number macro
        selftests: cachestat: properly link in librt
        selftests/futex: Order calls to futex_lock_pi
        selftests: Hook more tests into the build infrastructure
        selftests/user_events: Reenable build
        selftests/filesystems: Add six consecutive 'x' characters to mktemp
        selftests/rseq: Use rseq_unqual_scalar_typeof in macros
        selftests/rseq: Fix arm64 buggy load-acquire/store-release macros
        selftests/rseq: Implement rseq_unqual_scalar_typeof
        selftests/rseq: Fix CID_ID typo in Makefile
        selftests:prctl: add set-process-name to .gitignore
        selftests:prctl: Fix make clean override warning
        selftests/resctrl: Remove test type checks from cat_val()
        selftests/resctrl: Pass the real number of tests to show_cache_info()
        selftests/resctrl: Move CAT/CMT test global vars to function they are used in
        selftests/resctrl: Don't use variable argument list for ->setup()
        selftests/resctrl: Don't pass test name to fill_buf
        selftests/resctrl: Improve parameter consistency in fill_buf
        selftests/resctrl: Remove unnecessary startptr global from fill_buf
        selftests/resctrl: Remove "malloc_and_init_memory" param from run_fill_buf()
        ...
      5a31cc72
    • Linus Torvalds's avatar
      Merge tag 'thermal-6.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 36534782
      Linus Torvalds authored
      Pull thermal control updates from Rafael Wysocki:
       "These rework the Intel DTS IOSF and the ACPI thermal drivers to pass
        tables of generic trip point structures to the core during
        initialization and make some requisite modifications in the thermal
        core, fix a few issues elsewhere and clean up code.
      
        This includes changes that are present in the ACPI updates too,
        because they involve both ACPI and the thermal core. The list of
        specific changes below is limited to thermal control, however.
      
        Specifics:
      
         - Make the ACPI thermal driver use its own Notify() handler (Michal
           Wilczynski)
      
         - Rework the ACPI thermal driver to use a table of generic trip point
           structures on top of the internal representation of trip points and
           remove thermal zone callbacks that are not necessary any more from
           that driver (Rafael Wysocki)
      
         - Fix a few issues in the Intel DTS IOSF thermal driver, clean up
           code in it and make it pass tables of generic trip point structures
           to the core during thermal zone registration (Rafael Wysocki)
      
         - Drop a redundant check from the Intel DTS IOSF thermal driver's
           "remove" routine (Zhang Rui)
      
         - Use module_platform_driver() to replace an open-coded counterpart
           of it in the int340x thermal driver (Yang Yingliang)
      
         - Fix possible uninitialized value access in __thermal_of_bind() and
           __thermal_of_unbind() (Peng Fan)
      
         - Make the int3400 driver use thermal zone device wrappers (Daniel
           Lezcano)
      
         - Remove redundant thermal zone state check from the int340x thermal
           driver (Daniel Lezcano)
      
         - Drop non-functional nocrt parameter from ACPI thermal (Mario
           Limonciello)
      
         - Explicitly include correct DT includes in the thermal core and
           drivers (Rob Herring)"
      
      * tag 'thermal-6.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        thermal: intel: intel_soc_dts_iosf: Remove redundant check
        thermal: intel: int340x: simplify the code with module_platform_driver()
        thermal/of: Fix potential uninitialized value access
        thermal: intel: intel_soc_dts_iosf: Use struct thermal_trip
        thermal: intel: intel_soc_dts_iosf: Rework critical trip setup
        thermal: intel: intel_soc_dts_iosf: Add helper for resetting trip points
        thermal: intel: intel_soc_dts_iosf: Change initialization ordering
        thermal: intel: intel_soc_dts_iosf: Pass sensors to update_trip_temp()
        thermal: intel: intel_soc_dts_iosf: Untangle update_trip_temp()
        thermal: intel: intel_soc_dts_iosf: Always assume notification support
        thermal: intel: intel_soc_dts_iosf: Drop redundant symbol definition
        thermal: intel: intel_soc_dts_iosf: Always use 2 trips
        thermal: Explicitly include correct DT includes
        thermal/drivers/int340x: Do not check the thermal zone state
        thermal/drivers/int3400: Use thermal zone device wrappers
      36534782
    • Linus Torvalds's avatar
      Merge tag 'pm-6.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · ccc5e981
      Linus Torvalds authored
      Pull power management updates from Rafael Wysocki:
       "These rework cpuidle governors to call tick_nohz_get_sleep_length()
        less often and fix one of them, rework hibernation to avoid storing
        pages filled with zeros in hibernation images, switch over some
        cpufreq drivers to use void remove callbacks, fix and clean up
        multiple cpufreq drivers, fix the devfreq core, update the cpupower
        utility and make other assorted improvements.
      
        Specifics:
      
         - Rework the menu and teo cpuidle governors to avoid calling
           tick_nohz_get_sleep_length(), which is likely to become quite
           expensive going forward, too often and improve making decisions
           regarding whether or not to stop the scheduler tick in the teo
           governor (Rafael Wysocki)
      
         - Improve the performance of cpufreq_stats_create_table() in some
           cases (Liao Chang)
      
         - Fix two issues in the amd-pstate-ut cpufreq driver (Swapnil Sapkal)
      
         - Use clamp() helper macro to improve the code readability in
           cpufreq_verify_within_limits() (Liao Chang)
      
         - Set stale CPU frequency to minimum in intel_pstate (Doug Smythies)
      
         - Migrate cpufreq drivers for various platforms to use void remove
           callback (Yangtao Li)
      
         - Add online/offline/exit hooks for Tegra driver (Sumit Gupta)
      
         - Explicitly include correct DT includes in cpufreq (Rob Herring)
      
         - Frequency domain updates for qcom-hw driver (Neil Armstrong)
      
         - Modify AMD pstate driver return the highest_perf value (Meng Li)
      
         - Generic cleanups for cppc, mediatek and powernow driver (Liao
           Chang, Konrad Dybcio)
      
         - Add more platforms to cpufreq-arm driver's blocklist
           (AngeloGioacchino Del Regno and Konrad Dybcio)
      
         - brcmstb-avs-cpufreq: Fix -Warray-bounds bug (Gustavo A. R. Silva)
      
         - Add device PM helpers to allow a device to remain powered-on during
           system-wide transitions (Ulf Hansson)
      
         - Rework hibernation memory snapshotting to avoid storing pages
           filled with zeros in hibernation image files (Brian Geffon)
      
         - Add check to make sure that CPU latency QoS constraints do not use
           negative values (Clive Lin)
      
         - Optimize rp->domains memory allocation in the Intel RAPL power
           capping driver (xiongxin)
      
         - Remove recursion while parsing zones in the arm_scmi power capping
           driver (Cristian Marussi)
      
         - Fix memory leak in devfreq_dev_release() (Boris Brezillon)
      
         - Rewrite devfreq_monitor_start() kerneldoc comment (Manivannan
           Sadhasivam)
      
         - Explicitly include correct DT includes in devfreq (Rob Herring)
      
         - Remove unsued pm_runtime_update_max_time_suspended() extern
           declaration (YueHaibing)
      
         - Add turbo-boost support to cpupower (Wyes Karny)
      
         - Add support for amd_pstate mode change to cpupower (Wyes Karny)
      
         - Fix 'cpupower idle_set' command to accept only numeric values of
           arguments (Likhitha Korrapati)
      
         - Clean up OPP code and add new frequency related APIs to it (Viresh
           Kumar, Manivannan Sadhasivam)
      
         - Convert ti cpufreq/opp bindings to json schema (Nishanth Menon)"
      
      * tag 'pm-6.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (74 commits)
        cpufreq: tegra194: remove opp table in exit hook
        cpufreq: powernow-k8: Use related_cpus instead of cpus in driver.exit()
        cpufreq: tegra194: add online/offline hooks
        cpuidle: teo: Avoid unnecessary variable assignments
        cpufreq: qcom-cpufreq-hw: add support for 4 freq domains
        dt-bindings: cpufreq: qcom-hw: add a 4th frequency domain
        cpufreq: amd-pstate-ut: Fix kernel panic when loading the driver
        cpufreq: amd-pstate-ut: Remove module parameter access
        cpufreq: Use clamp() helper macro to improve the code readability
        PM: sleep: Add helpers to allow a device to remain powered-on
        PM: QoS: Add check to make sure CPU latency is non-negative
        PM: runtime: Remove unsued extern declaration of pm_runtime_update_max_time_suspended()
        cpufreq: intel_pstate: set stale CPU frequency to minimum
        cpufreq: stats: Improve the performance of cpufreq_stats_create_table()
        dt-bindings: cpufreq: Convert ti-cpufreq to json schema
        dt-bindings: opp: Convert ti-omap5-opp-supply to json schema
        OPP: Fix argument name in doc comment
        cpuidle: menu: Skip tick_nohz_get_sleep_length() call in some cases
        cpufreq: cppc: Set fie_disabled to FIE_DISABLED if fails to create kworker_fie
        cpufreq: cppc: cppc_cpufreq_get_rate() returns zero in all error cases.
        ...
      ccc5e981
    • Linus Torvalds's avatar
      Merge tag 'acpi-6.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 330235e8
      Linus Torvalds authored
      Pull ACPI updates from Rafael Wysocki:
       "These include new ACPICA material, a rework of the ACPI thermal
        driver, a switch-over of the ACPI processor driver to using _OSC
        instead of (long deprecated) _PDC for CPU initialization, a rework of
        firmware notifications handling in several drivers, fixes and cleanups
        for suspend-to-idle handling on AMD systems, ACPI backlight driver
        updates and more.
      
        Specifics:
      
         - Update the ACPICA code in the kernel to upstream revision 20230628
           including the following changes:
            - Suppress a GCC 12 dangling-pointer warning (Philip Prindeville)
            - Reformat the ACPI_STATE_COMMON macro and its users (George Guo)
            - Replace the ternary operator with ACPI_MIN() (Jiangshan Yi)
            - Add support for _DSC as per ACPI 6.5 (Saket Dumbre)
            - Remove a duplicate macro from zephyr header (Najumon B.A)
            - Add data structures for GED and _EVT tracking (Jose Marinho)
            - Fix misspelled CDAT DSMAS define (Dave Jiang)
            - Simplify an error message in acpi_ds_result_push() (Christophe
              Jaillet)
            - Add a struct size macro related to SRAT (Dave Jiang)
            - Add AML_NO_OPERAND_RESOLVE flag to Timer (Abhishek Mainkar)
            - Add support for RISC-V external interrupt controllers in MADT
              (Sunil V L)
            - Add RHCT flags, CMO and MMU nodes (Sunil V L)
            - Change ACPICA version to 20230628 (Bob Moore)
      
         - Introduce new wrappers for ACPICA notify handler install/remove and
           convert multiple drivers to using their own Notify() handlers
           instead of the ACPI bus type .notify() slated for removal (Michal
           Wilczynski)
      
         - Add backlight=native DMI quirk for Apple iMac12,1 and iMac12,2
           (Hans de Goede)
      
         - Put ACPI video and its child devices explicitly into D0 on boot to
           avoid platform firmware confusion (Kai-Heng Feng)
      
         - Add backlight=native DMI quirk for Lenovo Ideapad Z470 (Jiri Slaby)
      
         - Support obtaining physical CPU ID from MADT on LoongArch (Bibo Mao)
      
         - Convert ACPI CPU initialization to using _OSC instead of _PDC that
           has been depreceted since 2018 and dropped from the specification
           in ACPI 6.5 (Michal Wilczynski, Rafael Wysocki)
      
         - Drop non-functional nocrt parameter from ACPI thermal (Mario
           Limonciello)
      
         - Clean up the ACPI thermal driver, rework the handling of firmware
           notifications in it and make it provide a table of generic trip
           point structures to the core during initialization (Rafael Wysocki)
      
         - Defer enumeration of devices with _DEP pointing to IVSC (Wentong
           Wu)
      
         - Install SystemCMOS address space handler for ACPI000E (TAD) to meet
           platform firmware expectations on some platforms (Zhang Rui)
      
         - Fix finding the generic error data in the ACPi extlog driver for
           compatibility with old and new firmware interface versions
           (Xiaochun Lee)
      
         - Remove assorted unused declarations of functions (Yue Haibing)
      
         - Move AMBA bus scan handling into arm64 specific directory (Sudeep
           Holla)
      
         - Fix and clean up suspend-to-idle interface for AMD systems (Mario
           Limonciello, Andy Shevchenko)
      
         - Fix string truncation warning in pnpacpi_add_device() (Sunil V L)"
      
      * tag 'acpi-6.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (66 commits)
        ACPI: x86: s2idle: Add a function to get LPS0 constraint for a device
        ACPI: x86: s2idle: Add for_each_lpi_constraint() helper
        ACPI: x86: s2idle: Add more debugging for AMD constraints parsing
        ACPI: x86: s2idle: Fix a logic error parsing AMD constraints table
        ACPI: x86: s2idle: Catch multiple ACPI_TYPE_PACKAGE objects
        ACPI: x86: s2idle: Post-increment variables when getting constraints
        ACPI: Adjust #ifdef for *_lps0_dev use
        ACPI: TAD: Install SystemCMOS address space handler for ACPI000E
        ACPI: Remove assorted unused declarations of functions
        ACPI: extlog: Fix finding the generic error data for v3 structure
        PNP: ACPI: Fix string truncation warning
        ACPI: Remove unused extern declaration acpi_paddr_to_node()
        ACPI: video: Add backlight=native DMI quirk for Apple iMac12,1 and iMac12,2
        ACPI: video: Put ACPI video and its child devices into D0 on boot
        ACPI: processor: LoongArch: Get physical ID from MADT
        ACPI: scan: Defer enumeration of devices with a _DEP pointing to IVSC device
        ACPI: thermal: Eliminate code duplication from acpi_thermal_notify()
        ACPI: thermal: Drop unnecessary thermal zone callbacks
        ACPI: thermal: Rework thermal_get_trend()
        ACPI: thermal: Use trip point table to register thermal zones
        ...
      330235e8
    • Linus Torvalds's avatar
      Merge tag 'tag-chrome-platform-firmware-for-v6.6' of... · 2927d226
      Linus Torvalds authored
      Merge tag 'tag-chrome-platform-firmware-for-v6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux
      
      Pull chrome platform firmware update from Tzung-Bi Shih:
      
       - Add MAINTAINERS entry for chrome platform firmware
      
      * tag 'tag-chrome-platform-firmware-for-v6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux:
        MAINTAINERS: Add drivers/firmware/google/ entry
      2927d226
    • Linus Torvalds's avatar
      Merge tag 'tag-chrome-platform-for-v6.6' of... · 670f0897
      Linus Torvalds authored
      Merge tag 'tag-chrome-platform-for-v6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux
      
      Pull chrome platform updates from Tzung-Bi Shih:
       "Improvements:
      
        - Remove shutdown timeout on EC panic for offering the filesystem a
          chance to sync
      
        - Support official HID "GOOG0016" for ChromeOS ACPI
      
        Fixes:
      
        - Print hex string instead of using "%s" for ACPI_TYPE_BUFFER
      
        Misc:
      
        - Update MAINTAINERS"
      
      * tag 'tag-chrome-platform-for-v6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux:
        platform/chrome: chromeos_acpi: print hex string for ACPI_TYPE_BUFFER
        platform/chrome: chromeos_acpi: support official HID GOOG0016
        platform/chrome: cros_ec_lpc: Remove EC panic shutdown timeout
        MAINTAINERS: update maintainers of chrome-platform
      670f0897
    • Linus Torvalds's avatar
      Merge tag 'for-linus-6.6-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · 6383cb42
      Linus Torvalds authored
      Pull xen updates from Juergen Gross:
      
       - a bunch of minor cleanups
      
       - a patch adding irqfd support for virtio backends running as user
         daemon supporting Xen guests
      
      * tag 'for-linus-6.6-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
        xen: privcmd: Add support for irqfd
        xen/xenbus: Avoid a lockdep warning when adding a watch
        xen: Fix one kernel-doc comment
        xen: xenbus: Use helper function IS_ERR_OR_NULL()
        xen: Switch to use kmemdup() helper
        xen-pciback: Remove unused function declarations
        x86/xen: Make virt_to_pfn() a static inline
        xen: remove a confusing comment on auto-translated guest I/O
        xen/evtchn: Remove unused function declaration xen_set_affinity_evtchn()
      6383cb42
    • Linus Torvalds's avatar
      Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 54203417
      Linus Torvalds authored
      Pull arm64 updates from Will Deacon:
       "I think we have a bit less than usual on the architecture side, but
        that's somewhat balanced out by a large crop of perf/PMU driver
        updates and extensions to our selftests.
      
        CPU features and system registers:
      
         - Advertise hinted conditional branch support (FEAT_HBC) to userspace
      
         - Avoid false positive "SANITY CHECK" warning when xCR registers
           differ outside of the length field
      
        Documentation:
      
         - Fix macro name typo in SME documentation
      
        Entry code:
      
         - Unmask exceptions earlier on the system call entry path
      
        Memory management:
      
         - Don't bother clearing PTE_RDONLY for dirty ptes in pte_wrprotect()
           and pte_modify()
      
        Perf and PMU drivers:
      
         - Initial support for Coresight TRBE devices on ACPI systems (the
           coresight driver changes will come later)
      
         - Fix hw_breakpoint single-stepping when called from bpf
      
         - Fixes for DDR PMU on i.MX8MP SoC
      
         - Add NUMA-awareness to Hisilicon PCIe PMU driver
      
         - Fix locking dependency issue in Arm DMC620 PMU driver
      
         - Workaround Hisilicon erratum 162001900 in the SMMUv3 PMU driver
      
         - Add support for Arm CMN-700 r3 parts to the CMN PMU driver
      
         - Add support for recent Arm Cortex CPU PMUs
      
         - Update Hisilicon PMU maintainers
      
        Selftests:
      
         - Add a bunch of new features to the hwcap test (JSCVT, PMULL, AES,
           SHA1, etc)
      
         - Fix SSVE test to leave streaming-mode after grabbing the signal
           context
      
         - Add new test for SVE vector-length changes with SME enabled
      
        Miscellaneous:
      
         - Allow compiler to warn on suspicious looking system register
           expressions
      
         - Work around SDEI firmware bug by aborting any running handlers on a
           kernel crash
      
         - Fix some harmless warnings when building with W=1
      
         - Remove some unused function declarations
      
         - Other minor fixes and cleanup"
      
      * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (62 commits)
        drivers/perf: hisi: Update HiSilicon PMU maintainers
        arm_pmu: acpi: Add a representative platform device for TRBE
        arm_pmu: acpi: Refactor arm_spe_acpi_register_device()
        kselftest/arm64: Fix hwcaps selftest build
        hw_breakpoint: fix single-stepping when using bpf_overflow_handler
        arm64/sysreg: refactor deprecated strncpy
        kselftest/arm64: add jscvt feature to hwcap test
        kselftest/arm64: add pmull feature to hwcap test
        kselftest/arm64: add AES feature check to hwcap test
        kselftest/arm64: add SHA1 and related features to hwcap test
        arm64: sysreg: Generate C compiler warnings on {read,write}_sysreg_s arguments
        kselftest/arm64: build BTI tests in output directory
        perf/imx_ddr: don't enable counter0 if none of 4 counters are used
        perf/imx_ddr: speed up overflow frequency of cycle
        drivers/perf: hisi: Schedule perf session according to locality
        kselftest/arm64: fix a memleak in zt_regs_run()
        perf/arm-dmc620: Fix dmc620_pmu_irqs_lock/cpu_hotplug_lock circular lock dependency
        perf/smmuv3: Add MODULE_ALIAS for module auto loading
        perf/smmuv3: Enable HiSilicon Erratum 162001900 quirk for HIP08/09
        kselftest/arm64: Size sycall-abi buffers for the actual maximum VL
        ...
      54203417
    • Linus Torvalds's avatar
      Merge tag 'm68k-for-v6.6-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k · bb2d9e54
      Linus Torvalds authored
      Pull m68k updates from Geert Uytterhoeven:
      
       - Remove <asm/export.h>
      
       - Miscellaneous W=1 fixes
      
       - defconfig updates
      
      * tag 'm68k-for-v6.6-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
        zorro: Include zorro.h in names.c
        m68k: Add memcmp() declaration
        m68k: Define __div64_32() to avoid a warning
        m68k: Remove <asm/export.h>
        m68k: Replace #include <asm/export.h> with #include <linux/export.h>
        m68k: defconfig: Update defconfigs for v6.5-rc1
      bb2d9e54