• Annie Li's avatar
    xen-netfront: fix resource leak in netfront · cefe0078
    Annie Li authored
    This patch removes grant transfer releasing code from netfront, and uses
    gnttab_end_foreign_access to end grant access since
    gnttab_end_foreign_access_ref may fail when the grant entry is
    currently used for reading or writing.
    
    * clean up grant transfer code kept from old netfront(2.6.18) which grants
    pages for access/map and transfer. But grant transfer is deprecated in current
    netfront, so remove corresponding release code for transfer.
    
    * fix resource leak, release grant access (through gnttab_end_foreign_access)
    and skb for tx/rx path, use get_page to ensure page is released when grant
    access is completed successfully.
    
    Xen-blkfront/xen-tpmfront/xen-pcifront also have similar issue, but patches
    for them will be created separately.
    
    V6: Correct subject line and commit message.
    
    V5: Remove unecessary change in xennet_end_access.
    
    V4: Revert put_page in gnttab_end_foreign_access, and keep netfront change in
    single patch.
    
    V3: Changes as suggestion from David Vrabel, ensure pages are not freed untill
    grant acess is ended.
    
    V2: Improve patch comments.
    Signed-off-by: default avatarAnnie Li <annie.li@oracle.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    cefe0078
xen-netfront.c 51.4 KB