On Tue, Nov 18, 2008 at 2:52 AM, Johannes Berg <johannes@xxxxxxxxxxxxxxxx> wrote: > @@ -265,11 +265,14 @@ void iwl_rx_allocate(struct iwl_priv *pr > list_del(element); > > /* Get physical address of RB/SKB */ > - rxb->dma_addr = pci_map_single(priv->pci_dev, rxb->skb->data, > - priv->hw_params.rx_buf_size, PCI_DMA_FROMDEVICE); > + rxb->real_dma_addr = pci_map_single(priv->pci_dev, rxb->skb->data, > + priv->hw_params.rx_buf_size + 256, PCI_DMA_FROMDEVICE); > > - /* RBD must be 256 bytes aligned and no more than 36 bits */ > - BUG_ON(rxb->dma_addr & (~DMA_BIT_MASK(36) & 0xff)); > + /* dma address must be no more than 36 bits */ > + BUG_ON(rxb->real_dma_addr & ~DMA_BIT_MASK(36)); > + /* and also 256 byte aligned! */ > + rxb->aligned_dma_addr = ALIGN(rxb->real_dma_addr, 256); aligned_dma_addr can obviously be > real_dma_addr at this point, what gaurantees we can use it on our own whim? Luis -- 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