]> git.karo-electronics.de Git - linux-beck.git/blobdiff - drivers/spi/spi.c
Merge tag 'devicetree-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-beck.git] / drivers / spi / spi.c
index cf4ed29c7ee6d83e6de90085f3e617df06a747fa..66a70e9bc7438d0090b90a815ccea59812603110 100644 (file)
@@ -615,13 +615,13 @@ static int spi_map_buf(struct spi_master *master, struct device *dev,
                                sg_free_table(sgt);
                                return -ENOMEM;
                        }
-                       sg_buf = page_address(vm_page) +
-                               ((size_t)buf & ~PAGE_MASK);
+                       sg_set_page(&sgt->sgl[i], vm_page,
+                                   min, offset_in_page(buf));
                } else {
                        sg_buf = buf;
+                       sg_set_buf(&sgt->sgl[i], sg_buf, min);
                }
 
-               sg_set_buf(&sgt->sgl[i], sg_buf, min);
 
                buf += min;
                len -= min;
@@ -1001,7 +1001,7 @@ static int spi_init_queue(struct spi_master *master)
                                           dev_name(&master->dev));
        if (IS_ERR(master->kworker_task)) {
                dev_err(&master->dev, "failed to create message pump task\n");
-               return -ENOMEM;
+               return PTR_ERR(master->kworker_task);
        }
        init_kthread_work(&master->pump_messages, spi_pump_messages);