android_kernel_xiaomi_sdm845/drivers/net
James Chapman 739840d529 ppp: fix segfaults introduced by netdev_priv changes
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 c8019bf3af
  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: Wang Chen <wangchen@cn.fujitsu.com>
    Signed-off-by: David 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: James Chapman <jchapman@katalix.com>
Reviewed-by: Wang Chen <wangchen@cn.fujitsu.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2008-12-18 19:41:42 -08:00
..
appletalk
arcnet
arm
atl1e
atlx
bonding
can
chelsio
cris
cxgb3
e1000
e1000e e1000e: fix double release of mutex 2008-12-11 21:28:11 -08:00
ehea
enic
fs_enet
hamradio
ibm_newemac
igb
irda
ixgb
ixgbe
ixp2000
mlx4
myri10ge
netxen
pcmcia
phy net: kernel BUG at drivers/net/phy/mdio_bus.c:165! 2008-12-17 00:24:13 -08:00
qlge
sfc
skfp
tokenring
tulip
usb
wan
wireless zd1211rw: use unaligned safe memcmp() in-place of compare_ether_addr() 2008-12-05 09:18:35 -05:00
3c59x.c
3c501.c
3c501.h
3c503.c
3c503.h
3c505.c
3c505.h
3c507.c
3c509.c
3c515.c
3c523.c
3c523.h
3c527.c
3c527.h
7990.c
7990.h
8139cp.c
8139too.c
8390.c
8390.h
8390p.c
82596.c
a2065.c
a2065.h
ac3200.c
acenic_firmware.h
acenic.c
acenic.h
amd8111e.c
amd8111e.h
apne.c
ariadne.c
ariadne.h
at1700.c
atarilance.c
atp.c
atp.h
au1000_eth.c
au1000_eth.h
ax88796.c
b44.c
b44.h
bfin_mac.c
bfin_mac.h
bmac.c
bmac.h
bnx2_fw2.h
bnx2_fw.h
bnx2.c bnx2: Fix bug in bnx2_free_rx_mem(). 2008-12-17 19:06:08 -08:00
bnx2.h bnx2: Add workaround to handle missed MSI. 2008-12-03 00:36:15 -08:00
bnx2x_fw_defs.h
bnx2x_hsi.h
bnx2x_init_values.h
bnx2x_init.h
bnx2x_link.c
bnx2x_link.h
bnx2x_main.c
bnx2x_reg.h
bnx2x.h
bsd_comp.c
cassini.c
cassini.h
cpmac.c
cs89x0.c
cs89x0.h
de600.c
de600.h
de620.c
de620.h
declance.c
defxx.c
defxx.h
depca.c
depca.h
dl2k.c
dl2k.h
dm9000.c
dm9000.h
dummy.c
e100.c
e2100.c
eepro100.c
eepro.c
eexpress.c
eexpress.h
enc28j60_hw.h
enc28j60.c enc28j60: use netif_rx_ni() to deliver RX packets 2008-12-16 01:48:29 -08:00
epic100.c
eql.c
es3210.c
eth16i.c
ewrk3.c
ewrk3.h
fealnx.c
fec_mpc52xx_phy.c
fec_mpc52xx.c
fec_mpc52xx.h
fec.c
fec.h
forcedeth.c
gianfar_ethtool.c
gianfar_mii.c
gianfar_mii.h
gianfar_sysfs.c
gianfar.c
gianfar.h
hamachi.c
hp100.c
hp100.h
hp-plus.c
hp.c
hplance.c
hplance.h
hydra.c
ibmlana.c
ibmlana.h
ibmveth.c
ibmveth.h
ifb.c
ioc3-eth.c
ipg.c
ipg.h
isa-skeleton.c
iseries_veth.c
jazzsonic.c
jme.c
jme.h jme: Fixed a typo 2008-12-17 00:26:37 -08:00
Kconfig
korina.c
lance.c
lasi_82596.c
lib8390.c
lib82596.c
LICENSE.SRC
lne390.c
loopback.c
lp486e.c
mac89x0.c
mac8390.c
macb.c
macb.h
mace.c
mace.h
macmace.c
macsonic.c
macvlan.c
Makefile
meth.c
meth.h
mii.c
mipsnet.c
mv643xx_eth.c
mvme147.c
myri_code.h
myri_sbus.c
myri_sbus.h
natsemi.c
ne2.c
ne2k-pci.c
ne3210.c
ne-h8300.c
ne.c
netconsole.c
netx-eth.c netx-eth: initialize per device spinlock 2008-12-03 22:18:59 -08:00
ni52.c
ni52.h
ni65.c
ni65.h
ni5010.c
ni5010.h
niu.c
niu.h
ns83820.c
pasemi_mac_ethtool.c
pasemi_mac.c
pasemi_mac.h
pci-skeleton.c
pcnet32.c
plip.c
ppp_async.c
ppp_deflate.c
ppp_generic.c ppp: fix segfaults introduced by netdev_priv changes 2008-12-18 19:41:42 -08:00
ppp_mppe.c
ppp_mppe.h
ppp_synctty.c
pppoe.c
pppol2tp.c
pppox.c
ps3_gelic_net.c
ps3_gelic_net.h
ps3_gelic_wireless.c
ps3_gelic_wireless.h
qla3xxx.c
qla3xxx.h
r6040.c
r8169.c
rionet.c
rrunner.c
rrunner.h
s2io-regs.h
s2io.c
s2io.h
sb1000.c
sb1250-mac.c
sc92031.c
seeq8005.c
seeq8005.h
sgiseeq.c
sgiseeq.h
sh_eth.c
sh_eth.h
sis190.c
sis900.c
sis900.h
skge.c
skge.h
sky2.c
sky2.h
slhc.c
slip.c
slip.h
smc91x.c
smc91x.h
smc911x.c
smc911x.h
smc9194.c
smc9194.h
smc-mca.c
smc-ultra32.c
smc-ultra.c
sni_82596.c
sonic.c
sonic.h
Space.c
spider_net_ethtool.c
spider_net.c
spider_net.h
starfire_firmware.h
starfire_firmware.pl
starfire.c drivers/net: starfire: Fix napi ->poll() weight handling 2008-12-16 15:42:20 -08:00
stnic.c
sun3_82586.c
sun3_82586.h
sun3lance.c
sunbmac.c
sunbmac.h
sundance.c
sungem_phy.c
sungem_phy.h
sungem.c sungem: improve ethtool output with internal pcs and serdes 2008-12-09 15:39:14 -08:00
sungem.h
sunhme.c
sunhme.h
sunlance.c
sunqe.c
sunqe.h
sunvnet.c
sunvnet.h
tc35815.c
tehuti_fw.h
tehuti.c
tehuti.h
tg3.c
tg3.h
tlan.c tlan: Fix pci memory unmapping 2008-12-16 15:22:41 -08:00
tlan.h
tsi108_eth.c
tsi108_eth.h
tun.c
typhoon-firmware.h
typhoon.c
typhoon.h
ucc_geth_ethtool.c
ucc_geth_mii.c
ucc_geth_mii.h
ucc_geth.c
ucc_geth.h
veth.c
via-rhine.c
via-velocity.c
via-velocity.h
virtio_net.c
wd.c
xen-netfront.c
xtsonic.c
yellowfin.c
znet.c
zorro8390.c