释放非堆内存

时间:2012-06-28 00:45:05

标签: c memory-leaks linux-kernel structure klocwork

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()释放。

是否允许释放非堆内存?

1 个答案:

答案 0 :(得分:4)

不 - 在堆外释放内存没有意义,因为kfree()只能在kmalloc() ed块的上下文中释放内存!

时间轴: