PNP now initializes device dma masks, which prevents oopses when generic dma calls are made using pnp device nodes.
This assumes PNP only uses ISA DMA, with 24 bit addresses; and that it's safe to init those masks for all devices (rather than finding out which devices have been assigned DMA channels, and handling only those). Signed-off-by: David Brownell <[EMAIL PROTECTED]> Index: g26/include/linux/pnp.h =================================================================== --- g26.orig/include/linux/pnp.h 2007-02-12 00:31:26.000000000 -0800 +++ g26/include/linux/pnp.h 2007-02-18 20:18:55.000000000 -0800 @@ -177,6 +177,7 @@ static inline void pnp_set_card_drvdata struct pnp_dev { struct device dev; /* Driver Model device interface */ + u64 dma_mask; unsigned char number; /* used as an index, must be unique */ int status; Index: g26/drivers/pnp/core.c =================================================================== --- g26.orig/drivers/pnp/core.c 2005-11-12 22:24:18.000000000 -0800 +++ g26/drivers/pnp/core.c 2007-02-18 20:42:17.000000000 -0800 @@ -14,6 +14,7 @@ #include <linux/string.h> #include <linux/slab.h> #include <linux/errno.h> +#include <linux/dma-mapping.h> #include "base.h" @@ -114,6 +115,8 @@ int __pnp_add_device(struct pnp_dev *dev int ret; pnp_fixup_device(dev); dev->dev.bus = &pnp_bus_type; + dev->dev.dma_mask = &dev->dma_mask; + dev->dma_mask = dev->dev.coherent_dma_mask = DMA_24BIT_MASK; dev->dev.release = &pnp_release_device; dev->status = PNP_READY; spin_lock(&pnp_lock); - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/