1. 19 Dec, 2008 2 commits
    • James Chapman's avatar
      ppp: fix segfaults introduced by netdev_priv changes · 739840d5
      James Chapman authored
      This patch fixes a segfault in ppp_shutdown_interface() and
      ppp_destroy_interface() when a PPP connection is closed. I bisected
      the problem to the following commit:
      
        commit c8019bf3
        Author: Wang Chen <wangchen@cn.fujitsu.com>
        Date:   Thu Nov 20 04:24:17 2008 -0800
      
          netdevice ppp: Convert directly reference of netdev->priv
      
          1. Use netdev_priv(dev) to replace dev->priv.
          2. Alloc netdev's private data by alloc_netdev().
      Signed-off-by: default avatarWang Chen <wangchen@cn.fujitsu.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      
      The original ppp_generic code treated the netdev and struct ppp as
      independent data structures which were freed separately. In moving the
      ppp struct into the netdev, it is now possible for the private data to
      be freed before the call to ppp_shutdown_interface(), which is bad.
      
      The kfree(ppp) in ppp_destroy_interface() is also wrong; presumably
      ppp hasn't worked since the above commit.
      
      The following patch fixes both problems.
      Signed-off-by: default avatarJames Chapman <jchapman@katalix.com>
      Reviewed-by: default avatarWang Chen <wangchen@cn.fujitsu.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      739840d5
    • Wei Yongjun's avatar
      net: Fix module refcount leak in kernel_accept() · 1b08534e
      Wei Yongjun authored
      The kernel_accept() does not hold the module refcount of newsock->ops->owner,
      so we need __module_get(newsock->ops->owner) code after call kernel_accept()
      by hand.
      In sunrpc, the module refcount is missing to hold. So this cause kernel panic.
      
      Used following script to reproduct:
      
      while [ 1 ];
      do
          mount -t nfs4 192.168.0.19:/ /mnt
          touch /mnt/file
          umount /mnt
          lsmod | grep ipv6
      done
      
      This patch fixed the problem by add __module_get(newsock->ops->owner) to
      kernel_accept(). So we do not need to used __module_get(newsock->ops->owner)
      in every place when used kernel_accept().
      Signed-off-by: default avatarWei Yongjun <yjwei@cn.fujitsu.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1b08534e
  2. 18 Dec, 2008 1 commit
  3. 17 Dec, 2008 3 commits
  4. 16 Dec, 2008 13 commits
  5. 15 Dec, 2008 8 commits
  6. 14 Dec, 2008 2 commits
  7. 13 Dec, 2008 7 commits
  8. 12 Dec, 2008 4 commits