The DMA map functions can fail and should be tested for errors.

Signed-off-by: Thomas Fourier <fourier.tho...@gmail.com>
---
 arch/powerpc/include/asm/floppy.h | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/arch/powerpc/include/asm/floppy.h 
b/arch/powerpc/include/asm/floppy.h
index f8ce178b43b7..34abf8bea2cc 100644
--- a/arch/powerpc/include/asm/floppy.h
+++ b/arch/powerpc/include/asm/floppy.h
@@ -144,9 +144,12 @@ static int hard_dma_setup(char *addr, unsigned long size, 
int mode, int io)
                bus_addr = 0;
        }
 
-       if (!bus_addr)  /* need to map it */
+       if (!bus_addr) {        /* need to map it */
                bus_addr = dma_map_single(&isa_bridge_pcidev->dev, addr, size,
                                          dir);
+               if (dma_mapping_error(&isa_bridge_pcidev->dev, bus_addr))
+                       return -ENOMEM;
+       }
 
        /* remember this one as prev */
        prev_addr = addr;
-- 
2.43.0


Reply via email to