Hi Maurizio, Sorry but it looks like you've forgotten one change in fnic_eth_send(). Maurizio Lombardi <mlombard@xxxxxxxxxx> writes: > the kernel prints some warnings when compiled with CONFIG_DMA_API_DEBUG. > This is because the fnic driver doesn't check the return value of > pci_map_single(). > > [ 11.942770] scsi host12: fnic > } [..] > > void fnic_free_rq_buf(struct vnic_rq *rq, struct vnic_rq_buf *buf) > @@ -981,6 +993,7 @@ void fnic_eth_send(struct fcoe_ctlr *fip, struct sk_buff *skb) > struct ethhdr *eth_hdr; > struct vlan_ethhdr *vlan_hdr; > unsigned long flags; > + int r; > > if (!fnic->vlan_hw_insert) { > eth_hdr = (struct ethhdr *)skb_mac_header(skb); > @@ -1003,6 +1016,13 @@ void fnic_eth_send(struct fcoe_ctlr *fip, struct sk_buff *skb) > > pa = pci_map_single(fnic->pdev, skb->data, skb->len, PCI_DMA_TODEVICE); > > + r = pci_dma_mapping_error(fnic->pdev, pa); > + if (r) { > + printk(KERN_ERR "PCI mapping failed with error %d\n", r); > + kfree_skb(skb); > + return; > + } > + > spin_lock_irqsave(&fnic->wq_lock[0], flags); > if (!vnic_wq_desc_avail(wq)) { > pci_unmap_single(fnic->pdev, pa, skb->len, PCI_DMA_TODEVICE); > @@ -1071,6 +1091,12 @@ static int fnic_send_frame(struct fnic *fnic, struct fc_frame *fp) > > pa = pci_map_single(fnic->pdev, eth_hdr, tot_len, PCI_DMA_TODEVICE); [..] Otherwise: Reviewed-by: Johannes Thumshirn <jthumshirn@xxxxxxx> -- Johannes Thumshirn Storage jthumshirn@xxxxxxx +49 911 74053 689 SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton HRB 21284 (AG Nürnberg) Key fingerprint = EC38 9CAB C2C4 F25D 8600 D0D0 0393 969D 2D76 0850 -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html