[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH RFC 01/12] xen-blkback: don't store dev_bus_addr
>>> On 28.02.13 at 11:28, Roger Pau Monne <roger.pau@xxxxxxxxxx> wrote: > dev_bus_addr returned in the grant ref map operation is the mfn of the > passed page, there's no need to store it in the persistent grant > entry, since we can always get it provided that we have the page. Interesting that you come up with this, as I have a similar patch pending (not posted yet), aiming at reducing the stack usage in dispatch_rw_block_io(): seg[].buf is really unnecessary with the dev_bus_addr storing removed, as the only reader of that field can equally well use req->u.rw.seg[i].first_sect. And then the biolist[] array really can be folded into a union with the remaining seg[] one, as their usage scopes are easily separable. > --- a/drivers/block/xen-blkback/blkback.c > +++ b/drivers/block/xen-blkback/blkback.c > @@ -621,9 +621,7 @@ static int xen_blkbk_map(struct blkif_request *req, > * If this is a new persistent grant > * save the handler > */ > - persistent_gnts[i]->handle = map[j].handle; > - persistent_gnts[i]->dev_bus_addr = > - map[j++].dev_bus_addr; > + persistent_gnts[i]->handle = map[j++].handle; > } > pending_handle(pending_req, i) = > persistent_gnts[i]->handle; > @@ -631,7 +629,8 @@ static int xen_blkbk_map(struct blkif_request *req, > if (ret) > continue; > > - seg[i].buf = persistent_gnts[i]->dev_bus_addr | > + seg[i].buf = pfn_to_mfn(page_to_pfn( > + persistent_gnts[i]->page)) << PAGE_SHIFT | So why do you do this? The only reader masks the field with ~PAGE_MASK anyway. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |