Thread (3 messages) flat view 3 messages, 2 authors, 2014-01-23

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help