[PATCH v2] media: platform: Use dev_err_probe instead of dev_err

王明-软件底层技术部 machel at vivo.com
Wed Jul 26 18:09:24 PDT 2023


在 2023/7/26 22:49, Laurent Pinchart 写道:
> [Some people who received this message don't often get email from laurent.pinchart at ideasonboard.com. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ]
>
> On Wed, Jul 26, 2023 at 05:28:37PM +0300, Laurent Pinchart wrote:
>> Hi Wang,
>>
>> Thank you for the patch.
>>
>> On Wed, Jul 26, 2023 at 07:51:58PM +0800, Wang Ming wrote:
>>> It is possible that dma_request_chan will return EPROBE_DEFER,
>>> which means that dma->xdev->dev is not ready yet. In this case,
>>> dev_err(dma->xdev->dev), there will be no output. This patch
>>> fixes the bug.
>> It's not a bug. The existing code works as expected. dev_err_probe() is
>> nicer though, as it records the reason for the probe deferral. Here's a
>> proposal for a better commit message:
>>
>>    It is possible that dma_request_chan() returns EPROBE_DEFER, in which
>>    case the driver defers probing without printing any message. Use
>>    dev_err_probe() to record the probe deferral cause and ease debugging.
>>
>> If you're fine with this, there's no need to resubmit, I'll update the
>> commit message locally and merge the patch.
>>
>> Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
>>
>>> Signed-off-by: Wang Ming <machel at vivo.com>
>>> ---
>>>   drivers/media/platform/xilinx/xilinx-dma.c | 5 ++---
>>>   1 file changed, 2 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/drivers/media/platform/xilinx/xilinx-dma.c b/drivers/media/platform/xilinx/xilinx-dma.c
>>> index 80d6f5b072ea..16ad39bef6c6 100644
>>> --- a/drivers/media/platform/xilinx/xilinx-dma.c
>>> +++ b/drivers/media/platform/xilinx/xilinx-dma.c
>>> @@ -708,9 +708,8 @@ int xvip_dma_init(struct xvip_composite_device *xdev, struct xvip_dma *dma,
>>>      snprintf(name, sizeof(name), "port%u", port);
>>>      dma->dma = dma_request_chan(dma->xdev->dev, name);
>>>      if (IS_ERR(dma->dma)) {
>>> -           ret = PTR_ERR(dma->dma);
>>> -           if (ret != -EPROBE_DEFER)
>>> -                   dev_err(dma->xdev->dev, "no VDMA channel found\n");
>>> +           ret = dev_err_probe(dma->xdev->dev, PTR_ERR(dma->dma),
>>> +                   "no VDMA channel found\n");
> I forgot to mention that the message should be aligned:
>
>                  ret = dev_err_probe(dma->xdev->dev, PTR_ERR(dma->dma),
>                                      "no VDMA channel found\n");
>
> I can fix this locally too.
>
>>>              goto error;
>>>      }
>>>
> --
> Regards,
>
> Laurent Pinchart

Okay

thank you.



More information about the linux-arm-kernel mailing list