Page MenuHomeFreeBSD

rb_tree: restore binary compat w/ 13
ClosedPublic

Authored by dougm on Dec 15 2022, 5:56 PM.
Tags
None
Referenced Files
Unknown Object (File)
Jan 30 2024, 10:09 PM
Unknown Object (File)
Dec 23 2023, 1:25 AM
Unknown Object (File)
Dec 20 2023, 6:36 AM
Unknown Object (File)
Dec 12 2023, 9:06 AM
Unknown Object (File)
Nov 13 2023, 9:50 PM
Unknown Object (File)
May 16 2023, 9:56 PM
Unknown Object (File)
Apr 7 2023, 1:37 PM
Unknown Object (File)
Mar 26 2023, 9:50 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.