Skip to content
  1. Apr 03, 2023
  2. Mar 31, 2023
    • Kan Liang's avatar
      iommu/vt-d: Fix an IOMMU perfmon warning when CPU hotplug · 16812c96
      Kan Liang authored
      
      
      A warning can be triggered when hotplug CPU 0.
      $ echo 0 > /sys/devices/system/cpu/cpu0/online
      
       ------------[ cut here ]------------
       Voluntary context switch within RCU read-side critical section!
       WARNING: CPU: 0 PID: 19 at kernel/rcu/tree_plugin.h:318
                rcu_note_context_switch+0x4f4/0x580
       RIP: 0010:rcu_note_context_switch+0x4f4/0x580
       Call Trace:
        <TASK>
        ? perf_event_update_userpage+0x104/0x150
        __schedule+0x8d/0x960
        ? perf_event_set_state.part.82+0x11/0x50
        schedule+0x44/0xb0
        schedule_timeout+0x226/0x310
        ? __perf_event_disable+0x64/0x1a0
        ? _raw_spin_unlock+0x14/0x30
        wait_for_completion+0x94/0x130
        __wait_rcu_gp+0x108/0x130
        synchronize_rcu+0x67/0x70
        ? invoke_rcu_core+0xb0/0xb0
        ? __bpf_trace_rcu_stall_warning+0x10/0x10
        perf_pmu_migrate_context+0x121/0x370
        iommu_pmu_cpu_offline+0x6a/0xa0
        ? iommu_pmu_del+0x1e0/0x1e0
        cpuhp_invoke_callback+0x129/0x510
        cpuhp_thread_fun+0x94/0x150
        smpboot_thread_fn+0x183/0x220
        ? sort_range+0x20/0x20
        kthread+0xe6/0x110
        ? kthread_complete_and_exit+0x20/0x20
        ret_from_fork+0x1f/0x30
        </TASK>
       ---[ end trace 0000000000000000 ]---
      
      The synchronize_rcu() will be invoked in the perf_pmu_migrate_context(),
      when migrating a PMU to a new CPU. However, the current for_each_iommu()
      is within RCU read-side critical section.
      
      Two methods were considered to fix the issue.
      - Use the dmar_global_lock to replace the RCU read lock when going
        through the drhd list. But it triggers a lockdep warning.
      - Use the cpuhp_setup_state_multi() to set up a dedicated state for each
        IOMMU PMU. The lock can be avoided.
      
      The latter method is implemented in this patch. Since each IOMMU PMU has
      a dedicated state, add cpuhp_node and cpu in struct iommu_pmu to track
      the state. The state can be dynamically allocated now. Remove the
      CPUHP_AP_PERF_X86_IOMMU_PERF_ONLINE.
      
      Fixes: 46284c6c ("iommu/vt-d: Support cpumask for IOMMU perfmon")
      Reported-by: default avatarAmmy Yi <ammy.yi@intel.com>
      Signed-off-by: default avatarKan Liang <kan.liang@linux.intel.com>
      Link: https://lore.kernel.org/r/20230328182028.1366416-1-kan.liang@linux.intel.com
      
      
      Signed-off-by: default avatarLu Baolu <baolu.lu@linux.intel.com>
      Link: https://lore.kernel.org/r/20230329134721.469447-4-baolu.lu@linux.intel.com
      
      
      Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
      16812c96
  3. Mar 30, 2023
  4. Mar 27, 2023
  5. Mar 24, 2023
  6. Mar 22, 2023
  7. Mar 21, 2023
    • Josh Poimboeuf's avatar
      entry: Fix noinstr warning in __enter_from_user_mode() · f87d2867
      Josh Poimboeuf authored
      
      
      __enter_from_user_mode() is triggering noinstr warnings with
      CONFIG_DEBUG_PREEMPT due to its call of preempt_count_add() via
      ct_state().
      
      The preemption disable isn't needed as interrupts are already disabled.
      And the context_tracking_enabled() check in ct_state() also isn't needed
      as that's already being done by the CT_WARN_ON().
      
      Just use __ct_state() instead.
      
      Fixes the following warnings:
      
        vmlinux.o: warning: objtool: enter_from_user_mode+0xba: call to preempt_count_add() leaves .noinstr.text section
        vmlinux.o: warning: objtool: syscall_enter_from_user_mode+0xf9: call to preempt_count_add() leaves .noinstr.text section
        vmlinux.o: warning: objtool: syscall_enter_from_user_mode_prepare+0xc7: call to preempt_count_add() leaves .noinstr.text section
        vmlinux.o: warning: objtool: irqentry_enter_from_user_mode+0xba: call to preempt_count_add() leaves .noinstr.text section
      
      Fixes: 17147677 ("context_tracking: Convert state to atomic_t")
      Signed-off-by: default avatarJosh Poimboeuf <jpoimboe@kernel.org>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Link: https://lore.kernel.org/r/d8955fa6d68dc955dda19baf13ae014ae27926f5.1677369694.git.jpoimboe@kernel.org
      f87d2867
    • Jens Axboe's avatar
      block/io_uring: pass in issue_flags for uring_cmd task_work handling · 9d2789ac
      Jens Axboe authored
      
      
      io_uring_cmd_done() currently assumes that the uring_lock is held
      when invoked, and while it generally is, this is not guaranteed.
      Pass in the issue_flags associated with it, so that we have
      IO_URING_F_UNLOCKED available to be able to lock the CQ ring
      appropriately when completing events.
      
      Cc: stable@vger.kernel.org
      Fixes: ee692a21 ("fs,io_uring: add infrastructure for uring-cmd")
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      9d2789ac
  8. Mar 19, 2023
  9. Mar 18, 2023
    • Hans de Goede's avatar
      efi: sysfb_efi: Fix DMI quirks not working for simpledrm · 3615c786
      Hans de Goede authored
      
      
      Commit 8633ef82 ("drivers/firmware: consolidate EFI framebuffer setup
      for all arches") moved the sysfb_apply_efi_quirks() call in sysfb_init()
      from before the [sysfb_]parse_mode() call to after it.
      But sysfb_apply_efi_quirks() modifies the global screen_info struct which
      [sysfb_]parse_mode() parses, so doing it later is too late.
      
      This has broken all DMI based quirks for correcting wrong firmware efifb
      settings when simpledrm is used.
      
      To fix this move the sysfb_apply_efi_quirks() call back to its old place
      and split the new setup of the efifb_fwnode (which requires
      the platform_device) into its own function and call that at
      the place of the moved sysfb_apply_efi_quirks(pd) calls.
      
      Fixes: 8633ef82 ("drivers/firmware: consolidate EFI framebuffer setup for all arches")
      Cc: stable@vger.kernel.org
      Cc: Javier Martinez Canillas <javierm@redhat.com>
      Cc: Thomas Zimmermann <tzimmermann@suse.de>
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Reviewed-by: default avatarJavier Martinez Canillas <javierm@redhat.com>
      Signed-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
      3615c786
  10. Mar 17, 2023
  11. Mar 15, 2023
    • Yu Kuai's avatar
      block: count 'ios' and 'sectors' when io is done for bio-based device · 5f275713
      Yu Kuai authored
      
      
      While using iostat for raid, I observed very strange 'await'
      occasionally, and turns out it's due to that 'ios' and 'sectors' is
      counted in bdev_start_io_acct(), while 'nsecs' is counted in
      bdev_end_io_acct(). I'm not sure why they are ccounted like that
      but I think this behaviour is obviously wrong because user will get
      wrong disk stats.
      
      Fix the problem by counting 'ios' and 'sectors' when io is done, like
      what rq-based device does.
      
      Fixes: 394ffa50 ("blk: introduce generic io stat accounting help function")
      Signed-off-by: default avatarYu Kuai <yukuai3@huawei.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Link: https://lore.kernel.org/r/20230223091226.1135678-1-yukuai1@huaweicloud.com
      
      
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      5f275713
    • Minwoo Im's avatar
      nvme-trace: show more opcode names · 8e19b87c
      Minwoo Im authored
      
      
      We have more commands to show in the trace. Sync up.
      
      Signed-off-by: default avatarMinwoo Im <minwoo.im.dev@gmail.com>
      Reviewed-by: default avatarChaitanya Kulkarni <kch@nvidia.com>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      8e19b87c
    • Liu Ying's avatar
      drm/bridge: Fix returned array size name for atomic_get_input_bus_fmts kdoc · 0d3c9333
      Liu Ying authored
      
      
      The returned array size for input formats is set through
      atomic_get_input_bus_fmts()'s 'num_input_fmts' argument, so use
      'num_input_fmts' to represent the array size in the function's kdoc,
      not 'num_output_fmts'.
      
      Fixes: 91ea8330 ("drm/bridge: Fix the bridge kernel doc")
      Fixes: f32df58a ("drm/bridge: Add the necessary bits to support bus format negotiation")
      Signed-off-by: default avatarLiu Ying <victor.liu@nxp.com>
      Reviewed-by: default avatarRobert Foss <rfoss@kernel.org>
      Signed-off-by: default avatarNeil Armstrong <neil.armstrong@linaro.org>
      Link: https://patchwork.freedesktop.org/patch/msgid/20230314055035.3731179-1-victor.liu@nxp.com
      0d3c9333
    • Eric Dumazet's avatar
      net: tunnels: annotate lockless accesses to dev->needed_headroom · 4b397c06
      Eric Dumazet authored
      
      
      IP tunnels can apparently update dev->needed_headroom
      in their xmit path.
      
      This patch takes care of three tunnels xmit, and also the
      core LL_RESERVED_SPACE() and LL_RESERVED_SPACE_EXTRA()
      helpers.
      
      More changes might be needed for completeness.
      
      BUG: KCSAN: data-race in ip_tunnel_xmit / ip_tunnel_xmit
      
      read to 0xffff88815b9da0ec of 2 bytes by task 888 on cpu 1:
      ip_tunnel_xmit+0x1270/0x1730 net/ipv4/ip_tunnel.c:803
      __gre_xmit net/ipv4/ip_gre.c:469 [inline]
      ipgre_xmit+0x516/0x570 net/ipv4/ip_gre.c:661
      __netdev_start_xmit include/linux/netdevice.h:4881 [inline]
      netdev_start_xmit include/linux/netdevice.h:4895 [inline]
      xmit_one net/core/dev.c:3580 [inline]
      dev_hard_start_xmit+0x127/0x400 net/core/dev.c:3596
      __dev_queue_xmit+0x1007/0x1eb0 net/core/dev.c:4246
      dev_queue_xmit include/linux/netdevice.h:3051 [inline]
      neigh_direct_output+0x17/0x20 net/core/neighbour.c:1623
      neigh_output include/net/neighbour.h:546 [inline]
      ip_finish_output2+0x740/0x840 net/ipv4/ip_output.c:228
      ip_finish_output+0xf4/0x240 net/ipv4/ip_output.c:316
      NF_HOOK_COND include/linux/netfilter.h:291 [inline]
      ip_output+0xe5/0x1b0 net/ipv4/ip_output.c:430
      dst_output include/net/dst.h:444 [inline]
      ip_local_out+0x64/0x80 net/ipv4/ip_output.c:126
      iptunnel_xmit+0x34a/0x4b0 net/ipv4/ip_tunnel_core.c:82
      ip_tunnel_xmit+0x1451/0x1730 net/ipv4/ip_tunnel.c:813
      __gre_xmit net/ipv4/ip_gre.c:469 [inline]
      ipgre_xmit+0x516/0x570 net/ipv4/ip_gre.c:661
      __netdev_start_xmit include/linux/netdevice.h:4881 [inline]
      netdev_start_xmit include/linux/netdevice.h:4895 [inline]
      xmit_one net/core/dev.c:3580 [inline]
      dev_hard_start_xmit+0x127/0x400 net/core/dev.c:3596
      __dev_queue_xmit+0x1007/0x1eb0 net/core/dev.c:4246
      dev_queue_xmit include/linux/netdevice.h:3051 [inline]
      neigh_direct_output+0x17/0x20 net/core/neighbour.c:1623
      neigh_output include/net/neighbour.h:546 [inline]
      ip_finish_output2+0x740/0x840 net/ipv4/ip_output.c:228
      ip_finish_output+0xf4/0x240 net/ipv4/ip_output.c:316
      NF_HOOK_COND include/linux/netfilter.h:291 [inline]
      ip_output+0xe5/0x1b0 net/ipv4/ip_output.c:430
      dst_output include/net/dst.h:444 [inline]
      ip_local_out+0x64/0x80 net/ipv4/ip_output.c:126
      iptunnel_xmit+0x34a/0x4b0 net/ipv4/ip_tunnel_core.c:82
      ip_tunnel_xmit+0x1451/0x1730 net/ipv4/ip_tunnel.c:813
      __gre_xmit net/ipv4/ip_gre.c:469 [inline]
      ipgre_xmit+0x516/0x570 net/ipv4/ip_gre.c:661
      __netdev_start_xmit include/linux/netdevice.h:4881 [inline]
      netdev_start_xmit include/linux/netdevice.h:4895 [inline]
      xmit_one net/core/dev.c:3580 [inline]
      dev_hard_start_xmit+0x127/0x400 net/core/dev.c:3596
      __dev_queue_xmit+0x1007/0x1eb0 net/core/dev.c:4246
      dev_queue_xmit include/linux/netdevice.h:3051 [inline]
      neigh_direct_output+0x17/0x20 net/core/neighbour.c:1623
      neigh_output include/net/neighbour.h:546 [inline]
      ip_finish_output2+0x740/0x840 net/ipv4/ip_output.c:228
      ip_finish_output+0xf4/0x240 net/ipv4/ip_output.c:316
      NF_HOOK_COND include/linux/netfilter.h:291 [inline]
      ip_output+0xe5/0x1b0 net/ipv4/ip_output.c:430
      dst_output include/net/dst.h:444 [inline]
      ip_local_out+0x64/0x80 net/ipv4/ip_output.c:126
      iptunnel_xmit+0x34a/0x4b0 net/ipv4/ip_tunnel_core.c:82
      ip_tunnel_xmit+0x1451/0x1730 net/ipv4/ip_tunnel.c:813
      __gre_xmit net/ipv4/ip_gre.c:469 [inline]
      ipgre_xmit+0x516/0x570 net/ipv4/ip_gre.c:661
      __netdev_start_xmit include/linux/netdevice.h:4881 [inline]
      netdev_start_xmit include/linux/netdevice.h:4895 [inline]
      xmit_one net/core/dev.c:3580 [inline]
      dev_hard_start_xmit+0x127/0x400 net/core/dev.c:3596
      __dev_queue_xmit+0x1007/0x1eb0 net/core/dev.c:4246
      dev_queue_xmit include/linux/netdevice.h:3051 [inline]
      neigh_direct_output+0x17/0x20 net/core/neighbour.c:1623
      neigh_output include/net/neighbour.h:546 [inline]
      ip_finish_output2+0x740/0x840 net/ipv4/ip_output.c:228
      ip_finish_output+0xf4/0x240 net/ipv4/ip_output.c:316
      NF_HOOK_COND include/linux/netfilter.h:291 [inline]
      ip_output+0xe5/0x1b0 net/ipv4/ip_output.c:430
      dst_output include/net/dst.h:444 [inline]
      ip_local_out+0x64/0x80 net/ipv4/ip_output.c:126
      iptunnel_xmit+0x34a/0x4b0 net/ipv4/ip_tunnel_core.c:82
      ip_tunnel_xmit+0x1451/0x1730 net/ipv4/ip_tunnel.c:813
      __gre_xmit net/ipv4/ip_gre.c:469 [inline]
      ipgre_xmit+0x516/0x570 net/ipv4/ip_gre.c:661
      __netdev_start_xmit include/linux/netdevice.h:4881 [inline]
      netdev_start_xmit include/linux/netdevice.h:4895 [inline]
      xmit_one net/core/dev.c:3580 [inline]
      dev_hard_start_xmit+0x127/0x400 net/core/dev.c:3596
      __dev_queue_xmit+0x1007/0x1eb0 net/core/dev.c:4246
      dev_queue_xmit include/linux/netdevice.h:3051 [inline]
      neigh_direct_output+0x17/0x20 net/core/neighbour.c:1623
      neigh_output include/net/neighbour.h:546 [inline]
      ip_finish_output2+0x740/0x840 net/ipv4/ip_output.c:228
      ip_finish_output+0xf4/0x240 net/ipv4/ip_output.c:316
      NF_HOOK_COND include/linux/netfilter.h:291 [inline]
      ip_output+0xe5/0x1b0 net/ipv4/ip_output.c:430
      dst_output include/net/dst.h:444 [inline]
      ip_local_out+0x64/0x80 net/ipv4/ip_output.c:126
      iptunnel_xmit+0x34a/0x4b0 net/ipv4/ip_tunnel_core.c:82
      ip_tunnel_xmit+0x1451/0x1730 net/ipv4/ip_tunnel.c:813
      __gre_xmit net/ipv4/ip_gre.c:469 [inline]
      ipgre_xmit+0x516/0x570 net/ipv4/ip_gre.c:661
      __netdev_start_xmit include/linux/netdevice.h:4881 [inline]
      netdev_start_xmit include/linux/netdevice.h:4895 [inline]
      xmit_one net/core/dev.c:3580 [inline]
      dev_hard_start_xmit+0x127/0x400 net/core/dev.c:3596
      __dev_queue_xmit+0x1007/0x1eb0 net/core/dev.c:4246
      dev_queue_xmit include/linux/netdevice.h:3051 [inline]
      neigh_direct_output+0x17/0x20 net/core/neighbour.c:1623
      neigh_output include/net/neighbour.h:546 [inline]
      ip_finish_output2+0x740/0x840 net/ipv4/ip_output.c:228
      ip_finish_output+0xf4/0x240 net/ipv4/ip_output.c:316
      NF_HOOK_COND include/linux/netfilter.h:291 [inline]
      ip_output+0xe5/0x1b0 net/ipv4/ip_output.c:430
      dst_output include/net/dst.h:444 [inline]
      ip_local_out+0x64/0x80 net/ipv4/ip_output.c:126
      iptunnel_xmit+0x34a/0x4b0 net/ipv4/ip_tunnel_core.c:82
      ip_tunnel_xmit+0x1451/0x1730 net/ipv4/ip_tunnel.c:813
      __gre_xmit net/ipv4/ip_gre.c:469 [inline]
      ipgre_xmit+0x516/0x570 net/ipv4/ip_gre.c:661
      __netdev_start_xmit include/linux/netdevice.h:4881 [inline]
      netdev_start_xmit include/linux/netdevice.h:4895 [inline]
      xmit_one net/core/dev.c:3580 [inline]
      dev_hard_start_xmit+0x127/0x400 net/core/dev.c:3596
      __dev_queue_xmit+0x1007/0x1eb0 net/core/dev.c:4246
      
      write to 0xffff88815b9da0ec of 2 bytes by task 2379 on cpu 0:
      ip_tunnel_xmit+0x1294/0x1730 net/ipv4/ip_tunnel.c:804
      __gre_xmit net/ipv4/ip_gre.c:469 [inline]
      ipgre_xmit+0x516/0x570 net/ipv4/ip_gre.c:661
      __netdev_start_xmit include/linux/netdevice.h:4881 [inline]
      netdev_start_xmit include/linux/netdevice.h:4895 [inline]
      xmit_one net/core/dev.c:3580 [inline]
      dev_hard_start_xmit+0x127/0x400 net/core/dev.c:3596
      __dev_queue_xmit+0x1007/0x1eb0 net/core/dev.c:4246
      dev_queue_xmit include/linux/netdevice.h:3051 [inline]
      neigh_direct_output+0x17/0x20 net/core/neighbour.c:1623
      neigh_output include/net/neighbour.h:546 [inline]
      ip6_finish_output2+0x9bc/0xc50 net/ipv6/ip6_output.c:134
      __ip6_finish_output net/ipv6/ip6_output.c:195 [inline]
      ip6_finish_output+0x39a/0x4e0 net/ipv6/ip6_output.c:206
      NF_HOOK_COND include/linux/netfilter.h:291 [inline]
      ip6_output+0xeb/0x220 net/ipv6/ip6_output.c:227
      dst_output include/net/dst.h:444 [inline]
      NF_HOOK include/linux/netfilter.h:302 [inline]
      mld_sendpack+0x438/0x6a0 net/ipv6/mcast.c:1820
      mld_send_cr net/ipv6/mcast.c:2121 [inline]
      mld_ifc_work+0x519/0x7b0 net/ipv6/mcast.c:2653
      process_one_work+0x3e6/0x750 kernel/workqueue.c:2390
      worker_thread+0x5f2/0xa10 kernel/workqueue.c:2537
      kthread+0x1ac/0x1e0 kernel/kthread.c:376
      ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:308
      
      value changed: 0x0dd4 -> 0x0e14
      
      Reported by Kernel Concurrency Sanitizer on:
      CPU: 0 PID: 2379 Comm: kworker/0:0 Not tainted 6.3.0-rc1-syzkaller-00002-g8ca09d5fa354-dirty #0
      Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 03/02/2023
      Workqueue: mld mld_ifc_work
      
      Fixes: 8eb30be0 ("ipv6: Create ip6_tnl_xmit")
      Reported-by: default avatarsyzbot <syzkaller@googlegroups.com>
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Link: https://lore.kernel.org/r/20230310191109.2384387-1-edumazet@google.com
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      4b397c06
  12. Mar 14, 2023
  13. Mar 13, 2023
    • Ard Biesheuvel's avatar
      efi: earlycon: Reprobe after parsing config tables · 8b3a149d
      Ard Biesheuvel authored
      
      
      Commit 732ea9db ("efi: libstub: Move screen_info handling to common
      code") reorganized the earlycon handling so that all architectures pass
      the screen_info data via a EFI config table instead of populating struct
      screen_info directly, as the latter is only possible when the EFI stub
      is baked into the kernel (and not into the decompressor).
      
      However, this means that struct screen_info may not have been populated
      yet by the time the earlycon probe takes place, and this results in a
      non-functional early console.
      
      So let's probe again right after parsing the config tables and
      populating struct screen_info. Note that this means that earlycon output
      starts a bit later than before, and so it may fail to capture issues
      that occur while doing the early EFI initialization.
      
      Fixes: 732ea9db ("efi: libstub: Move screen_info handling to common code")
      Reported-by: default avatarShawn Guo <shawn.guo@linaro.org>
      Tested-by: default avatarShawn Guo <shawn.guo@linaro.org>
      Signed-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
      8b3a149d
    • Niklas Schnelle's avatar
      PCI: s390: Fix use-after-free of PCI resources with per-function hotplug · ab909509
      Niklas Schnelle authored
      
      
      On s390 PCI functions may be hotplugged individually even when they
      belong to a multi-function device. In particular on an SR-IOV device VFs
      may be removed and later re-added.
      
      In commit a50297cf ("s390/pci: separate zbus creation from
      scanning") it was missed however that struct pci_bus and struct
      zpci_bus's resource list retained a reference to the PCI functions MMIO
      resources even though those resources are released and freed on
      hot-unplug. These stale resources may subsequently be claimed when the
      PCI function re-appears resulting in use-after-free.
      
      One idea of fixing this use-after-free in s390 specific code that was
      investigated was to simply keep resources around from the moment a PCI
      function first appeared until the whole virtual PCI bus created for
      a multi-function device disappears. The problem with this however is
      that due to the requirement of artificial MMIO addreesses (address
      cookies) extra logic is then needed to keep the address cookies
      compatible on re-plug. At the same time the MMIO resources semantically
      belong to the PCI function so tying their lifecycle to the function
      seems more logical.
      
      Instead a simpler approach is to remove the resources of an individually
      hot-unplugged PCI function from the PCI bus's resource list while
      keeping the resources of other PCI functions on the PCI bus untouched.
      
      This is done by introducing pci_bus_remove_resource() to remove an
      individual resource. Similarly the resource also needs to be removed
      from the struct zpci_bus's resource list. It turns out however, that
      there is really no need to add the MMIO resources to the struct
      zpci_bus's resource list at all and instead we can simply use the
      zpci_bar_struct's resource pointer directly.
      
      Fixes: a50297cf ("s390/pci: separate zbus creation from scanning")
      Signed-off-by: default avatarNiklas Schnelle <schnelle@linux.ibm.com>
      Reviewed-by: default avatarMatthew Rosato <mjrosato@linux.ibm.com>
      Acked-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      Link: https://lore.kernel.org/r/20230306151014.60913-2-schnelle@linux.ibm.com
      
      
      Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
      ab909509
  14. Mar 12, 2023
  15. Mar 11, 2023
  16. Mar 10, 2023
  17. Mar 09, 2023
    • Nathan Chancellor's avatar
      clk: Avoid invalid function names in CLK_OF_DECLARE() · 5cf9d015
      Nathan Chancellor authored
      
      
      After commit c28cd1f3 ("clk: Mark a fwnode as initialized when using
      CLK_OF_DECLARE() macro"), drivers/clk/mvebu/kirkwood.c fails to build:
      
       drivers/clk/mvebu/kirkwood.c:358:1: error: expected identifier or '('
       CLK_OF_DECLARE(98dx1135_clk, "marvell,mv98dx1135-core-clock",
       ^
       include/linux/clk-provider.h:1367:21: note: expanded from macro 'CLK_OF_DECLARE'
               static void __init name##_of_clk_init_declare(struct device_node *np) \
                                  ^
       <scratch space>:124:1: note: expanded from here
       98dx1135_clk_of_clk_init_declare
       ^
       drivers/clk/mvebu/kirkwood.c:358:1: error: invalid digit 'd' in decimal constant
       include/linux/clk-provider.h:1372:34: note: expanded from macro 'CLK_OF_DECLARE'
               OF_DECLARE_1(clk, name, compat, name##_of_clk_init_declare)
                                               ^
       <scratch space>:125:3: note: expanded from here
       98dx1135_clk_of_clk_init_declare
         ^
       drivers/clk/mvebu/kirkwood.c:358:1: error: invalid digit 'd' in decimal constant
       include/linux/clk-provider.h:1372:34: note: expanded from macro 'CLK_OF_DECLARE'
               OF_DECLARE_1(clk, name, compat, name##_of_clk_init_declare)
                                               ^
       <scratch space>:125:3: note: expanded from here
       98dx1135_clk_of_clk_init_declare
         ^
       drivers/clk/mvebu/kirkwood.c:358:1: error: invalid digit 'd' in decimal constant
       include/linux/clk-provider.h:1372:34: note: expanded from macro 'CLK_OF_DECLARE'
               OF_DECLARE_1(clk, name, compat, name##_of_clk_init_declare)
                                               ^
       <scratch space>:125:3: note: expanded from here
       98dx1135_clk_of_clk_init_declare
         ^
      
      C function names must start with either an alphabetic letter or an
      underscore. To avoid generating invalid function names from clock names,
      add two underscores to the beginning of the identifier.
      
      Fixes: c28cd1f3 ("clk: Mark a fwnode as initialized when using CLK_OF_DECLARE() macro")
      Suggested-by: default avatarSaravana Kannan <saravanak@google.com>
      Signed-off-by: default avatarNathan Chancellor <nathan@kernel.org>
      Link: https://lore.kernel.org/r/20230308-clk_of_declare-fix-v1-1-317b741e2532@kernel.org
      
      
      Reviewed-by: default avatarSaravana Kannan <saravanak@google.com>
      Reported-by: default avatarNaresh Kamboju <naresh.kamboju@linaro.org>
      Signed-off-by: default avatarStephen Boyd <sboyd@kernel.org>
      5cf9d015
    • Uwe Kleine-König's avatar
      i2c: Switch .probe() to not take an id parameter · 03c835f4
      Uwe Kleine-König authored
      
      
      Commit b8a1a4cd ("i2c: Provide a temporary .probe_new() call-back
      type") introduced a new probe callback to convert i2c init routines to
      not take an i2c_device_id parameter. Now that all in-tree drivers are
      converted to the temporary .probe_new() callback, .probe() can be
      modified to match the desired prototype.
      
      Now that .probe() and .probe_new() have the same semantic, they can be
      defined as members of an anonymous union to save some memory and
      simplify the core code a bit.
      
      Signed-off-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
      Signed-off-by: default avatarWolfram Sang <wsa@kernel.org>
      03c835f4
Loading