nfsd4: fix null dereference creating nfsv4 callback client
[safe/jmp/linux-2.6] / drivers / spi / spi_bfin5xx.c
index 011c5bd..73e24ef 100644 (file)
@@ -169,7 +169,7 @@ static int bfin_spi_flush(struct driver_data *drv_data)
        unsigned long limit = loops_per_jiffy << 1;
 
        /* wait for stop and clear stat */
-       while (!(read_STAT(drv_data) & BIT_STAT_SPIF) && limit--)
+       while (!(read_STAT(drv_data) & BIT_STAT_SPIF) && --limit)
                cpu_relax();
 
        write_STAT(drv_data, BIT_STAT_CLR);
@@ -1010,16 +1010,6 @@ static int bfin_spi_setup(struct spi_device *spi)
        struct driver_data *drv_data = spi_master_get_devdata(spi->master);
        int ret;
 
-       /* Abort device setup if requested features are not supported */
-       if (spi->mode & ~(SPI_CPOL | SPI_CPHA | SPI_LSB_FIRST)) {
-               dev_err(&spi->dev, "requested mode not fully supported\n");
-               return -EINVAL;
-       }
-
-       /* Zero (the default) here means 8 bits */
-       if (!spi->bits_per_word)
-               spi->bits_per_word = 8;
-
        if (spi->bits_per_word != 8 && spi->bits_per_word != 16)
                return -EINVAL;
 
@@ -1287,6 +1277,9 @@ static int __init bfin_spi_probe(struct platform_device *pdev)
        drv_data->pdev = pdev;
        drv_data->pin_req = platform_info->pin_req;
 
+       /* the spi->mode bits supported by this driver: */
+       master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_LSB_FIRST;
+
        master->bus_num = pdev->id;
        master->num_chipselect = platform_info->num_chipselect;
        master->cleanup = bfin_spi_cleanup;