On Tuesday 10 June 2008 16:29:17 Vegard Nossum wrote: > On Tue, Jun 10, 2008 at 4:23 PM, Michael Buesch <mb@xxxxxxxxx> wrote: > > On Tuesday 10 June 2008 16:09:37 Miles Lane wrote: > >> BUG: unable to handle kernel NULL pointer dereference at 00000000 > >> IP: [<f8e783d5>] :b43:b43_dma_mapping_error+0x16/0x155 > > > > > > It seems to crash at > > 60 extern const struct dma_mapping_ops *dma_ops; > > 61 > > 62 static inline int dma_mapping_error(dma_addr_t dma_addr) > > 63 { > > 64 if (dma_ops->mapping_error) > > 65 return dma_ops->mapping_error(dma_addr); > > 66 > > 67 return (dma_addr == bad_dma_address); > > 68 } > > No, this is wrong. > > /* Check if a DMA mapping address is invalid. */ > static bool b43_dma_mapping_error(struct b43_dmaring *ring, > dma_addr_t addr, > size_t buffersize, bool dma_to_device) > { > if (unlikely(dma_mapping_error(ring->dev->dev->dma_dev, addr))) > > It crashes on this line ---^ Which calls dma_mapping_error(), correct? But you are right. I see the bug now. ring->dev is assigned after the call. I wonder why it works reliably on all of my machines. -- Greetings Michael. -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html