HID: roccat: potential out of bounds in pyra_sysfs_write_settings()
[pandora-kernel.git] / drivers / spi / spi-mxs.c
index 5146087..06a1154 100644 (file)
@@ -182,7 +182,6 @@ static int mxs_spi_txrx_dma(struct mxs_spi *spi,
        int min, ret;
        u32 ctrl0;
        struct page *vm_page;
-       void *sg_buf;
        struct {
                u32                     pio[4];
                struct scatterlist      sg;
@@ -232,13 +231,14 @@ static int mxs_spi_txrx_dma(struct mxs_spi *spi,
                                ret = -ENOMEM;
                                goto err_vmalloc;
                        }
-                       sg_buf = page_address(vm_page) +
-                               ((size_t)buf & ~PAGE_MASK);
+
+                       sg_init_table(&dma_xfer[sg_count].sg, 1);
+                       sg_set_page(&dma_xfer[sg_count].sg, vm_page,
+                                   min, offset_in_page(buf));
                } else {
-                       sg_buf = buf;
+                       sg_init_one(&dma_xfer[sg_count].sg, buf, min);
                }
 
-               sg_init_one(&dma_xfer[sg_count].sg, sg_buf, min);
                ret = dma_map_sg(ssp->dev, &dma_xfer[sg_count].sg, 1,
                        (flags & TXRX_WRITE) ? DMA_TO_DEVICE : DMA_FROM_DEVICE);
 
@@ -511,7 +511,7 @@ static int mxs_spi_probe(struct platform_device *pdev)
        init_completion(&spi->c);
 
        ret = devm_request_irq(&pdev->dev, irq_err, mxs_ssp_irq_handler, 0,
-                              DRIVER_NAME, ssp);
+                              dev_name(&pdev->dev), ssp);
        if (ret)
                goto out_master_free;