LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
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);
>  
> 

  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 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 \
    --subject='Re: [PATCH 2.6.20-rc5] SPI: alternative fix for spi_busnum_to_master' \
    /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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).