From: David Brownell <david-b@pacbell.net>
To: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Cc: linux-kernel@vger.kernel.org, hcegtvedt@atmel.com, akpm@osdl.org
Subject: Re: [PATCH 2.6.20-rc5] SPI: alternative fix for spi_busnum_to_master
Date: Mon, 22 Jan 2007 14:12:02 -0800 [thread overview]
Message-ID: <200701221412.02452.david-b@pacbell.net> (raw)
In-Reply-To: <20070122.112509.55511116.nemoto@toshiba-tops.co.jp>
On Sunday 21 January 2007 6:25 pm, Atsushi Nemoto wrote:
> Here is a revised version. The children list of spi_master_class
> contains only spi_master class so we can just compare bus_num member
> instead of class_id string.
Looks just a bit iffy ... though, thanks for helping to finally
sort this out!
> + down(&spi_master_class.sem);
> + list_for_each_entry(cdev, &spi_master_class.children, node) {
> + cdev = class_device_get(cdev);
> + if (!cdev)
> + continue;
That "continue" case doesn't seem like it should be possible... but
at any rate, the "get" can be deferred until the relevent class
device is known, since that _valid_ handle can't disappear so long
as that semaphore is held. And if you find the right device but
can't get a reference ... no point in continuing!
Something like a class_find_device() would be the best way to solve
this sort of problem, IMO. But we don't have one of those. :(
> + master = container_of(cdev, struct spi_master, cdev);
> + if (master->bus_num == bus_num)
> + break;
> + master = NULL;
> + class_device_put(cdev);
> + }
> + up(&spi_master_class.sem);
> + return master;
> }
> EXPORT_SYMBOL_GPL(spi_busnum_to_master);
>
>
next prev parent reply other threads:[~2007-01-22 22:12 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-01-18 11:28 [PATCH 2.6.20-rc5] SPI: alternative fix for spi_busnum_to_master Atsushi Nemoto
2007-01-22 2:25 ` Atsushi Nemoto
2007-01-22 22:12 ` David Brownell [this message]
2007-01-23 1:10 ` Atsushi Nemoto
2007-01-23 15:42 ` David Brownell
2007-01-23 16:07 ` Atsushi Nemoto
2007-01-23 23:43 ` David Brownell
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=200701221412.02452.david-b@pacbell.net \
--to=david-b@pacbell.net \
--cc=akpm@osdl.org \
--cc=anemo@mba.ocn.ne.jp \
--cc=hcegtvedt@atmel.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.