[Deepin-Kernel-SIG] [linux 6.6-y] [Deepin] net/ipv6: Fix KABI for Remove expired routes with a separated list of…#1452
Conversation
Reviewer's guide (collapsed on small PRs)Reviewer's GuideAdjusts IPv6 fib6 structures to preserve Deepin KABI stability by moving the gc_link field into reserved KABI slots and wrapping the GC candidate list head with a KABI extension macro, undoing a direct struct layout change from the upstream route GC patch. Class diagram for updated IPv6 fib6_info and fib6_table KABI layoutclassDiagram
class fib6_info {
+refcount_t fib6_ref
+unsigned_long expires
+DEEPIN_KABI_USE_1_2_gc_link
+struct dst_metrics* fib6_metrics
+struct rcu_head rcu
+struct nexthop* nh
+struct fib6_nh fib6_nh[]
}
class fib6_table {
+struct inet_peer_base tb6_peers
+unsigned_int flags
+unsigned_int fib_seq
+DEEPIN_KABI_EXTEND_tb6_gc_hlist
}
class DEEPIN_KABI_USE_1_2_gc_link {
+struct hlist_node gc_link
}
class DEEPIN_KABI_EXTEND_tb6_gc_hlist {
+struct hlist_head tb6_gc_hlist
}
fib6_table "1" --> "many" fib6_info : contains_routes
fib6_info "1" --> "1" DEEPIN_KABI_USE_1_2_gc_link : kabi_wraps
fib6_table "1" --> "1" DEEPIN_KABI_EXTEND_tb6_gc_hlist : kabi_extends
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
There was a problem hiding this comment.
Hey - I've left some high level feedback:
- Double-check that
DEEPIN_KABI_USE(1, 2, struct hlist_node gc_link)matches the intended macro contract (e.g., contiguous slots, type size) so that the resultingfib6_infolayout remains binary compatible across existing Deepin kernel builds.
Prompt for AI Agents
Please address the comments from this code review:
## Overall Comments
- Double-check that `DEEPIN_KABI_USE(1, 2, struct hlist_node gc_link)` matches the intended macro contract (e.g., contiguous slots, type size) so that the resulting `fib6_info` layout remains binary compatible across existing Deepin kernel builds.Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
There was a problem hiding this comment.
Pull request overview
This PR adjusts the IPv6 routing structures to preserve Deepin kernel ABI while still supporting the new GC list for IPv6 exception routes introduced upstream.
Changes:
- Move
fib6_info::gc_linkinto existing Deepin KABI reserved slots usingDEEPIN_KABI_USE(1, 2, struct hlist_node gc_link)to restore KABI compatibility without changing the exported layout. - Wrap
fib6_table::tb6_gc_hlistinDEEPIN_KABI_EXTEND(struct hlist_head tb6_gc_hlist)so the GC candidate list head is added without affecting existing ABI-visible portions of the struct.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
… routes
deepin inclusion
category: kabi
Fix kabi change in some whitelist symbols like nf_ct_netns_get..etc.
Log:
struct hlist_node {
struct hlist_node * next; /* 0 8 */
struct hlist_node * * pprev; /* 8 8 */
/* size: 16, cachelines: 1, members: 2 */
/* last cacheline: 16 bytes */
};
Fixes: 378dd99 ("net/ipv6: Remove expired routes with a separated list of routes.")
Signed-off-by: Wentao Guan <guanwentao@uniontech.com>
1aa885a to
21a9b53
Compare
3427f09
into
deepin-community:linux-6.6.y
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: lanlanxiyiji The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
… list of routes" deepin inclusion category: kabi This reverts commit 3427f09. We release new kabi version, revert it. Link: deepin-community#1452 Signed-off-by: Wentao Guan <guanwentao@uniontech.com>
… routes
deepin inclusion
category: kabi
Fix kabi change in some whitelist symbols like nf_ct_netns_get..etc.
Log:
struct hlist_node {
struct hlist_node * next; /* 0 8 /
struct hlist_node * * pprev; / 8 8 */
};
Fixes: 87ef084 ("ipv6: add exception routes to GC list in rt6_insert_exception")
Summary by Sourcery
Preserve Deepin kernel ABI while keeping IPv6 route GC structures for exception routes.
Bug Fixes: