diff mbox

[netlink] WARNING: at mm/vmalloc.c:1487 __vunmap()

Message ID CAM_iQpWu2U5UmHhvmnqNenbWyz7vng8W+b0AssE31FSgSd9DLg@mail.gmail.com
State RFC, archived
Delegated to: David Miller
Headers show

Commit Message

Cong Wang June 15, 2013, 5:57 a.m. UTC
On Sat, Jun 15, 2013 at 6:01 AM, Fengguang Wu <fengguang.wu@intel.com> wrote:
> Greetings,
>
> I got the below dmesg and the first bad commit is
>
> commit c05cdb1b864f548c0c3d8ae3b51264e6739a69b1
> Author: Pablo Neira Ayuso <pablo@netfilter.org>
> Date:   Mon Jun 3 09:46:28 2013 +0000
>
>     netlink: allow large data transfers from user-space

Hi, Fengguang,

Could you try the following quick fix?

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Cong Wang June 15, 2013, 6:06 a.m. UTC | #1
On Sat, Jun 15, 2013 at 1:57 PM, Cong Wang <xiyou.wangcong@gmail.com> wrote:
>
> Hi, Fengguang,
>
> Could you try the following quick fix?
>
> diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c
> index 8978755..d8c6c03 100644
> --- a/net/netlink/af_netlink.c
> +++ b/net/netlink/af_netlink.c
> @@ -750,7 +750,7 @@ static void netlink_skb_destructor(struct sk_buff *skb)
>                 skb->head = NULL;
>         }
>  #endif
> -       if (is_vmalloc_addr(skb->head)) {
> +       else if (is_vmalloc_addr(skb->head)) {


Never mind, skb->head is already set to NULL when it is
mmap skb... so please ignore it.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c
index 8978755..d8c6c03 100644
--- a/net/netlink/af_netlink.c
+++ b/net/netlink/af_netlink.c
@@ -750,7 +750,7 @@  static void netlink_skb_destructor(struct sk_buff *skb)
                skb->head = NULL;
        }
 #endif
-       if (is_vmalloc_addr(skb->head)) {
+       else if (is_vmalloc_addr(skb->head)) {
                vfree(skb->head);
                skb->head = NULL;
        }