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: <20120430155149.GB16794@kroah.com>
Date:	Mon, 30 Apr 2012 11:51:49 -0400
From:	Greg KH <gregkh@...uxfoundation.org>
To:	Konrad Rzeszutek Wilk <konrad.wilk@...cle.com>
Cc:	linux-kernel@...r.kernel.org
Subject: Re: udev races with 'arch_register_cpu' to write 1 to
 /sys/devices/system/cpu/cpu1/online (which is not yet created).

On Mon, Apr 30, 2012 at 11:50:18AM -0400, Greg KH wrote:
> On Mon, Apr 30, 2012 at 11:36:23AM -0400, Konrad Rzeszutek Wilk wrote:
> > Hey Greg,
> > 
> > Hoping you can help with some guidance on how to fix this.
> > 
> > The issue is with CPU hotplug is that when a CPU goes up
> > it calls 'arch_register_cpu' which eventually calls
> > register_cpu. That function does these two things:
> > 
> > 251         error = device_register(&cpu->dev);
> > 252         if (!error && cpu->hotpluggable)
> > 253                 register_cpu_control(cpu);
> > 
> > and the device_register creates a nice little SysFS directory:
> > 
> > /sys/devices/system/cpu/cpu2/ which at line 251 has the 'add' attribute
> > but no 'online' attribute. udev then tries to echo 1 to the 'online'
> > and it we get:
> > udevd-work[2421]: error opening ATTR{/sys/devices/system/cpu/cpu2/online} for writing: No such file or directory
> > 
> > Line 253 creates said 'online' and at that time udev [or the system admin]
> > can write 1 to 'online' and the CPU goes up.
> > 
> > So .. any thoughts? Is there some way to inhibit from uevent being sent
> > until line 253 has run?
> 
> Yes.

Oh, I imagine you want to know _how_ to do it too, right?  (sorry, I
couldn't resist...)

Make this a default attribute of the cpu device, and then it will be
created by the driver core before the uevent is sent to userspace.
That's what you are supposed to do in the first place, adding files "by
hand" is wrong, for this very reason.

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

Powered by Openwall GNU/*/Linux Powered by OpenVZ