Hi Naga,

A user of Xilinx BSP reported a problem with lockdep that I can see is
not yet fixed in this code:

Naga Sureshkumar Relli <naga.sureshkumar.re...@xilinx.com> wrote on
Fri, 17 Aug 2018 18:49:24 +0530:

> +static int anfc_probe(struct platform_device *pdev)
> +{
> +     struct anfc_nand_controller *nfc;
> +     struct anfc_nand_chip *anand_chip;
> +     struct device_node *np = pdev->dev.of_node, *child;
> +     struct resource *res;
> +     int err;
> +
> +     nfc = devm_kzalloc(&pdev->dev, sizeof(*nfc), GFP_KERNEL);
> +     if (!nfc)
> +             return -ENOMEM;
> +
> +     init_waitqueue_head(&nfc->controller.wq);

The controller structure has a lock which is not initialized here. You
should not initialize the waitqueue manually neither and instead use
nand_controller_init(&nfc->controller).

> +     INIT_LIST_HEAD(&nfc->chips);
> +     init_completion(&nfc->event);
> +     nfc->dev = &pdev->dev;
> +     platform_set_drvdata(pdev, nfc);
> +     nfc->csnum = -1;
> +     nfc->controller.ops = &anfc_nand_controller_ops;

More to come.

Thanks,
Miquèl

Reply via email to