Re: [PATCH v2] mmc: mmci_qcom_dml: include mmci_qcom_dml.h and fix #ifdef

From: Ulf Hansson
Date: Sun Aug 06 2017 - 06:11:06 EST


On 6 August 2017 at 11:32, Arnd Bergmann <arnd@xxxxxxxx> wrote:
> On Sun, Aug 6, 2017 at 4:58 AM, Masahiro Yamada
> <yamada.masahiro@xxxxxxxxxxxxx> wrote:
>> 2017-08-05 7:10 GMT+09:00 Arnd Bergmann <arnd@xxxxxxxx>:
>>> On Fri, Aug 4, 2017 at 3:34 PM, Masahiro Yamada
>>> <yamada.masahiro@xxxxxxxxxxxxx> wrote:
>>>> Include mmci_qcom_dml.h from mmci_qcom_dml.c to fix the following
>>>> sparse warnings:
>>>>
>>>> CHECK drivers/mmc/host/mmci_qcom_dml.c
>>>> drivers/mmc/host/mmci_qcom_dml.c:57:6: warning: symbol 'dml_start_xfer' was not declared. Should it be static?
>>>> drivers/mmc/host/mmci_qcom_dml.c:122:5: warning: symbol 'dml_hw_init' was not declared. Should it be static?
>>>>
>>>> Fixing them causes redefintion of dml_start_xfer error, revealing another
>>>> problem in the header. #ifdef CONFIG_MMC_QCOM_DML is wrong because this
>>>> driver is tristate. (CONFIG_MMC_QCOM_DML_MODULE is defined when it is
>>>> built as a module)
>>>>
>>>> Since dml_hw_init() is called from mmci.c, IS_REACHABLE() is needed to
>>>> cater to all the combinations.
>>>>
>>>> Signed-off-by: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>
>>>
>>> I think this is still not a good solution, it will just turn a link error into
>>> an unusable system at runtime when the DML code is a loadable module
>>> but not used. Also, the symbols are not exported, so it won't work when both
>>> are built as modules.
>>> How about linking the DML code into the mmci module and making that
>>> Kconfig option a 'bool'?
>>
>>
>> You are right.
>> My patch does not solve the root of the problem.
>>
>> It turned out not so trivial as I had first expected.
>>
>> I'd like somebody else to take care of it
>> because I am not familiar with this driver.
>
> Maybe it's best if Ulf just reverts the broken commit, and then we start
> over with reviewing the patch properly.

The broken commit is reverted, however I will just drop both the bad
commit and its revert next time I rebase my next branch.

Kind regards
Uffe