All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Sricharan" <sricharan-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
To: 'Marek Szyprowski'
	<m.szyprowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>,
	'Tomasz Figa' <tfiga-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
Cc: "'open list:IOMMU DRIVERS'"
	<iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org>,
	'Will Deacon' <will.deacon-5wv7dgnIgG8@public.gmane.org>,
	'Laurent Pinchart'
	<laurent.pinchart-ryLnwIuWjnjg/C1BVhZhaw@public.gmane.org>,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org
Subject: RE: [PATCH 7/8] iommu: of: Handle IOMMU lookup failure with deferred probing or error
Date: Wed, 7 Sep 2016 11:46:13 +0530	[thread overview]
Message-ID: <002c01d208cf$598d4a50$0ca7def0$@codeaurora.org> (raw)
In-Reply-To: <1c5dde1d-1ffb-d045-c090-032b9f1c7de2-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>

Hi Marek,

>Hi Sricharan,
>
>
>On 2016-08-12 17:40, Sricharan wrote:
>> Hi Tomaz,
>>
>>>> +               if (ops->add_device)
>>>> +                       ops = ops->add_device(dev) ? ops : NULL;
>>> Patch description fails to mention anything about this change. Also it
>>> looks slightly incorrect to lose the error condition here. I think we
>>> should at least print some error message here and tell the user that
>>> we are falling back to non-IOMMU setup.
>>      Ok, will have to improve the patch description to add this and will
>>      fix the error value as well. Will also add the remove_device during
>>       deconfigure as well.
>>
>>>
>>>>                  of_node_put(np);
>>>>                  idx++;
>>>> @@ -200,7 +213,7 @@ const struct iommu_ops *of_iommu_configure(struct device *dev,
>>>>
>>>>   err_put_node:
>>>>          of_node_put(np);
>>>> -       return NULL;
>>>> +       return ops;
>>>>   }
>>>>
>>>>   void __init of_iommu_init(void)
>>>> @@ -211,7 +224,7 @@ void __init of_iommu_init(void)
>>>>          for_each_matching_node_and_match(np, matches, &match) {
>>>>                  const of_iommu_init_fn init_fn = match->data;
>>>>
>>>> -               if (init_fn(np))
>>>> +               if (init_fn && init_fn(np))
>>> When is it possible to have NULL init_fn?
>>     ya wrong, should not be needed.
>
>init_fn can be NULL if you convert IOMMU driver to use platform device
>infrastructure based initialization and you don't need to do anything
>before the driver gets probed, so please keep this check.
>
>I used this approach here:
>https://git.linaro.org/people/marek.szyprowski/linux-srpol.git/commitdiff/a30735973573128b14bb4a25cf4debaa0979a655
>(this commit is a part of v4.8-clocks-pm branch)
>
>IOMMU_OF_DECLARE() with NULL init_fn is needed to notify IOMMU core that
>this IOMMU driver is available in the system and core has to defer
>probing of drivers before the IOMMU driver gets initialized from its
>controller's platform device.
>
   ok, thanks, understand. I was not thinking about the non-dt case.
I will keep this check then.

Regards,
 Sricharan     

WARNING: multiple messages have this Message-ID (diff)
From: sricharan@codeaurora.org (Sricharan)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 7/8] iommu: of: Handle IOMMU lookup failure with deferred probing or error
Date: Wed, 7 Sep 2016 11:46:13 +0530	[thread overview]
Message-ID: <002c01d208cf$598d4a50$0ca7def0$@codeaurora.org> (raw)
In-Reply-To: <1c5dde1d-1ffb-d045-c090-032b9f1c7de2@samsung.com>

Hi Marek,

>Hi Sricharan,
>
>
>On 2016-08-12 17:40, Sricharan wrote:
>> Hi Tomaz,
>>
>>>> +               if (ops->add_device)
>>>> +                       ops = ops->add_device(dev) ? ops : NULL;
>>> Patch description fails to mention anything about this change. Also it
>>> looks slightly incorrect to lose the error condition here. I think we
>>> should at least print some error message here and tell the user that
>>> we are falling back to non-IOMMU setup.
>>      Ok, will have to improve the patch description to add this and will
>>      fix the error value as well. Will also add the remove_device during
>>       deconfigure as well.
>>
>>>
>>>>                  of_node_put(np);
>>>>                  idx++;
>>>> @@ -200,7 +213,7 @@ const struct iommu_ops *of_iommu_configure(struct device *dev,
>>>>
>>>>   err_put_node:
>>>>          of_node_put(np);
>>>> -       return NULL;
>>>> +       return ops;
>>>>   }
>>>>
>>>>   void __init of_iommu_init(void)
>>>> @@ -211,7 +224,7 @@ void __init of_iommu_init(void)
>>>>          for_each_matching_node_and_match(np, matches, &match) {
>>>>                  const of_iommu_init_fn init_fn = match->data;
>>>>
>>>> -               if (init_fn(np))
>>>> +               if (init_fn && init_fn(np))
>>> When is it possible to have NULL init_fn?
>>     ya wrong, should not be needed.
>
>init_fn can be NULL if you convert IOMMU driver to use platform device
>infrastructure based initialization and you don't need to do anything
>before the driver gets probed, so please keep this check.
>
>I used this approach here:
>https://git.linaro.org/people/marek.szyprowski/linux-srpol.git/commitdiff/a30735973573128b14bb4a25cf4debaa0979a655
>(this commit is a part of v4.8-clocks-pm branch)
>
>IOMMU_OF_DECLARE() with NULL init_fn is needed to notify IOMMU core that
>this IOMMU driver is available in the system and core has to defer
>probing of drivers before the IOMMU driver gets initialized from its
>controller's platform device.
>
   ok, thanks, understand. I was not thinking about the non-dt case.
I will keep this check then.

Regards,
 Sricharan     

  parent reply	other threads:[~2016-09-07  6:16 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-08 22:49 [PATCH 0/8] IOMMU Probe deferral support Sricharan R
2016-08-08 22:49 ` Sricharan R
     [not found] ` <1470696550-3416-1-git-send-email-sricharan-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2016-08-08 22:49   ` [PATCH 1/8] arm: dma-mapping: Don't override dma_ops in arch_setup_dma_ops() Sricharan R
2016-08-08 22:49     ` Sricharan R
     [not found]     ` <1470696550-3416-2-git-send-email-sricharan-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2016-09-02  8:16       ` Marek Szyprowski
2016-09-02  8:16         ` Marek Szyprowski
     [not found]         ` <16c9743e-e531-25aa-76f1-8746a6b8ef11-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2016-09-07  6:24           ` Sricharan
2016-09-07  6:24             ` Sricharan
2016-08-08 22:49   ` [PATCH 2/8] of: dma: Move range size workaround to of_dma_get_range() Sricharan R
2016-08-08 22:49     ` Sricharan R
2016-08-08 22:49   ` [PATCH 3/8] of: dma: Make of_dma_deconfigure() public Sricharan R
2016-08-08 22:49     ` Sricharan R
2016-08-08 22:49   ` [PATCH 4/8] of: dma: Split of_configure_dma() into mask and ops configuration Sricharan R
2016-08-08 22:49     ` Sricharan R
     [not found]     ` <1470696550-3416-5-git-send-email-sricharan-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2016-08-12  7:31       ` Tomasz Figa
2016-08-12  7:31         ` Tomasz Figa
     [not found]         ` <CAAFQd5BkpHrF=2=UXFA2mPKe0VQAD3J_XSNrZYHP0br5hw=Gsw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-08-12 15:18           ` Laurent Pinchart
2016-08-12 15:18             ` Laurent Pinchart
2016-08-12 15:45             ` Sricharan
2016-08-12 15:45               ` Sricharan
2016-09-09  6:53       ` Magnus Damm
2016-09-09  6:53         ` Magnus Damm
     [not found]         ` <CANqRtoRVRrP9dc3qc-xSE_Wct2HPznzzi1hdrHeC8h2gA=JcKg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-09-09  9:48           ` Sricharan
2016-09-09  9:48             ` Sricharan
2016-08-08 22:49   ` [PATCH 5/8] drivers: platform: Configure dma operations at probe time Sricharan R
2016-08-08 22:49     ` Sricharan R
     [not found]     ` <1470696550-3416-6-git-send-email-sricharan-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2016-08-16  9:25       ` Laurent Pinchart
2016-08-16  9:25         ` Laurent Pinchart
2016-08-16 12:28         ` Sricharan
2016-08-16 12:28           ` Sricharan
2016-08-08 22:49   ` [PATCH 6/8] drivers: platform: Remove call to of_dma_(con/decon)figure_ops Sricharan R
2016-08-08 22:49     ` Sricharan R
     [not found]     ` <1470696550-3416-7-git-send-email-sricharan-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2016-08-12  7:33       ` Tomasz Figa
2016-08-12  7:33         ` Tomasz Figa
     [not found]         ` <CAAFQd5DZ0ZpW2eEm8Bvh8=di6kOgUG4bGY_iTNbVBHsj0KPmeg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-08-12 15:42           ` Sricharan
2016-08-12 15:42             ` Sricharan
2016-08-08 22:49   ` [PATCH 7/8] iommu: of: Handle IOMMU lookup failure with deferred probing or error Sricharan R
2016-08-08 22:49     ` Sricharan R
     [not found]     ` <1470696550-3416-8-git-send-email-sricharan-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2016-08-12  7:46       ` Tomasz Figa
2016-08-12  7:46         ` Tomasz Figa
     [not found]         ` <CAAFQd5C8BuOCc5ySw_3tVELDG4S+r_5VyDvOPnBBuVr-6CBfxg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-08-12 15:40           ` Sricharan
2016-08-12 15:40             ` Sricharan
2016-09-02  8:09             ` Marek Szyprowski
2016-09-02  8:09               ` Marek Szyprowski
     [not found]               ` <1c5dde1d-1ffb-d045-c090-032b9f1c7de2-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2016-09-07  6:16                 ` Sricharan [this message]
2016-09-07  6:16                   ` Sricharan
2016-09-02 12:52       ` Marek Szyprowski
2016-09-02 12:52         ` Marek Szyprowski
     [not found]         ` <17b1ff0a-6619-cd45-28cd-70bf79bdcc47-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2016-09-07  6:29           ` Sricharan
2016-09-07  6:29             ` Sricharan
2016-08-08 22:49   ` [PATCH 8/8] drivers: iommu: arm-smmu: Set iommu_ops in probe Sricharan R
2016-08-08 22:49     ` Sricharan R

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='002c01d208cf$598d4a50$0ca7def0$@codeaurora.org' \
    --to=sricharan-sgv2jx0feol9jmxxk+q4oq@public.gmane.org \
    --cc=iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
    --cc=laurent.pinchart-ryLnwIuWjnjg/C1BVhZhaw@public.gmane.org \
    --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=m.szyprowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org \
    --cc=tfiga-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org \
    --cc=will.deacon-5wv7dgnIgG8@public.gmane.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.