Skip to content
  • Peter Wu's avatar
    r8152: fix lockup when runtime PM is enabled · 90186af4
    Peter Wu authored
    When an interface is brought up which was previously suspended (via
    runtime PM), it would hang. This happens because napi_disable is called
    before napi_enable.
    
    Solve this by avoiding napi_enable in the resume during open function
    (netif_running is true when open is called, IFF_UP is set after a
    successful open; netif_running is false when close is called, but IFF_UP
    is then still set).
    
    While at it, remove WORK_ENABLE check from rtl8152_open (introduced with
    the original change) because it cannot happen:
    
     - After this patch, runtime resume will not set it during rtl8152_open.
     - When link is up, rtl8152_open is not called.
     - When link is down during system/auto suspend/resume, it is not set.
    
    Fixes: 41cec84c ("r8152: don't enable napi before rx ready")
    Link: https://lkml.kernel.org/r/20151205105912.GA1766@al
    
    
    Signed-off-by: default avatarPeter Wu <peter@lekensteyn.nl>
    Acked-by: default avatarHayes Wang <hayeswang@realtek.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    90186af4