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]
Message-ID: <1304439952.30823.68.camel@nimitz>
Date:	Tue, 03 May 2011 09:25:52 -0700
From:	Dave Hansen <dave@...ux.vnet.ibm.com>
To:	Daniel Kiper <dkiper@...-space.pl>
Cc:	ian.campbell@...rix.com, akpm@...ux-foundation.org,
	andi.kleen@...el.com, haicheng.li@...ux.intel.com,
	fengguang.wu@...el.com, jeremy@...p.org, konrad.wilk@...cle.com,
	dan.magenheimer@...cle.com, v.tolstov@...fip.ru, pasik@....fi,
	wdauchy@...il.com, rientjes@...gle.com,
	xen-devel@...ts.xensource.com, linux-kernel@...r.kernel.org,
	linux-mm@...ck.org
Subject: Re: [PATCH V2 2/2] mm: Extend memory hotplug API to allow memory
 hotplug in virtual machines

On Mon, 2011-05-02 at 23:49 +0200, Daniel Kiper wrote:
> +int register_online_page_callback(online_page_callback_t callback)
> +{
> +       int rc = -EPERM;
> +
> +       lock_memory_hotplug();
> +
> +       if (online_page_callback == generic_online_page) {
> +               online_page_callback = callback;
> +               rc = 0;
> +       }
> +
> +       unlock_memory_hotplug();
> +
> +       return rc;
> +}
> +EXPORT_SYMBOL_GPL(register_online_page_callback);

-EPERM is a bit uninformative here.  How about -EEXIST, plus a printk?

I also don't seen the real use behind having a "register" that can only
take a single callback.  At worst, it should be
"set_online_page_callback()" so it's more apparent that there can only
be one of these.

> +int unregister_online_page_callback(online_page_callback_t callback)
> +{
> +       int rc = -EPERM;
> +
> +       lock_memory_hotplug();
> +
> +       if (online_page_callback == callback) {
> +               online_page_callback = generic_online_page;
> +               rc = 0;
> +       }
> +
> +       unlock_memory_hotplug();
> +
> +       return rc;
> +}
> +EXPORT_SYMBOL_GPL(unregister_online_page_callback); 

Again, -EPERM is a bad code here. -EEXIST, perhaps?  It also deserves a
WARN_ON() or a printk on failure here.  

Your changelog doesn't mention, but what ever happened to doing
something dirt-simple like this?  I have a short memory.

> void arch_free_hotplug_page(struct page *page)
> {
>       if (xen_need_to_inflate_balloon())
>               put_page_in_balloon(page);
>       else
>               __free_page(page);
> }

-- Dave

--
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