spi: Fixes for v3.18

There's a couple of driver fixes here, plus one core fix for the DMA
mapping which wasn't doing the right thing for vmalloc()ed addresses
that hadn't been through kmap().  It's fairly rare to use vmalloc() with
SPI and it's a subset of those users who might fail so it's unsurprising
that this wasn't noticed sooner.
Merge remote-tracking branches 'spi/fix/dw' and 'spi/fix/sirf' into spi-linus