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: <1292428486.4688.180.camel@mulgrave.site>
Date:	Wed, 15 Dec 2010 10:54:46 -0500
From:	James Bottomley <James.Bottomley@...e.de>
To:	Tejun Heo <tj@...nel.org>
Cc:	Linux SCSI List <linux-scsi@...r.kernel.org>,
	FUJITA Tomonori <fujita.tomonori@....ntt.co.jp>,
	lkml <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH 2/2] scsi: don't use execute_in_process_context()

On Wed, 2010-12-15 at 16:47 +0100, Tejun Heo wrote:
> One way or the other, the current code is racy.  The module can go
> away while the work is still running.  We'll have to add sync
> interface for ew's, which conceptually is fine but is unnecessary with
> the current code base.  Let's do it when it actually is necessary.

OK, ignoring the bickering over API, this is what I don't get.

The executed function releases the parent reference as its last call.
That will cause the freeing of the embedded work item and a cascade
release of all the parents.  If there's no more references, that will
result in a final put of the module semaphore and rmmod will then
proceed.  What is racy about that?  All the work structures and
references have been freed before the module gets removed.  Nothing
blocks the execution thread in the function, so it exits long before the
code path gets zeroed.

James


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