Page MenuHomeFreeBSD

rb_tree: restore binary compat w/ 13
ClosedPublic

Authored by dougm on Dec 15 2022, 5:56 PM.
Tags
None
Referenced Files
F102572240: D37716.id114193.diff
Thu, Nov 14, 5:31 AM
Unknown Object (File)
Oct 8 2024, 6:15 AM
Unknown Object (File)
Oct 2 2024, 10:23 AM
Unknown Object (File)
Oct 2 2024, 10:18 AM
Unknown Object (File)
Oct 2 2024, 8:16 AM
Unknown Object (File)
Sep 24 2024, 3:46 AM
Unknown Object (File)
Sep 23 2024, 5:10 PM
Unknown Object (File)
Sep 23 2024, 4:10 PM

Details

Summary

A change to RB_COLOR_INSERT, when merged into stable/13, broke binary compatibility. For 13, call the new function RB_DO_COLOR_INSERT, and restore the old function with the original name and parameters. Define RB_COLOR_INSERT in tree.h, and remove changes to the linux rbtree header.

Test Plan

Built GENERIC kernel

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

dougm requested review of this revision.Dec 15 2022, 5:56 PM

Looks good. It's soon time for a 14 release ;-)

This revision is now accepted and ready to land.Dec 15 2022, 9:33 PM

Hi Doug,

This changes are probably right but I messed up yesterday and replied to the wrong commit message.
The offending commit is 72c99edafa49 ("rb_tree: reduce duplication in balancing code")
The struct RB_ENTRY changes are problably the reason for the hang I have in drm-kmod (and any other kmod that uses those).

Cheers,

Change usages of _RB_LINK to reorder the three pointers in RB_ENTRY to match the order in stable/13.

This revision now requires review to proceed.Dec 16 2022, 8:33 AM

I assume you test compile before committing. Looks good!

This revision is now accepted and ready to land.Dec 16 2022, 8:35 AM

I assume you test compile before committing. Looks good!

I compiled a GENERIC kernel successfully. I'll wait to hear if this fixes the drm-kmod problem that manu reported before I commit it.

Thanks a lot this fixes the issue !
For the record I've build rev 50f61166f7b9 ("Revert "LinuxKPI: Add pci_power querying for drm-kmod"") of stable/13 plus this patch and install drm-510-kmod from the 13.1 official repository and it worked for i915kms.
Again I have no clue about this code so I didn't review it but you can add Tested by: manu if you want.

This revision was automatically updated to reflect the committed changes.