All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jon Hunter <jon-hunter@ti.com>
To: Lars-Peter Clausen <lars@metafoo.de>
Cc: Vinod Koul <vinod.koul@intel.com>, Arnd Bergmann <arnd@arndb.de>,
	<linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 2/2] dma: of: Remove check on always true condition
Date: Mon, 22 Apr 2013 17:13:22 -0500	[thread overview]
Message-ID: <5175B602.3020701@ti.com> (raw)
In-Reply-To: <5175A4F5.1050304@metafoo.de>


On 04/22/2013 04:00 PM, Lars-Peter Clausen wrote:
> On 04/22/2013 10:52 PM, Jon Hunter wrote:
>>
>> On 04/22/2013 03:33 AM, Lars-Peter Clausen wrote:
>>> Both of_dma_nbcells field of the of_dma_controller and the args_count field of
>>> the dma_spec are initialized by parsing the #dma-cells attribute of their device
>>> tree node. So if the device tree nodes of a DMA controller and the dma_spec
>>> match this means that of_dma_nbcells and args_count will also match. So the
>>> second test in the of_dma_find_controller loop is redundant because given the
>>> first test yields true the second test will also yield true. So we can safely
>>> remove the test whether of_dma_nbcells matches args_count. Since this was the
>>> last user of the of_dma_nbcells field we can remove it altogether.
>>
>> This assumes that someone has correctly added the dma information to the
>> dma slave binding. I could see systems where different dma controllers
>> have different of_dma_nbcells and so someone could put the enter wrong
>> number of cells for a dma slave binding. Its really to catch user error.
> 
> No, this assumes nothing. The condition will _always_ be true.
> 
> dma_spec->args_count is initialized by parsing the #dma-cells attribute of
> dma_sepc->np. of_dma->of_dma_nbcells is initialized by parsing the #dma-cells
> attribute of of_dma->of_node. If ofdma->of_node equals dma_spec->np then
> dma_spec->args_count will also equal of_dma->of_dma_nbcells.

Thanks for the clarification. I should have looked more closely at
of_parse_phandle_with_args().

Yes I agree it will always be true if count is less than or equal to
MAX_PHANDLE_ARGS (which defaults to 8). It is very unlikely that someone
would use more than 8 and I guess it does warn on this condition.

if (out_args) {
	int i;
	if (WARN_ON(count > MAX_PHANDLE_ARGS))
		count = MAX_PHANDLE_ARGS;
	out_args->np = node;
	out_args->args_count = count;
	for (i = 0; i < count; i++)
		out_args->args[i] = be32_to_cpup(list++);
}

Cheers
Jon

  reply	other threads:[~2013-04-22 22:13 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-04-22  8:33 [PATCH 1/2] dma: of: Remove restriction that #dma-cells can't be 0 Lars-Peter Clausen
2013-04-22  8:33 ` [PATCH 2/2] dma: of: Remove check on always true condition Lars-Peter Clausen
2013-04-22 12:38   ` Arnd Bergmann
2013-04-22 20:52   ` Jon Hunter
2013-04-22 21:00     ` Lars-Peter Clausen
2013-04-22 22:13       ` Jon Hunter [this message]
2013-04-22 12:38 ` [PATCH 1/2] dma: of: Remove restriction that #dma-cells can't be 0 Arnd Bergmann
2013-04-22 12:47   ` Lars-Peter Clausen
2013-04-22 14:54     ` Arnd Bergmann
2013-05-23 10:30 ` Vinod Koul

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=5175B602.3020701@ti.com \
    --to=jon-hunter@ti.com \
    --cc=arnd@arndb.de \
    --cc=lars@metafoo.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=vinod.koul@intel.com \
    /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.