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] [day] [month] [year] [list]
Date:	Mon, 3 Mar 2008 12:37:29 -0500
From:	"Kristian Høgsberg" <krh@...planet.net>
To:	"Stefan Richter" <stefanr@...6.in-berlin.de>
Cc:	linux1394-devel@...ts.sourceforge.net,
	"Jarod Wilson" <jwilson@...hat.com>, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 2/5] firewire: fix crash in automatic module unloading

On Mon, Mar 3, 2008 at 12:16 PM, Stefan Richter
<stefanr@...6.in-berlin.de> wrote:
> Kristian Høgsberg wrote:
>  > I would want to use a kref and a completion for tracking this though
>  > instead of the atomic.  Just use kref_get() instead of incrementing
>  > the atomic and use kref_put() instead of decrementing it.  The release
>  > function for kref_put() should complete the completion struct and
>  > instead of the busy loop in fw_core_remove_card() we just wait for the
>  > completion.
>
>  Sounds like the way to go.  Since I already passed that patch upwards, I
>  will do an incremental rework.  (But perhaps not before spending some
>  time on ticket number 9617 at bugzilla.kernel.org's...)
>
>
>  > And I'm not sure I agree that it's a device_count, it
>  > really just is a ref-count.  The core should also hold a reference to
>  > the card and release it in fw_core_remove_card(), just before waiting
>  > on the completion.
>
>  Right; we just shouldn't mix fw-ohci's refcounting (which isn't really
>  needed since the lifetime rules for the card are as simple as they can
>  get for fw-ohci) and fw-core's refcounting.

Yup, we should keep the fw-ohci side of things simple.  And they still
are: it calls add_card() to add a new card at which point the core
starts using the card.  On removal, it calls remove_card() and when
that returns the core no knows or cares about the card and fw-ohci.c
is free to tear it down however it wants.  When I mention that the
core should hold a ref-count, it's really just that somebody needs to
own the initial ref-count and make sure it's dropped on the remove
path.

Kristian

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ