Merge remote-tracking branches 'spi/fix/idr' and 'spi/fix/sh-msiof' into spi-linus
authorMark Brown <broonie@kernel.org>
Fri, 10 Nov 2017 21:33:40 +0000 (21:33 +0000)
committerMark Brown <broonie@kernel.org>
Fri, 10 Nov 2017 21:33:40 +0000 (21:33 +0000)
drivers/spi/spi-sh-msiof.c
drivers/spi/spi.c

index 0eb1e95834854fb658806b1aaefc19fb7bec69b3..837bb95eea623ff7dbdaf68d22c7ed9468b1ce7f 100644 (file)
@@ -900,7 +900,7 @@ static int sh_msiof_transfer_one(struct spi_master *master,
                                break;
                        copy32 = copy_bswap32;
                } else if (bits <= 16) {
-                       if (l & 1)
+                       if (l & 3)
                                break;
                        copy32 = copy_wswap32;
                } else {
index e8b5a5e21b2e692e8af31e93ee3102b0c26872d9..3ff0ee88c467a58faa9c6a1544fd620e6852b250 100644 (file)
@@ -2245,11 +2245,12 @@ static int __unregister(struct device *dev, void *null)
 void spi_unregister_controller(struct spi_controller *ctlr)
 {
        struct spi_controller *found;
+       int id = ctlr->bus_num;
        int dummy;
 
        /* First make sure that this controller was ever added */
        mutex_lock(&board_lock);
-       found = idr_find(&spi_master_idr, ctlr->bus_num);
+       found = idr_find(&spi_master_idr, id);
        mutex_unlock(&board_lock);
        if (found != ctlr) {
                dev_dbg(&ctlr->dev,
@@ -2269,7 +2270,7 @@ void spi_unregister_controller(struct spi_controller *ctlr)
        device_unregister(&ctlr->dev);
        /* free bus id */
        mutex_lock(&board_lock);
-       idr_remove(&spi_master_idr, ctlr->bus_num);
+       idr_remove(&spi_master_idr, id);
        mutex_unlock(&board_lock);
 }
 EXPORT_SYMBOL_GPL(spi_unregister_controller);