lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Thu, 8 Dec 2011 10:04:57 +0000
From:	Paul Durrant <Paul.Durrant@...rix.com>
To:	ANNIE LI <annie.li@...cle.com>
CC:	"xen-devel@...ts.xensource.com" <xen-devel@...ts.xensource.com>,
	"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
	"konrad.wilk@...cle.com" <konrad.wilk@...cle.com>,
	"jeremy@...p.org" <jeremy@...p.org>,
	Ian Campbell <Ian.Campbell@...rix.com>,
	"kurt.hackel@...cle.com" <kurt.hackel@...cle.com>
Subject: RE: [PATCH V2 1/2] xen/granttable: Support sub-page grants

> -----Original Message-----
> From: ANNIE LI [mailto:annie.li@...cle.com]
> Sent: 08 December 2011 10:02
> To: Paul Durrant
> Cc: xen-devel@...ts.xensource.com; linux-kernel@...r.kernel.org;
> konrad.wilk@...cle.com; jeremy@...p.org; Ian Campbell;
> kurt.hackel@...cle.com
> Subject: Re: [PATCH V2 1/2] xen/granttable: Support sub-page grants
> 
> 
> >> +
> >> +int gnttab_grant_foreign_access_subpage(domid_t domid, unsigned
> >> long frame,
> >> +					int flags, unsigned page_off,
> >> +					unsigned length)
> >> +{
> >> +	int ref;
> >> +
> >> +	if (flags&  (GTF_accept_transfer | GTF_reading |
> >> +		     GTF_writing | GTF_transitive))
> >> +		return -EPERM;
> >> +
> >> +	if (gnttab_interface->update_subpage_entry == NULL)
> >> +		return -ENOSYS;
> >> +
> >> +	ref = get_free_entries(1);
> >> +	if (unlikely(ref<  0))
> >> +		return -ENOSPC;
> >> +
> >> +	gnttab_interface->update_subpage_entry(ref, domid, frame,
> >> flags,
> >> +					       page_off, length);
> >> +
> >> +	return ref;
> >> +}
> >> +EXPORT_SYMBOL_GPL(gnttab_grant_foreign_access_subpage);
> > There's quite a lot of duplicated code here. What about something
> along the lines of:
> >
> > #define get_free_entry()	get_free_entries(1)
> >
> > int gnttab_grant_foreign_access_subpage(domid_t domid, unsigned
> long frame,
> > 					int flags, unsigned page_off,
> > 					unsigned length)
> > {
> > 	int ref;
> >
> > 	ref = get_free_entry();
> > 	if (unlikely(ref<  0))
> > 		return -ENOSPC;
> >
> > 	rc = gnttab_grant_foreign_access_subpage_ref(ref, domid,
> frame, flags, page_off, length);
> > 	if (rc<  0)
> > 		put_free_entry(ref);
> >
> > 	return (rc<  0) rc : ref;
> > }
> > EXPORT_SYMBOL_GPL(gnttab_grant_foreign_access_subpage);
> >
> > I think this is more akin to the format for existing non-ref
> variants.
> >
> I hesitated between those two implement ways before sending them
> out.
> Those two ways all have shortcoming, one has duplicated code, but is
> simple when condition does not meet. The other way you pointed out
> added more put_free_entry process when _ref function fails.
> 

I say let's be optimistic :-) Yes, there's more overhead in the failure case, but that's not what we should be optimising for.

  Paul
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ