• Heiner Kallweit's avatar
    r8169: fix setting driver_data after register_netdev · 19c9ea36
    Heiner Kallweit authored
    pci_set_drvdata() is called only after registering the net_device,
    therefore we could run into a NPE if one of the functions using
    driver_data is called before it's set.
    
    Fix this by calling pci_set_drvdata() before registering the
    net_device.
    
    This fix is a candidate for stable. As far as I can see the
    bug has been there in kernel version 3.2 already, therefore
    I can't provide a reference which commit is fixed by it.
    
    The fix may need small adjustments per kernel version because
    due to other changes the label which is jumped to if
    register_netdev() fails has changed over time.
    Reported-by: default avatarDavid Miller <davem@davemloft.net>
    Signed-off-by: default avatarHeiner Kallweit <hkallweit1@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    19c9ea36
r8169.c 215 KB