Merge tag 'io_uring-6.7-2023-11-10' of git://git.kernel.dk/linux
[linux-2.6-microblaze.git] / drivers / dma / sa11x0-dma.c
index a29c13c..01e656c 100644 (file)
@@ -78,7 +78,7 @@ struct sa11x0_dma_desc {
        bool                    cyclic;
 
        unsigned                sglen;
-       struct sa11x0_dma_sg    sg[];
+       struct sa11x0_dma_sg    sg[] __counted_by(sglen);
 };
 
 struct sa11x0_dma_phy;
@@ -558,6 +558,7 @@ static struct dma_async_tx_descriptor *sa11x0_dma_prep_slave_sg(
                dev_dbg(chan->device->dev, "vchan %p: kzalloc failed\n", &c->vc);
                return NULL;
        }
+       txd->sglen = j;
 
        j = 0;
        for_each_sg(sg, sgent, sglen, i) {
@@ -593,7 +594,6 @@ static struct dma_async_tx_descriptor *sa11x0_dma_prep_slave_sg(
 
        txd->ddar = c->ddar;
        txd->size = size;
-       txd->sglen = j;
 
        dev_dbg(chan->device->dev, "vchan %p: txd %p: size %zu nr %u\n",
                &c->vc, &txd->vd, txd->size, txd->sglen);
@@ -628,6 +628,7 @@ static struct dma_async_tx_descriptor *sa11x0_dma_prep_dma_cyclic(
                dev_dbg(chan->device->dev, "vchan %p: kzalloc failed\n", &c->vc);
                return NULL;
        }
+       txd->sglen = sglen;
 
        for (i = k = 0; i < size / period; i++) {
                size_t tlen, len = period;
@@ -653,7 +654,6 @@ static struct dma_async_tx_descriptor *sa11x0_dma_prep_dma_cyclic(
 
        txd->ddar = c->ddar;
        txd->size = size;
-       txd->sglen = sglen;
        txd->cyclic = 1;
        txd->period = sgperiod;
 
@@ -984,7 +984,7 @@ static int sa11x0_dma_probe(struct platform_device *pdev)
        return ret;
 }
 
-static int sa11x0_dma_remove(struct platform_device *pdev)
+static void sa11x0_dma_remove(struct platform_device *pdev)
 {
        struct sa11x0_dma_dev *d = platform_get_drvdata(pdev);
        unsigned pch;
@@ -997,8 +997,6 @@ static int sa11x0_dma_remove(struct platform_device *pdev)
        tasklet_kill(&d->task);
        iounmap(d->base);
        kfree(d);
-
-       return 0;
 }
 
 static __maybe_unused int sa11x0_dma_suspend(struct device *dev)
@@ -1081,7 +1079,7 @@ static struct platform_driver sa11x0_dma_driver = {
                .pm     = &sa11x0_dma_pm_ops,
        },
        .probe          = sa11x0_dma_probe,
-       .remove         = sa11x0_dma_remove,
+       .remove_new     = sa11x0_dma_remove,
 };
 
 static int __init sa11x0_dma_init(void)