Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DLPX-83442 Disable various kernel modules which we don't use #20

Merged
merged 1 commit into from
Nov 8, 2022

Conversation

prakashsurya
Copy link

No description provided.

Copy link

@sebroy sebroy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a way to pass in these overrides as parameters to the build job? I'm just exploring whether there's a possibility of maintaining this list in a single place for all kernels as opposed to duplicating it in all of the kernel repos... (?)

debian.aws/config/OVERRIDES Outdated Show resolved Hide resolved
@prakashsurya
Copy link
Author

Is there a way to pass in these overrides as parameters to the build job?

Hm.. I'm sure we could dynamically copy it into place as part of the linux-pkg build.. I do think it's a bit awkward to duplicate it in all our platform specific repositories, but at the same time, we do that already for all other kernel changes we make.. so I'm not sure if this specific change should be treated any differently.. but, perhaps we should.. I'm not sure I have an opinion yet, I see both sides having merit (duplicate in all kernel repos, or not)..

I'll think about this some more...

@prakashsurya prakashsurya force-pushed the projects/ps-overrides branch 5 times, most recently from d1fadbe to 32490f0 Compare September 30, 2022 15:30
@prakashsurya prakashsurya force-pushed the projects/ps-overrides branch 2 times, most recently from e62d47b to e92c3e5 Compare October 11, 2022 18:37
@prakashsurya
Copy link
Author

Finally got a build to work...

Before:

delphix@ip-10-110-235-80:~$ dpkg-query -L linux-modules-5.4.0-1085-dx2022092505-805ba8691-aws | grep \.ko$ | wc -l
943
delphix@ip-10-110-235-80:~$ dpkg-query -L linux-modules-extra-5.4.0-1085-dx2022092505-805ba8691-aws | grep \.ko$ | wc -l
2704

After:

delphix@ip-10-110-230-45:~$ dpkg-query -L linux-modules-5.4.0-1085-dx2022101118-e92c3e5a4-aws | grep \.ko$ | wc -l
926
delphix@ip-10-110-230-45:~$ dpkg-query -L linux-modules-extra-5.4.0-1085-dx2022101118-e92c3e5a4-aws | grep \.ko$ | wc -l
2568

Not a huge difference, but still something... probably more of a difference in the size, as it looks like we've removed some of the biggest modules..

Before:

$ find /lib/modules/5.4.0-1085-dx2022092505-805ba8691-aws -type f -name '*.ko' | xargs du -b | sort -n | tail
1517305 /lib/modules/5.4.0-1085-dx2022092505-805ba8691-aws/kernel/drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.ko
1651089 /lib/modules/5.4.0-1085-dx2022092505-805ba8691-aws/kernel/fs/ocfs2/ocfs2.ko
1856433 /lib/modules/5.4.0-1085-dx2022092505-805ba8691-aws/kernel/fs/cifs/cifs.ko
2046881 /lib/modules/5.4.0-1085-dx2022092505-805ba8691-aws/kernel/fs/xfs/xfs.ko
2126433 /lib/modules/5.4.0-1085-dx2022092505-805ba8691-aws/kernel/fs/btrfs/btrfs.ko
2315177 /lib/modules/5.4.0-1085-dx2022092505-805ba8691-aws/kernel/drivers/gpu/drm/radeon/radeon.ko
3340993 /lib/modules/5.4.0-1085-dx2022092505-805ba8691-aws/kernel/drivers/gpu/drm/i915/i915.ko
3543641 /lib/modules/5.4.0-1085-dx2022092505-805ba8691-aws/kernel/kernel/kheaders.ko
6170352 /lib/modules/5.4.0-1085-dx2022092505-805ba8691-aws/extra/zfs.ko
7149665 /lib/modules/5.4.0-1085-dx2022092505-805ba8691-aws/kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko

After:

$ find /usr/lib/modules/5.4.0-1085-dx2022101118-e92c3e5a4-aws/kernel -type f -name '*.ko' | xargs du -b | sort -n | tail
830921  /usr/lib/modules/5.4.0-1085-dx2022101118-e92c3e5a4-aws/kernel/drivers/net/ethernet/qlogic/qed/qed.ko
1083481 /usr/lib/modules/5.4.0-1085-dx2022101118-e92c3e5a4-aws/kernel/arch/x86/kvm/kvm.ko
1100985 /usr/lib/modules/5.4.0-1085-dx2022101118-e92c3e5a4-aws/kernel/fs/nfs/nfsv4.ko
1141993 /usr/lib/modules/5.4.0-1085-dx2022101118-e92c3e5a4-aws/kernel/drivers/net/ethernet/mellanox/mlxsw/mlxsw_spectrum.ko
1150657 /usr/lib/modules/5.4.0-1085-dx2022101118-e92c3e5a4-aws/kernel/drivers/net/ethernet/broadcom/bnx2x/bnx2x.ko
1183185 /usr/lib/modules/5.4.0-1085-dx2022101118-e92c3e5a4-aws/kernel/drivers/scsi/qla2xxx/qla2xxx.ko
1456257 /usr/lib/modules/5.4.0-1085-dx2022101118-e92c3e5a4-aws/kernel/drivers/scsi/lpfc/lpfc.ko
1516457 /usr/lib/modules/5.4.0-1085-dx2022101118-e92c3e5a4-aws/kernel/drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.ko
1856433 /usr/lib/modules/5.4.0-1085-dx2022101118-e92c3e5a4-aws/kernel/fs/cifs/cifs.ko
3536985 /usr/lib/modules/5.4.0-1085-dx2022101118-e92c3e5a4-aws/kernel/kernel/kheaders.ko

@sdimitro
Copy link
Contributor

@prakashsurya let's make the arguments for this PR more compelling to others :) - above you say that we removed some of the biggest modules but you showcase the directory that has the stripped binaries like this:

delphix@sd-DLPX-60981:~$ find /lib/modules/5.4.0-126-dx2022092505-cd7eac0b7-generic/ -type f -name '*.ko' | xargs du -b | sort -n | tail
1707441	/lib/modules/5.4.0-126-dx2022092505-cd7eac0b7-generic/kernel/lib/test_bpf.ko
1856497	/lib/modules/5.4.0-126-dx2022092505-cd7eac0b7-generic/kernel/fs/cifs/cifs.ko
2046881	/lib/modules/5.4.0-126-dx2022092505-cd7eac0b7-generic/kernel/fs/xfs/xfs.ko
2126433	/lib/modules/5.4.0-126-dx2022092505-cd7eac0b7-generic/kernel/fs/btrfs/btrfs.ko
2315177	/lib/modules/5.4.0-126-dx2022092505-cd7eac0b7-generic/kernel/drivers/gpu/drm/radeon/radeon.ko
3204409	/lib/modules/5.4.0-126-dx2022092505-cd7eac0b7-generic/kernel/drivers/gpu/drm/nouveau/nouveau.ko
3340929	/lib/modules/5.4.0-126-dx2022092505-cd7eac0b7-generic/kernel/drivers/gpu/drm/i915/i915.ko
3583897	/lib/modules/5.4.0-126-dx2022092505-cd7eac0b7-generic/kernel/kernel/kheaders.ko
6170352	/lib/modules/5.4.0-126-dx2022092505-cd7eac0b7-generic/extra/zfs.ko
7149681	/lib/modules/5.4.0-126-dx2022092505-cd7eac0b7-generic/kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko

At that point we see that the amdgpu.ko module takes around 7MB, but that's not the whole story. If you look at the directory with the debug info like this:

delphix@sd-DLPX-60981:~$ find /usr/lib/debug/lib/modules/5.4.0-126-dx2022092505-cd7eac0b7-generic -type f -name '*.ko' | xargs du -b | sort -n | tail
34235409	/usr/lib/debug/lib/modules/5.4.0-126-dx2022092505-cd7eac0b7-generic/kernel/drivers/infiniband/hw/hfi1/hfi1.ko
36567320	/usr/lib/debug/lib/modules/5.4.0-126-dx2022092505-cd7eac0b7-generic/kernel/drivers/staging/rtl8723bs/r8723bs.ko
41266553	/usr/lib/debug/lib/modules/5.4.0-126-dx2022092505-cd7eac0b7-generic/kernel/net/mac80211/mac80211.ko
47682657	/usr/lib/debug/lib/modules/5.4.0-126-dx2022092505-cd7eac0b7-generic/kernel/fs/xfs/xfs.ko
53728001	/usr/lib/debug/lib/modules/5.4.0-126-dx2022092505-cd7eac0b7-generic/kernel/drivers/gpu/drm/radeon/radeon.ko
78037769	/usr/lib/debug/lib/modules/5.4.0-126-dx2022092505-cd7eac0b7-generic/kernel/drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.ko
116411752	/usr/lib/debug/lib/modules/5.4.0-126-dx2022092505-cd7eac0b7-generic/extra/zfs.ko
128963817	/usr/lib/debug/lib/modules/5.4.0-126-dx2022092505-cd7eac0b7-generic/kernel/drivers/gpu/drm/i915/i915.ko
222555153	/usr/lib/debug/lib/modules/5.4.0-126-dx2022092505-cd7eac0b7-generic/kernel/drivers/gpu/drm/nouveau/nouveau.ko
226726577	/usr/lib/debug/lib/modules/5.4.0-126-dx2022092505-cd7eac0b7-generic/kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko

You can see that the same module with its debug info that's part of our images are 226MB, and the second one is 222MB (which we also strip). I'd guess that with your changes we save more than 1 GB in debug info and probably close to 50~100MB of unstripped data.

Other points include:

  • Saving memory in our crash kernel - the crash kernel doesn't have to load all these modules, and its always loaded up in memory to get crash dumps. With this change you help us lower its memory consumptions and stirs us further away from OOM bugs when capturing crash dumps
  • The storage saved above is not just from the rpool, but also from the images that we sent to our customers, including upgrade images.
  • Appliance build time - we don't spend time building all these big graphics cards and Ubuntu's ZFS module. (Do you have any idea how much time we save there?)

@prakashsurya
Copy link
Author

@sdimitro yea, for sure.. you're definitely right..

Before:

$ find /usr/lib/debug/lib/modules/5.4.0-1085-dx2022092505-805ba8691-aws -type f -name '*.ko' | xargs du -b | sort -n | tail
27737817        /usr/lib/debug/lib/modules/5.4.0-1085-dx2022092505-805ba8691-aws/kernel/fs/cifs/cifs.ko
34217553        /usr/lib/debug/lib/modules/5.4.0-1085-dx2022092505-805ba8691-aws/kernel/fs/btrfs/btrfs.ko
34224025        /usr/lib/debug/lib/modules/5.4.0-1085-dx2022092505-805ba8691-aws/kernel/drivers/infiniband/hw/hfi1/hfi1.ko
41256625        /usr/lib/debug/lib/modules/5.4.0-1085-dx2022092505-805ba8691-aws/kernel/net/mac80211/mac80211.ko
47670969        /usr/lib/debug/lib/modules/5.4.0-1085-dx2022092505-805ba8691-aws/kernel/fs/xfs/xfs.ko
53705529        /usr/lib/debug/lib/modules/5.4.0-1085-dx2022092505-805ba8691-aws/kernel/drivers/gpu/drm/radeon/radeon.ko
78012961        /usr/lib/debug/lib/modules/5.4.0-1085-dx2022092505-805ba8691-aws/kernel/drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.ko
116410920       /usr/lib/debug/lib/modules/5.4.0-1085-dx2022092505-805ba8691-aws/extra/zfs.ko
128893905       /usr/lib/debug/lib/modules/5.4.0-1085-dx2022092505-805ba8691-aws/kernel/drivers/gpu/drm/i915/i915.ko
226634721       /usr/lib/debug/lib/modules/5.4.0-1085-dx2022092505-805ba8691-aws/kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko

After:

$ find /usr/lib/debug/lib/modules/5.4.0-1085-dx2022101118-e92c3e5a4-aws -type f -name '*.ko' | xargs du -b | sort -n | tail
15955793        /usr/lib/debug/lib/modules/5.4.0-1085-dx2022101118-e92c3e5a4-aws/kernel/fs/nfsd/nfsd.ko
16613697        /usr/lib/debug/lib/modules/5.4.0-1085-dx2022101118-e92c3e5a4-aws/kernel/net/sunrpc/sunrpc.ko
17090129        /usr/lib/debug/lib/modules/5.4.0-1085-dx2022101118-e92c3e5a4-aws/kernel/net/rxrpc/rxrpc.ko
18339633        /usr/lib/debug/lib/modules/5.4.0-1085-dx2022101118-e92c3e5a4-aws/kernel/fs/nfs/nfsv4.ko
20836289        /usr/lib/debug/lib/modules/5.4.0-1085-dx2022101118-e92c3e5a4-aws/kernel/net/sctp/sctp.ko
26590161        /usr/lib/debug/lib/modules/5.4.0-1085-dx2022101118-e92c3e5a4-aws/kernel/drivers/net/ethernet/netronome/nfp/nfp.ko
26922337        /usr/lib/debug/lib/modules/5.4.0-1085-dx2022101118-e92c3e5a4-aws/kernel/drivers/net/ethernet/mellanox/mlxsw/mlxsw_spectrum.ko
27724657        /usr/lib/debug/lib/modules/5.4.0-1085-dx2022101118-e92c3e5a4-aws/kernel/fs/cifs/cifs.ko
77962217        /usr/lib/debug/lib/modules/5.4.0-1085-dx2022101118-e92c3e5a4-aws/kernel/drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.ko
116386800       /usr/lib/debug/lib/modules/5.4.0-1085-dx2022101118-e92c3e5a4-aws/extra/zfs.ko

Saving memory in our crash kernel

👍 agreed.

The storage saved above is not just from the rpool, but also from the images that we sent to our customers, including upgrade images.

yea, for sure.. and it's a 5x savings here, since we have a kernel package for each platform, all bundled into a single upgrade image.. so, eliminating a large binary in the kernel, will remove it from all 5 kernel packages for our 5 current platforms..

Appliance build time - we don't spend time building all these big graphics cards and Ubuntu's ZFS module. (Do you have any idea how much time we save there?)

I think you mean, kernel build time, right? i.e. the time it takes to build the kernel package.. since the appliance build, just consumes the pre-built kernel package.. we still may save time in the appliance build, though, but that'll be due to a smaller package size, not compile time savings..

@prakashsurya
Copy link
Author

@sdimitro also something I was curious about.. there's a "linux-modules-extra" package, that contains lots of kernel modules.. I'm curious if we need to install that package on our appliance? do you know?

I've opened this: delphix/delphix-kernel#20 to see if maybe we can remove that package wholesale.. but I'm not yet sure if that's safe to do..

From what I can tell, any module that's built, but not in the "inclusion list" will wind up in this "extra" package.. and from just a number of modules perspective, there's a lot more modules in the "extra" package, than the regular one.. e.g.

$ dpkg-query -L linux-modules-5.4.0-1085-dx2022101118-e92c3e5a4-aws | grep \.ko$ | wc -l
926

$ dpkg-query -L linux-modules-extra-5.4.0-1085-dx2022101118-e92c3e5a4-aws | grep \.ko$ | wc -l
2568

I'm still investigating if there's any modules we care about in the "extra" package, though...

@prakashsurya
Copy link
Author

Hm.. looks like even without the "extra" package, we still get all of the debug modules:

$ find /usr/lib/debug/lib/modules/5.4.0-1085-dx2022092505-805ba8691-aws -type f -name '*.ko' | wc -l
3649

as there only seems to be a single package for the debug modules:

$ dpkg-query -S /usr/lib/debug/lib/modules/5.4.0-1085-dx2022092505-805ba8691-aws
linux-image-5.4.0-1085-dx2022092505-805ba8691-aws-dbgsym, zfs-modules-5.4.0-1085-dx2022092505-805ba8691-aws-dbg: /usr/lib/debug/lib/modules/5.4.0-1085-dx2022092505-805ba8691-aws

@prakashsurya
Copy link
Author

$ find /lib/modules/5.4.0-1085-dx2022092505-805ba8691-aws -type f -name '*.ko' | wc -l
946

it does significantly reduce the number of non-debug modules on the system, though..

@sdimitro
Copy link
Contributor

@prakashsurya

Appliance build time - we don't spend time building all these big graphics cards and Ubuntu's ZFS module. (Do you have any idea how much time we save there?)

I think you mean, kernel build time, right? i.e. the time it takes to build the kernel package.. since the appliance build, just consumes the pre-built kernel package.. we still may save time in the appliance build, though, but that'll be due to a smaller package size, not compile time savings..

Yeah, apologies. I meant the kernel build time.

@sdimitro also something I was curious about.. there's a "linux-modules-extra" package, that contains lots of kernel modules.. I'm curious if we need to install that package on our appliance? do you know?

Unfortunately I don't. Looking at the file contents of the deb file it looks like there is a lot of stuff geared towards desktop users but I'd be hesitant to exclude it. My fear is that some driver may be part of this deb package that we may need to have on the VM even if we are not currently using. The best example that I have for that was the ENA network driver on AWS. We always shipped with that driver even though it wasn't used - then when customers wanted to enable the driver for faster networking, the just had to reboot their VMs - no hotfix, no upgrade involved.

BTW I noticed on your output above that we still compile and keep around Ubuntu's ZFS module in our build. Any way we can stop that from compiling?

@prakashsurya
Copy link
Author

BTW I noticed on your output above that we still compile and keep around Ubuntu's ZFS module in our build. Any way we can stop that from compiling?

yea, I haven't gotten to that yet, but we definitely want to remove ZFS from the kernel package.. I just haven't spent the time to figure out where to do that.. but it's on my list..

The best example that I have for that was the ENA network driver on AWS.

sure, but at the same time.. we'd want to weigh the benefit of removing it, with the potential cost of it maybe it being useful in the future.. especially considering, it'd only take an upgrade+reboot to re-instate any module that we removed..

but yea, I see your point.

@prakashsurya prakashsurya force-pushed the projects/ps-overrides branch 12 times, most recently from da0c35f to 3d867da Compare October 17, 2022 18:30
delphix-devops-bot pushed a commit that referenced this pull request Nov 10, 2024
BugLink: https://bugs.launchpad.net/bugs/2078428

[ Upstream commit db19d3aa77612983a02bd223b3f273f896b243cf ]

There is a race condition in the CMT interrupt handler. In the interrupt
handler the driver sets a driver private flag, FLAG_IRQCONTEXT. This
flag is used to indicate any call to set_next_event() should not be
directly propagated to the device, but instead cached. This is done as
the interrupt handler itself reprograms the device when needed before it
completes and this avoids this operation to take place twice.

It is unclear why this design was chosen, my suspicion is to allow the
struct clock_event_device.event_handler callback, which is called while
the FLAG_IRQCONTEXT is set, can update the next event without having to
write to the device twice.

Unfortunately there is a race between when the FLAG_IRQCONTEXT flag is
set and later cleared where the interrupt handler have already started to
write the next event to the device. If set_next_event() is called in
this window the value is only cached in the driver but not written. This
leads to the board to misbehave, or worse lockup and produce a splat.

   rcu: INFO: rcu_preempt detected stalls on CPUs/tasks:
   rcu:     0-...!: (0 ticks this GP) idle=f5e0/0/0x0 softirq=519/519 fqs=0 (false positive?)
   rcu:     (detected by 1, t=6502 jiffies, g=-595, q=77 ncpus=2)
   Sending NMI from CPU 1 to CPUs 0:
   NMI backtrace for cpu 0
   CPU: 0 PID: 0 Comm: swapper/0 Not tainted 6.10.0-rc5-arm64-renesas-00019-g74a6f86eaf1c-dirty #20
   Hardware name: Renesas Salvator-X 2nd version board based on r8a77965 (DT)
   pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
   pc : tick_check_broadcast_expired+0xc/0x40
   lr : cpu_idle_poll.isra.0+0x8c/0x168
   sp : ffff800081c63d70
   x29: ffff800081c63d70 x28: 00000000580000c8 x27: 00000000bfee5610
   x26: 0000000000000027 x25: 0000000000000000 x24: 0000000000000000
   x23: ffff00007fbb9100 x22: ffff8000818f1008 x21: ffff8000800ef07c
   x20: ffff800081c79ec0 x19: ffff800081c70c28 x18: 0000000000000000
   x17: 0000000000000000 x16: 0000000000000000 x15: 0000ffffc2c717d8
   x14: 0000000000000000 x13: ffff000009c18080 x12: ffff8000825f7fc0
   x11: 0000000000000000 x10: ffff8000818f3cd4 x9 : 0000000000000028
   x8 : ffff800081c79ec0 x7 : ffff800081c73000 x6 : 0000000000000000
   x5 : 0000000000000000 x4 : ffff7ffffe286000 x3 : 0000000000000000
   x2 : ffff7ffffe286000 x1 : ffff800082972900 x0 : ffff8000818f1008
   Call trace:
    tick_check_broadcast_expired+0xc/0x40
    do_idle+0x9c/0x280
    cpu_startup_entry+0x34/0x40
    kernel_init+0x0/0x11c
    do_one_initcall+0x0/0x260
    __primary_switched+0x80/0x88
   rcu: rcu_preempt kthread timer wakeup didn't happen for 6501 jiffies! g-595 f0x0 RCU_GP_WAIT_FQS(5) ->state=0x402
   rcu:     Possible timer handling issue on cpu=0 timer-softirq=262
   rcu: rcu_preempt kthread starved for 6502 jiffies! g-595 f0x0 RCU_GP_WAIT_FQS(5) ->state=0x402 ->cpu=0
   rcu:     Unless rcu_preempt kthread gets sufficient CPU time, OOM is now expected behavior.
   rcu: RCU grace-period kthread stack dump:
   task:rcu_preempt     state:I stack:0     pid:15    tgid:15    ppid:2      flags:0x00000008
   Call trace:
    __switch_to+0xbc/0x100
    __schedule+0x358/0xbe0
    schedule+0x48/0x148
    schedule_timeout+0xc4/0x138
    rcu_gp_fqs_loop+0x12c/0x764
    rcu_gp_kthread+0x208/0x298
    kthread+0x10c/0x110
    ret_from_fork+0x10/0x20

The design have been part of the driver since it was first merged in
early 2009. It becomes increasingly harder to trigger the issue the
older kernel version one tries. It only takes a few boots on v6.10-rc5,
while hundreds of boots are needed to trigger it on v5.10.

Close the race condition by using the CMT channel lock for the two
competing sections. The channel lock was added to the driver after its
initial design.

Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Link: https://lore.kernel.org/r/20240702190230.3825292-1-niklas.soderlund+renesas@ragnatech.se
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Koichiro Den <koichiro.den@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
delphix-devops-bot pushed a commit that referenced this pull request Dec 18, 2024
l2cap_le_flowctl_init() can cause both div-by-zero and an integer
overflow since hdev->le_mtu may not fall in the valid range.

Move MTU from hci_dev to hci_conn to validate MTU and stop the connection
process earlier if MTU is invalid.
Also, add a missing validation in read_buffer_size() and make it return
an error value if the validation fails.
Now hci_conn_add() returns ERR_PTR() as it can fail due to the both a
kzalloc failure and invalid MTU value.

divide error: 0000 [#1] PREEMPT SMP KASAN NOPTI
CPU: 0 PID: 67 Comm: kworker/u5:0 Tainted: G        W          6.9.0-rc5+ #20
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014
Workqueue: hci0 hci_rx_work
RIP: 0010:l2cap_le_flowctl_init+0x19e/0x3f0 net/bluetooth/l2cap_core.c:547
Code: e8 17 17 0c 00 66 41 89 9f 84 00 00 00 bf 01 00 00 00 41 b8 02 00 00 00 4c
89 fe 4c 89 e2 89 d9 e8 27 17 0c 00 44 89 f0 31 d2 <66> f7 f3 89 c3 ff c3 4d 8d
b7 88 00 00 00 4c 89 f0 48 c1 e8 03 42
RSP: 0018:ffff88810bc0f858 EFLAGS: 00010246
RAX: 00000000000002a0 RBX: 0000000000000000 RCX: dffffc0000000000
RDX: 0000000000000000 RSI: ffff88810bc0f7c0 RDI: ffffc90002dcb66f
RBP: ffff88810bc0f880 R08: aa69db2dda70ff01 R09: 0000ffaaaaaaaaaa
R10: 0084000000ffaaaa R11: 0000000000000000 R12: ffff88810d65a084
R13: dffffc0000000000 R14: 00000000000002a0 R15: ffff88810d65a000
FS:  0000000000000000(0000) GS:ffff88811ac00000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000020000100 CR3: 0000000103268003 CR4: 0000000000770ef0
PKRU: 55555554
Call Trace:
 <TASK>
 l2cap_le_connect_req net/bluetooth/l2cap_core.c:4902 [inline]
 l2cap_le_sig_cmd net/bluetooth/l2cap_core.c:5420 [inline]
 l2cap_le_sig_channel net/bluetooth/l2cap_core.c:5486 [inline]
 l2cap_recv_frame+0xe59d/0x11710 net/bluetooth/l2cap_core.c:6809
 l2cap_recv_acldata+0x544/0x10a0 net/bluetooth/l2cap_core.c:7506
 hci_acldata_packet net/bluetooth/hci_core.c:3939 [inline]
 hci_rx_work+0x5e5/0xb20 net/bluetooth/hci_core.c:4176
 process_one_work kernel/workqueue.c:3254 [inline]
 process_scheduled_works+0x90f/0x1530 kernel/workqueue.c:3335
 worker_thread+0x926/0xe70 kernel/workqueue.c:3416
 kthread+0x2e3/0x380 kernel/kthread.c:388
 ret_from_fork+0x5c/0x90 arch/x86/kernel/process.c:147
 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244
 </TASK>
Modules linked in:
---[ end trace 0000000000000000 ]---

Fixes: 6ed58ec ("Bluetooth: Use LE buffers for LE traffic")
Suggested-by: Luiz Augusto von Dentz <luiz.dentz@gmail.com>
Signed-off-by: Sungwoo Kim <iam@sung-woo.kim>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>

CVE-2024-36968
(backported from commit a5b862c6a221459d54e494e88965b48dcfa6cc44)
[juergh: Adjusted context plus:
 - Add #define HCI_ERROR_INVALID_PARAMETERS to include/net/bluetooth/hci.h, from:
   c86cc5a ("Bluetooth: hci_event: Fix checking for invalid handle on error status")
 - Drop modifications of net/bluetooth/iso.c and ISO_LINK (not supported in 5.15)
 - Change return type of hci_cc_read_buffer_size() and hci_cc_le_read_buffer_size()
   from void to u8 and return status, from:
   c8992cf ("Bluetooth: hci_event: Use of a function table to handle Command Complete")
 - Drop various hunks due to missing functionality in 5.15]
Signed-off-by: Juerg Haefliger <juerg.haefliger@canonical.com>
Acked-by: ivanhu <ivan.hu@canonical.com>
Acked-by: Guoqing Jiang <guoqing.jiang@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
delphix-devops-bot pushed a commit that referenced this pull request Feb 7, 2025
BugLink: https://bugs.launchpad.net/bugs/2076435

commit be346c1a6eeb49d8fda827d2a9522124c2f72f36 upstream.

The code in ocfs2_dio_end_io_write() estimates number of necessary
transaction credits using ocfs2_calc_extend_credits().  This however does
not take into account that the IO could be arbitrarily large and can
contain arbitrary number of extents.

Extent tree manipulations do often extend the current transaction but not
in all of the cases.  For example if we have only single block extents in
the tree, ocfs2_mark_extent_written() will end up calling
ocfs2_replace_extent_rec() all the time and we will never extend the
current transaction and eventually exhaust all the transaction credits if
the IO contains many single block extents.  Once that happens a
WARN_ON(jbd2_handle_buffer_credits(handle) <= 0) is triggered in
jbd2_journal_dirty_metadata() and subsequently OCFS2 aborts in response to
this error.  This was actually triggered by one of our customers on a
heavily fragmented OCFS2 filesystem.

To fix the issue make sure the transaction always has enough credits for
one extent insert before each call of ocfs2_mark_extent_written().

Heming Zhao said:

------
PANIC: "Kernel panic - not syncing: OCFS2: (device dm-1): panic forced after error"

PID: xxx  TASK: xxxx  CPU: 5  COMMAND: "SubmitThread-CA"
  #0 machine_kexec at ffffffff8c069932
  #1 __crash_kexec at ffffffff8c1338fa
  #2 panic at ffffffff8c1d69b9
  #3 ocfs2_handle_error at ffffffffc0c86c0c [ocfs2]
  #4 __ocfs2_abort at ffffffffc0c88387 [ocfs2]
  #5 ocfs2_journal_dirty at ffffffffc0c51e98 [ocfs2]
  #6 ocfs2_split_extent at ffffffffc0c27ea3 [ocfs2]
  #7 ocfs2_change_extent_flag at ffffffffc0c28053 [ocfs2]
  #8 ocfs2_mark_extent_written at ffffffffc0c28347 [ocfs2]
  #9 ocfs2_dio_end_io_write at ffffffffc0c2bef9 [ocfs2]
#10 ocfs2_dio_end_io at ffffffffc0c2c0f5 [ocfs2]
#11 dio_complete at ffffffff8c2b9fa7
#12 do_blockdev_direct_IO at ffffffff8c2bc09f
#13 ocfs2_direct_IO at ffffffffc0c2b653 [ocfs2]
#14 generic_file_direct_write at ffffffff8c1dcf14
#15 __generic_file_write_iter at ffffffff8c1dd07b
#16 ocfs2_file_write_iter at ffffffffc0c49f1f [ocfs2]
#17 aio_write at ffffffff8c2cc72e
#18 kmem_cache_alloc at ffffffff8c248dde
#19 do_io_submit at ffffffff8c2ccada
#20 do_syscall_64 at ffffffff8c004984
#21 entry_SYSCALL_64_after_hwframe at ffffffff8c8000ba

Link: https://lkml.kernel.org/r/20240617095543.6971-1-jack@suse.cz
Link: https://lkml.kernel.org/r/20240614145243.8837-1-jack@suse.cz
Fixes: c15471f ("ocfs2: fix sparse file & data ordering issue in direct io")
Signed-off-by: Jan Kara <jack@suse.cz>
Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.com>
Reviewed-by: Heming Zhao <heming.zhao@suse.com>
Cc: Mark Fasheh <mark@fasheh.com>
Cc: Joel Becker <jlbec@evilplan.org>
Cc: Junxiao Bi <junxiao.bi@oracle.com>
Cc: Changwei Ge <gechangwei@live.cn>
Cc: Gang He <ghe@suse.com>
Cc: Jun Piao <piaojun@huawei.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Portia Stephens <portia.stephens@canonical.com>
Signed-off-by: Roxana Nicolescu <roxana.nicolescu@canonical.com>
delphix-devops-bot pushed a commit that referenced this pull request Feb 7, 2025
BugLink: https://bugs.launchpad.net/bugs/2076435

commit bab4923132feb3e439ae45962979c5d9d5c7c1f1 upstream.

In the TRACE_EVENT(qdisc_reset) NULL dereference occurred from

 qdisc->dev_queue->dev <NULL> ->name

This situation simulated from bunch of veths and Bluetooth disconnection
and reconnection.

During qdisc initialization, qdisc was being set to noop_queue.
In veth_init_queue, the initial tx_num was reduced back to one,
causing the qdisc reset to be called with noop, which led to the kernel
panic.

I've attached the GitHub gist link that C converted syz-execprogram
source code and 3 log of reproduced vmcore-dmesg.

 https://gist.github.com/yskelg/cc64562873ce249cdd0d5a358b77d740

Yeoreum and I use two fuzzing tool simultaneously.

One process with syz-executor : https://github.com/google/syzkaller

 $ ./syz-execprog -executor=./syz-executor -repeat=1 -sandbox=setuid \
    -enable=none -collide=false log1

The other process with perf fuzzer:
 https://github.com/deater/perf_event_tests/tree/master/fuzzer

 $ perf_event_tests/fuzzer/perf_fuzzer

I think this will happen on the kernel version.

 Linux kernel version +v6.7.10, +v6.8, +v6.9 and it could happen in v6.10.

This occurred from 51270d5. I think this patch is absolutely
necessary. Previously, It was showing not intended string value of name.

I've reproduced 3 time from my fedora 40 Debug Kernel with any other module
or patched.

 version: 6.10.0-0.rc2.20240608gitdc772f8237f9.29.fc41.aarch64+debug

[ 5287.164555] veth0_vlan: left promiscuous mode
[ 5287.164929] veth1_macvtap: left promiscuous mode
[ 5287.164950] veth0_macvtap: left promiscuous mode
[ 5287.164983] veth1_vlan: left promiscuous mode
[ 5287.165008] veth0_vlan: left promiscuous mode
[ 5287.165450] veth1_macvtap: left promiscuous mode
[ 5287.165472] veth0_macvtap: left promiscuous mode
[ 5287.165502] veth1_vlan: left promiscuous mode
…
[ 5297.598240] bridge0: port 2(bridge_slave_1) entered blocking state
[ 5297.598262] bridge0: port 2(bridge_slave_1) entered forwarding state
[ 5297.598296] bridge0: port 1(bridge_slave_0) entered blocking state
[ 5297.598313] bridge0: port 1(bridge_slave_0) entered forwarding state
[ 5297.616090] 8021q: adding VLAN 0 to HW filter on device bond0
[ 5297.620405] bridge0: port 1(bridge_slave_0) entered disabled state
[ 5297.620730] bridge0: port 2(bridge_slave_1) entered disabled state
[ 5297.627247] 8021q: adding VLAN 0 to HW filter on device team0
[ 5297.629636] bridge0: port 1(bridge_slave_0) entered blocking state
…
[ 5298.002798] bridge_slave_0: left promiscuous mode
[ 5298.002869] bridge0: port 1(bridge_slave_0) entered disabled state
[ 5298.309444] bond0 (unregistering): (slave bond_slave_0): Releasing backup interface
[ 5298.315206] bond0 (unregistering): (slave bond_slave_1): Releasing backup interface
[ 5298.320207] bond0 (unregistering): Released all slaves
[ 5298.354296] hsr_slave_0: left promiscuous mode
[ 5298.360750] hsr_slave_1: left promiscuous mode
[ 5298.374889] veth1_macvtap: left promiscuous mode
[ 5298.374931] veth0_macvtap: left promiscuous mode
[ 5298.374988] veth1_vlan: left promiscuous mode
[ 5298.375024] veth0_vlan: left promiscuous mode
[ 5299.109741] team0 (unregistering): Port device team_slave_1 removed
[ 5299.185870] team0 (unregistering): Port device team_slave_0 removed
…
[ 5300.155443] Bluetooth: hci3: unexpected cc 0x0c03 length: 249 > 1
[ 5300.155724] Bluetooth: hci3: unexpected cc 0x1003 length: 249 > 9
[ 5300.155988] Bluetooth: hci3: unexpected cc 0x1001 length: 249 > 9
….
[ 5301.075531] team0: Port device team_slave_1 added
[ 5301.085515] bridge0: port 1(bridge_slave_0) entered blocking state
[ 5301.085531] bridge0: port 1(bridge_slave_0) entered disabled state
[ 5301.085588] bridge_slave_0: entered allmulticast mode
[ 5301.085800] bridge_slave_0: entered promiscuous mode
[ 5301.095617] bridge0: port 1(bridge_slave_0) entered blocking state
[ 5301.095633] bridge0: port 1(bridge_slave_0) entered disabled state
…
[ 5301.149734] bond0: (slave bond_slave_0): Enslaving as an active interface with an up link
[ 5301.173234] bond0: (slave bond_slave_0): Enslaving as an active interface with an up link
[ 5301.180517] bond0: (slave bond_slave_1): Enslaving as an active interface with an up link
[ 5301.193481] hsr_slave_0: entered promiscuous mode
[ 5301.204425] hsr_slave_1: entered promiscuous mode
[ 5301.210172] debugfs: Directory 'hsr0' with parent 'hsr' already present!
[ 5301.210185] Cannot create hsr debugfs directory
[ 5301.224061] bond0: (slave bond_slave_1): Enslaving as an active interface with an up link
[ 5301.246901] bond0: (slave bond_slave_0): Enslaving as an active interface with an up link
[ 5301.255934] team0: Port device team_slave_0 added
[ 5301.256480] team0: Port device team_slave_1 added
[ 5301.256948] team0: Port device team_slave_0 added
…
[ 5301.435928] hsr_slave_0: entered promiscuous mode
[ 5301.446029] hsr_slave_1: entered promiscuous mode
[ 5301.455872] debugfs: Directory 'hsr0' with parent 'hsr' already present!
[ 5301.455884] Cannot create hsr debugfs directory
[ 5301.502664] hsr_slave_0: entered promiscuous mode
[ 5301.513675] hsr_slave_1: entered promiscuous mode
[ 5301.526155] debugfs: Directory 'hsr0' with parent 'hsr' already present!
[ 5301.526164] Cannot create hsr debugfs directory
[ 5301.563662] hsr_slave_0: entered promiscuous mode
[ 5301.576129] hsr_slave_1: entered promiscuous mode
[ 5301.580259] debugfs: Directory 'hsr0' with parent 'hsr' already present!
[ 5301.580270] Cannot create hsr debugfs directory
[ 5301.590269] 8021q: adding VLAN 0 to HW filter on device bond0

[ 5301.595872] KASAN: null-ptr-deref in range [0x0000000000000130-0x0000000000000137]
[ 5301.595877] Mem abort info:
[ 5301.595881]   ESR = 0x0000000096000006
[ 5301.595885]   EC = 0x25: DABT (current EL), IL = 32 bits
[ 5301.595889]   SET = 0, FnV = 0
[ 5301.595893]   EA = 0, S1PTW = 0
[ 5301.595896]   FSC = 0x06: level 2 translation fault
[ 5301.595900] Data abort info:
[ 5301.595903]   ISV = 0, ISS = 0x00000006, ISS2 = 0x00000000
[ 5301.595907]   CM = 0, WnR = 0, TnD = 0, TagAccess = 0
[ 5301.595911]   GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0
[ 5301.595915] [dfff800000000026] address between user and kernel address ranges
[ 5301.595971] Internal error: Oops: 0000000096000006 [#1] SMP
…
[ 5301.596076] CPU: 2 PID: 102769 Comm:
syz-executor.3 Kdump: loaded Tainted:
 G        W         -------  ---  6.10.0-0.rc2.20240608gitdc772f8237f9.29.fc41.aarch64+debug #1
[ 5301.596080] Hardware name: VMware, Inc. VMware20,1/VBSA,
 BIOS VMW201.00V.21805430.BA64.2305221830 05/22/2023
[ 5301.596082] pstate: 01400005 (nzcv daif +PAN -UAO -TCO +DIT -SSBS BTYPE=--)
[ 5301.596085] pc : strnlen+0x40/0x88
[ 5301.596114] lr : trace_event_get_offsets_qdisc_reset+0x6c/0x2b0
[ 5301.596124] sp : ffff8000beef6b40
[ 5301.596126] x29: ffff8000beef6b40 x28: dfff800000000000 x27: 0000000000000001
[ 5301.596131] x26: 6de1800082c62bd0 x25: 1ffff000110aa9e0 x24: ffff800088554f00
[ 5301.596136] x23: ffff800088554ec0 x22: 0000000000000130 x21: 0000000000000140
[ 5301.596140] x20: dfff800000000000 x19: ffff8000beef6c60 x18: ffff7000115106d8
[ 5301.596143] x17: ffff800121bad000 x16: ffff800080020000 x15: 0000000000000006
[ 5301.596147] x14: 0000000000000002 x13: ffff0001f3ed8d14 x12: ffff700017ddeda5
[ 5301.596151] x11: 1ffff00017ddeda4 x10: ffff700017ddeda4 x9 : ffff800082cc5eec
[ 5301.596155] x8 : 0000000000000004 x7 : 00000000f1f1f1f1 x6 : 00000000f2f2f200
[ 5301.596158] x5 : 00000000f3f3f3f3 x4 : ffff700017dded80 x3 : 00000000f204f1f1
[ 5301.596162] x2 : 0000000000000026 x1 : 0000000000000000 x0 : 0000000000000130
[ 5301.596166] Call trace:
[ 5301.596175]  strnlen+0x40/0x88
[ 5301.596179]  trace_event_get_offsets_qdisc_reset+0x6c/0x2b0
[ 5301.596182]  perf_trace_qdisc_reset+0xb0/0x538
[ 5301.596184]  __traceiter_qdisc_reset+0x68/0xc0
[ 5301.596188]  qdisc_reset+0x43c/0x5e8
[ 5301.596190]  netif_set_real_num_tx_queues+0x288/0x770
[ 5301.596194]  veth_init_queues+0xfc/0x130 [veth]
[ 5301.596198]  veth_newlink+0x45c/0x850 [veth]
[ 5301.596202]  rtnl_newlink_create+0x2c8/0x798
[ 5301.596205]  __rtnl_newlink+0x92c/0xb60
[ 5301.596208]  rtnl_newlink+0xd8/0x130
[ 5301.596211]  rtnetlink_rcv_msg+0x2e0/0x890
[ 5301.596214]  netlink_rcv_skb+0x1c4/0x380
[ 5301.596225]  rtnetlink_rcv+0x20/0x38
[ 5301.596227]  netlink_unicast+0x3c8/0x640
[ 5301.596231]  netlink_sendmsg+0x658/0xa60
[ 5301.596234]  __sock_sendmsg+0xd0/0x180
[ 5301.596243]  __sys_sendto+0x1c0/0x280
[ 5301.596246]  __arm64_sys_sendto+0xc8/0x150
[ 5301.596249]  invoke_syscall+0xdc/0x268
[ 5301.596256]  el0_svc_common.constprop.0+0x16c/0x240
[ 5301.596259]  do_el0_svc+0x48/0x68
[ 5301.596261]  el0_svc+0x50/0x188
[ 5301.596265]  el0t_64_sync_handler+0x120/0x130
[ 5301.596268]  el0t_64_sync+0x194/0x198
[ 5301.596272] Code: eb15001f 54000120 d343fc02 12000801 (38f46842)
[ 5301.596285] SMP: stopping secondary CPUs
[ 5301.597053] Starting crashdump kernel...
[ 5301.597057] Bye!

After applying our patch, I didn't find any kernel panic errors.

We've found a simple reproducer

 # echo 1 > /sys/kernel/debug/tracing/events/qdisc/qdisc_reset/enable

 # ip link add veth0 type veth peer name veth1

 Error: Unknown device type.

However, without our patch applied, I tested upstream 6.10.0-rc3 kernel
using the qdisc_reset event and the ip command on my qemu virtual machine.

This 2 commands makes always kernel panic.

Linux version: 6.10.0-rc3

[    0.000000] Linux version 6.10.0-rc3-00164-g44ef20baed8e-dirty
(paran@fedora) (gcc (GCC) 14.1.1 20240522 (Red Hat 14.1.1-4), GNU ld
version 2.41-34.fc40) #20 SMP PREEMPT Sat Jun 15 16:51:25 KST 2024

Kernel panic message:

[  615.236484] Internal error: Oops: 0000000096000005 [#1] PREEMPT SMP
[  615.237250] Dumping ftrace buffer:
[  615.237679]    (ftrace buffer empty)
[  615.238097] Modules linked in: veth crct10dif_ce virtio_gpu
virtio_dma_buf drm_shmem_helper drm_kms_helper zynqmp_fpga xilinx_can
xilinx_spi xilinx_selectmap xilinx_core xilinx_pr_decoupler versal_fpga
uvcvideo uvc videobuf2_vmalloc videobuf2_memops videobuf2_v4l2 videodev
videobuf2_common mc usbnet deflate zstd ubifs ubi rcar_canfd rcar_can
omap_mailbox ntb_msi_test ntb_hw_epf lattice_sysconfig_spi
lattice_sysconfig ice40_spi gpio_xilinx dwmac_altr_socfpga mdio_regmap
stmmac_platform stmmac pcs_xpcs dfl_fme_region dfl_fme_mgr dfl_fme_br
dfl_afu dfl fpga_region fpga_bridge can can_dev br_netfilter bridge stp
llc atl1c ath11k_pci mhi ath11k_ahb ath11k qmi_helpers ath10k_sdio
ath10k_pci ath10k_core ath mac80211 libarc4 cfg80211 drm fuse backlight ipv6
Jun 22 02:36:5[3   6k152.62-4sm98k4-0k]v  kCePUr:n e1l :P IUDn:a b4le6
8t oC ohmma: nidpl eN oketr nteali nptaedg i6n.g1 0re.0q-urecs3t- 0at0
1v6i4r-tgu4a4le fa2d0dbraeeds0se-dir tyd f#f2f08
  615.252376] Hardware name: linux,dummy-virt (DT)
[  615.253220] pstate: 80400005 (Nzcv daif +PAN -UAO -TCO -DIT -SSBS
BTYPE=--)
[  615.254433] pc : strnlen+0x6c/0xe0
[  615.255096] lr : trace_event_get_offsets_qdisc_reset+0x94/0x3d0
[  615.256088] sp : ffff800080b269a0
[  615.256615] x29: ffff800080b269a0 x28: ffffc070f3f98500 x27:
0000000000000001
[  615.257831] x26: 0000000000000010 x25: ffffc070f3f98540 x24:
ffffc070f619cf60
[  615.259020] x23: 0000000000000128 x22: 0000000000000138 x21:
dfff800000000000
[  615.260241] x20: ffffc070f631ad00 x19: 0000000000000128 x18:
ffffc070f448b800
[  615.261454] x17: 0000000000000000 x16: 0000000000000001 x15:
ffffc070f4ba2a90
[  615.262635] x14: ffff700010164d73 x13: 1ffff80e1e8d5eb3 x12:
1ffff00010164d72
[  615.263877] x11: ffff700010164d72 x10: dfff800000000000 x9 :
ffffc070e85d6184
[  615.265047] x8 : ffffc070e4402070 x7 : 000000000000f1f1 x6 :
000000001504a6d3
[  615.266336] x5 : ffff28ca21122140 x4 : ffffc070f5043ea8 x3 :
0000000000000000
[  615.267528] x2 : 0000000000000025 x1 : 0000000000000000 x0 :
0000000000000000
[  615.268747] Call trace:
[  615.269180]  strnlen+0x6c/0xe0
[  615.269767]  trace_event_get_offsets_qdisc_reset+0x94/0x3d0
[  615.270716]  trace_event_raw_event_qdisc_reset+0xe8/0x4e8
[  615.271667]  __traceiter_qdisc_reset+0xa0/0x140
[  615.272499]  qdisc_reset+0x554/0x848
[  615.273134]  netif_set_real_num_tx_queues+0x360/0x9a8
[  615.274050]  veth_init_queues+0x110/0x220 [veth]
[  615.275110]  veth_newlink+0x538/0xa50 [veth]
[  615.276172]  __rtnl_newlink+0x11e4/0x1bc8
[  615.276944]  rtnl_newlink+0xac/0x120
[  615.277657]  rtnetlink_rcv_msg+0x4e4/0x1370
[  615.278409]  netlink_rcv_skb+0x25c/0x4f0
[  615.279122]  rtnetlink_rcv+0x48/0x70
[  615.279769]  netlink_unicast+0x5a8/0x7b8
[  615.280462]  netlink_sendmsg+0xa70/0x1190

Yeoreum and I don't know if the patch we wrote will fix the underlying
cause, but we think that priority is to prevent kernel panic happening.
So, we're sending this patch.

Fixes: 51270d5 ("tracing/net_sched: Fix tracepoints that save qdisc_dev() as a string")
Link: https://lore.kernel.org/lkml/20240229143432.273b4871@gandalf.local.home/t/
Cc: netdev@vger.kernel.org
Tested-by: Yunseong Kim <yskelg@gmail.com>
Signed-off-by: Yunseong Kim <yskelg@gmail.com>
Signed-off-by: Yeoreum Yun <yeoreum.yun@arm.com>
Link: https://lore.kernel.org/r/20240624173320.24945-4-yskelg@gmail.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Portia Stephens <portia.stephens@canonical.com>
Signed-off-by: Roxana Nicolescu <roxana.nicolescu@canonical.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

3 participants