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-next>] [day] [month] [year] [list]
Message-Id: <20100107143651.2fa73662.randy.dunlap@oracle.com>
Date:	Thu, 7 Jan 2010 14:36:51 -0800
From:	Randy Dunlap <randy.dunlap@...cle.com>
To:	linux-kernel@...r.kernel.org, linux-mm@...ck.org
Cc:	akpm@...ux-foundation.org, rakib.mullick@...il.com
Subject: Re: + hugetlb-fix-section-mismatch-warning-in-hugetlbc.patch added
 to -mm tree

On Thu, 07 Jan 2010 14:18:25 -0800 akpm@...ux-foundation.org wrote:

> 
> The patch titled
>      hugetlb: fix section mismatch warning in hugetlb.c
> has been added to the -mm tree.  Its filename is
>      hugetlb-fix-section-mismatch-warning-in-hugetlbc.patch
> 
> 
> ------------------------------------------------------
> Subject: hugetlb: fix section mismatch warning in hugetlb.c
> From: Rakib Mullick <rakib.mullick@...il.com>
> 
> Since hugetlb_sysfs_add_hstate()'s caller is __init and it isn't
> referencing from any other function, we can do this.

Hi,

I looked at this section mismatch warning too.
Maybe I'm reading too much into it (so I have cc-ed linux-mm),
but it looks like hugetlbfs supports callbacks for node
hotplug & unplug:

in hugetlb_register_all_nodes():

	/*
	 * Let the node sysdev driver know we're here so it can
	 * [un]register hstate attributes on node hotplug.
	 */
	register_hugetlbfs_with_node(hugetlb_register_node,
				     hugetlb_unregister_node);

If so, then hugetlb_register_node() could be called at any time
(like after system init), and it would then call
hugetlb_sysfs_add_hstate(), which would be bad.

Am I misunderstanding the hotplug callbacks?
or can you explain just a bit better, please?
Thanks.


> Signed-off-by: Rakib Mullick <rakib.mullick@...il.com>
> Signed-off-by: Andrew Morton <akpm@...ux-foundation.org>
> ---
> 
>  mm/hugetlb.c |    6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff -puN mm/hugetlb.c~hugetlb-fix-section-mismatch-warning-in-hugetlbc mm/hugetlb.c
> --- a/mm/hugetlb.c~hugetlb-fix-section-mismatch-warning-in-hugetlbc
> +++ a/mm/hugetlb.c
> @@ -1650,7 +1650,7 @@ static void hugetlb_unregister_all_nodes
>   * Register hstate attributes for a single node sysdev.
>   * No-op if attributes already registered.
>   */
> -void hugetlb_register_node(struct node *node)
> +void __init hugetlb_register_node(struct node *node)
>  {
>  	struct hstate *h;
>  	struct node_hstate *nhs = &node_hstates[node->sysdev.id];
> @@ -1683,7 +1683,7 @@ void hugetlb_register_node(struct node *
>   * sysdevs of nodes that have memory.  All on-line nodes should have
>   * registered their associated sysdev by this time.
>   */
> -static void hugetlb_register_all_nodes(void)
> +static void __init hugetlb_register_all_nodes(void)
>  {
>  	int nid;
>  
> @@ -1712,7 +1712,7 @@ static struct hstate *kobj_to_node_hstat
>  
>  static void hugetlb_unregister_all_nodes(void) { }
>  
> -static void hugetlb_register_all_nodes(void) { }
> +static void __init hugetlb_register_all_nodes(void) { }
>  
>  #endif
>  
> _


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