Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 05a62548 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx:
  drivers/dma: Correct use after free
  drivers/dma: drop unnecesary memset
  ioat2,3: put channel hardware in known state at init
  async_tx: expand async raid6 test to cover ioatdma corner case
  ioat3: fix p-disabled q-continuation
  sh: fix DMA driver's descriptor chaining and cookie assignment
  dma: at_hdmac: correct incompatible type for argument 1 of 'spin_lock_bh'
parents 1f11abc9 f80ca163
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -214,6 +214,13 @@ static int raid6_test(void)
		err += test(4, &tests);
	if (NDISKS > 5)
		err += test(5, &tests);
	/* the 11 and 12 disk cases are special for ioatdma (p-disabled
	 * q-continuation without extended descriptor)
	 */
	if (NDISKS > 12) {
		err += test(11, &tests);
		err += test(12, &tests);
	}
	err += test(NDISKS, &tests);

	pr("\n");
+2 −2
Original line number Diff line number Diff line
@@ -815,7 +815,7 @@ atc_is_tx_complete(struct dma_chan *chan,
	dev_vdbg(chan2dev(chan), "is_tx_complete: %d (d%d, u%d)\n",
			cookie, done ? *done : 0, used ? *used : 0);

	spin_lock_bh(atchan->lock);
	spin_lock_bh(&atchan->lock);

	last_complete = atchan->completed_cookie;
	last_used = chan->cookie;
@@ -830,7 +830,7 @@ atc_is_tx_complete(struct dma_chan *chan,
		ret = dma_async_is_complete(cookie, last_complete, last_used);
	}

	spin_unlock_bh(atchan->lock);
	spin_unlock_bh(&atchan->lock);

	if (done)
		*done = last_complete;
+1 −1
Original line number Diff line number Diff line
@@ -1294,8 +1294,8 @@ static int __exit coh901318_remove(struct platform_device *pdev)
	dma_async_device_unregister(&base->dma_slave);
	coh901318_pool_destroy(&base->pool);
	free_irq(platform_get_irq(pdev, 0), base);
	kfree(base);
	iounmap(base->virtbase);
	kfree(base);
	release_mem_region(pdev->resource->start,
			   resource_size(pdev->resource));
	return 0;
+0 −2
Original line number Diff line number Diff line
@@ -1270,8 +1270,6 @@ static int __init dw_probe(struct platform_device *pdev)
		goto err_kfree;
	}

	memset(dw, 0, sizeof *dw);

	dw->regs = ioremap(io->start, DW_REGLEN);
	if (!dw->regs) {
		err = -ENOMEM;
+1 −1
Original line number Diff line number Diff line
@@ -1032,7 +1032,7 @@ int __devinit ioat_probe(struct ioatdma_device *device)
	dma->dev = &pdev->dev;

	if (!dma->chancnt) {
		dev_err(dev, "zero channels detected\n");
		dev_err(dev, "channel enumeration error\n");
		goto err_setup_interrupts;
	}

Loading