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  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:	Fri, 19 Sep 2014 16:10:23 -0700
From:	Greg KH <greg@...ah.com>
To:	"John L. Hammond" <john.hammond@...el.com>
Cc:	andreas.dilger@...el.com, oleg.drokin@...el.com,
	uja.ornl@...il.com, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] staging: lustre: fix undefined references to obd_memory

On Mon, Sep 15, 2014 at 09:34:53AM -0500, John L. Hammond wrote:
> From: "John L. Hammond" <john.hammond@...el.com>
> 
> If CONFIG_PROC_FS=n then obd_memory is not defined. So put the setup
> and cleanup of this variable within #ifdef CONFIG_PROC_FS guards.
> 
> Signed-off-by: John L. Hammond <john.hammond@...el.com>
> ---
>  .../staging/lustre/lustre/include/obd_support.h    |    2 ++
>  drivers/staging/lustre/lustre/obdclass/class_obd.c |    5 +++++
>  2 files changed, 7 insertions(+)
> 
> diff --git a/drivers/staging/lustre/lustre/include/obd_support.h b/drivers/staging/lustre/lustre/include/obd_support.h
> index 2991d2e..408ce7f 100644
> --- a/drivers/staging/lustre/lustre/include/obd_support.h
> +++ b/drivers/staging/lustre/lustre/include/obd_support.h
> @@ -43,12 +43,14 @@
>  #include "lprocfs_status.h"
>  
>  /* global variables */
> +#ifdef CONFIG_PROC_FS
>  extern struct lprocfs_stats *obd_memory;
>  enum {
>  	OBD_MEMORY_STAT = 0,
>  	OBD_MEMORY_PAGES_STAT = 1,
>  	OBD_STATS_NUM,
>  };
> +#endif /* CONFIG_PROC_FS */
>  
>  extern unsigned int obd_debug_peer_on_timeout;
>  extern unsigned int obd_dump_on_timeout;
> diff --git a/drivers/staging/lustre/lustre/obdclass/class_obd.c b/drivers/staging/lustre/lustre/obdclass/class_obd.c
> index 8b8d338..2939f0c 100644
> --- a/drivers/staging/lustre/lustre/obdclass/class_obd.c
> +++ b/drivers/staging/lustre/lustre/obdclass/class_obd.c
> @@ -534,6 +534,7 @@ static int __init init_obdclass(void)
>  	spin_lock_init(&obd_types_lock);
>  	obd_zombie_impexp_init();
>  
> +#ifdef CONFIG_PROC_FS
>  	obd_memory = lprocfs_alloc_stats(OBD_STATS_NUM,
>  					 LPROCFS_STATS_FLAG_NONE |
>  					 LPROCFS_STATS_FLAG_IRQ_SAFE);
> @@ -548,6 +549,7 @@ static int __init init_obdclass(void)
>  	lprocfs_counter_init(obd_memory, OBD_MEMORY_PAGES_STAT,
>  			     LPROCFS_CNTR_AVGMINMAX,
>  			     "pagesused", "pages");
> +#endif /* CONFIG_PROC_FS */
>  
>  	err = obd_init_checks();
>  	if (err == -EOVERFLOW)
> @@ -688,7 +690,10 @@ static void cleanup_obdclass(void)
>  	memory_max = obd_memory_max();
>  	pages_max = obd_pages_max();
>  
> +#ifdef CONFIG_PROC_FS
>  	lprocfs_free_stats(&obd_memory);
> +#endif /* CONFIG_PROC_FS */

That's horrid.

Don't put #ifdef lines in .c files, put the proper stuff in the .h
files, that way there is always a lprocfs_free_stats call.

thanks,

greg k-h
--
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