All of lore.kernel.org
 help / color / mirror / Atom feed
From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: Igor Mammedov <imammedo@redhat.com>
Cc: linux-kernel@vger.kernel.org, gregkh@linuxfoundation.org,
	chuck.anderson@oracle.com
Subject: Re: [PATCH 1/2] cpu: fix "crash_notes" leak in register_cpu()
Date: Tue, 14 May 2013 09:16:11 -0400	[thread overview]
Message-ID: <20130514131611.GD5558@phenom.dumpdata.com> (raw)
In-Reply-To: <1368482732-25554-2-git-send-email-imammedo@redhat.com>

On Tue, May 14, 2013 at 12:05:31AM +0200, Igor Mammedov wrote:
> "crash_notes" is dinamically created with device_create_file() but
                   ^^^^^^^^^^^-dynamically
> isn't anywhere deleted.
> Define "crash_notes" statically via attribute groups so that
> device_register would create it automatically and file would be
> destroyed when CPU is destroyed.

I had to modify it a bit to work with v3.10-rc1 (It is missing
the dev_attr_crash_notes_size), but otherwise it worked nicely.
> 
> Signed-off-by: Igor Mammedov <imammedo@redhat.com>
> ---
>  drivers/base/cpu.c |   21 +++++++++++++++++----
>  1 files changed, 17 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/base/cpu.c b/drivers/base/cpu.c
> index fb10728..02e4d73 100644
> --- a/drivers/base/cpu.c
> +++ b/drivers/base/cpu.c
> @@ -132,8 +132,24 @@ static ssize_t show_crash_notes(struct device *dev, struct device_attribute *att
>  	return rc;
>  }
>  static DEVICE_ATTR(crash_notes, 0400, show_crash_notes, NULL);
> +
> +static struct attribute *crash_note_cpu_attrs[] = {
> +	&dev_attr_crash_notes.attr,
> +	NULL
> +};
> +
> +static struct attribute_group crash_note_cpu_attr_group = {
> +	.attrs = crash_note_cpu_attrs,
> +};
>  #endif
>  
> +static const struct attribute_group *common_cpu_attr_groups[] = {
> +#ifdef CONFIG_KEXEC
> +	&crash_note_cpu_attr_group,
> +#endif
> +	NULL
> +};
> +
>  /*
>   * Print cpu online, possible, present, and system maps
>   */
> @@ -248,6 +264,7 @@ int __cpuinit register_cpu(struct cpu *cpu, int num)
>  #ifdef CONFIG_ARCH_HAS_CPU_AUTOPROBE
>  	cpu->dev.bus->uevent = arch_cpu_uevent;
>  #endif
> +	cpu->dev.groups = common_cpu_attr_groups;
>  	error = device_register(&cpu->dev);
>  	if (!error && cpu->hotpluggable)
>  		register_cpu_control(cpu);
> @@ -256,10 +273,6 @@ int __cpuinit register_cpu(struct cpu *cpu, int num)
>  	if (!error)
>  		register_cpu_under_node(num, cpu_to_node(num));
>  
> -#ifdef CONFIG_KEXEC
> -	if (!error)
> -		error = device_create_file(&cpu->dev, &dev_attr_crash_notes);
> -#endif
>  	return error;
>  }
>  
> -- 
> 1.7.1
> 

  reply	other threads:[~2013-05-14 13:16 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20120430153623.GA23485@phenom.dumpdata.com>
2012-04-30 15:37 ` udev races with 'arch_register_cpu' to write 1 to /sys/devices/system/cpu/cpu1/online (which is not yet created) Konrad Rzeszutek Wilk
2012-04-30 15:50 ` Greg KH
2012-04-30 15:51   ` Greg KH
2012-04-30 16:17     ` Konrad Rzeszutek Wilk
2013-05-10 16:34       ` Igor Mammedov
2013-05-13 13:31         ` Konrad Rzeszutek Wilk
2013-05-13 14:25           ` Greg KH
2013-05-13 22:05           ` [RFC 0/2] cpu: fix leak and udev race in register_cpu() Igor Mammedov
2013-05-14 13:19             ` Konrad Rzeszutek Wilk
2013-05-14 14:45             ` Greg KH
2013-05-13 22:05           ` [PATCH 1/2] cpu: fix "crash_notes" leak " Igor Mammedov
2013-05-14 13:16             ` Konrad Rzeszutek Wilk [this message]
2013-05-13 22:05           ` [PATCH 2/2] cpu: make sure that cpu/online file created before KOBJ_ADD is emitted Igor Mammedov
2013-05-14 13:17             ` Konrad Rzeszutek Wilk

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130514131611.GD5558@phenom.dumpdata.com \
    --to=konrad.wilk@oracle.com \
    --cc=chuck.anderson@oracle.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=imammedo@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.