static struct ipv6_devconf ipv6_devconf_dflt __read_mostly = {
.forwarding = 0,
.hop_limit = IPV6_DEFAULT_HOPLIMIT,
.mtu6 = IPV6_MIN_MTU,
};
static int __net_init addrconf_init_net(struct net *net)
{
struct ipv6_devconf *dflt;
dflt = &ipv6_devconf_dflt;
kfree(dflt);
}
ipv6_devconf_dflt
是一个静态结构体变量。将 ipv6_devconf_dflt
的地址分配给本地变量,然后使用 kfree()
释放。
可以释放非堆内存吗?
__addrconf_sysctl_register
从不失败,因此这段代码永远不会被执行。如果它在启动期间运行,应该有足够的空闲内存和没有失败的原因。 - ugoren