Re: [[Xen-devel] [PATCH net-next v3] xen-netfront: clean up code in xennet_release_rx_bufs
From: Annie <hidden>
Date: 2014-01-23 13:38:23
On 01/23/2014 2:55 AM, David Vrabel [off-list ref] wrote
On 23/01/14 01:36, Annie Li wrote:quoted
From: Annie Li <redacted> This patch removes grant transfer code from netfront, and improves ending grant acess mechanism since gnttab_end_foreign_access_ref may fail when the grant entry is currently used for reading or writing. * release grant reference and skb for tx/rx path, use get_page/put_page to ensure page is released when grant access is completed successfully. * change corresponding code in xen-blkfront/xen-tpmfront/xen-pcifront because of code change for put_page in gnttab_end_foreign_access. * 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. V3: Changes as suggestion from David Vrabel, ensure pages are not freed untill grant acess is ended. V2: improve patch comments. Signed-off-by: Annie Li <redacted> --- drivers/block/xen-blkfront.c | 25 ++++++++--- drivers/char/tpm/xen-tpmfront.c | 7 +++- drivers/net/xen-netfront.c | 93 ++++++++++++-------------------------- drivers/pci/xen-pcifront.c | 7 +++- drivers/xen/grant-table.c | 4 +- 5 files changed, 63 insertions(+), 73 deletions(-)I don't understand why you've made all these unnecessary changes to the other frontends and grant-table.c. The xen-netfront.c changes are fine on their own.
Changes in grant-table.c corresponds to get_page before gnttab_end_foreign_access, just keeping consistent in the function name. This change does not really change the mechanism, so I can revert it. For the changes in other frontends, the reason is they also have similar issue - grant access probably is not ended successfully when the page is freed. Thanks Annie
David -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html