]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - drivers/net/ixgbe/ixgbe_fcoe.c
ixgbe: invalidate FCoE DDP context when no error status is available
[net-next-2.6.git] / drivers / net / ixgbe / ixgbe_fcoe.c
index 05efa6a8ce8e080c6cea2d85e31bcfd09728e8dd..26dd27479e2c6cc82cbca0317cae8b405653eb8d 100644 (file)
@@ -68,7 +68,7 @@ static inline bool ixgbe_rx_is_fcoe(union ixgbe_adv_rx_desc *rx_desc)
 static inline void ixgbe_fcoe_clear_ddp(struct ixgbe_fcoe_ddp *ddp)
 {
        ddp->len = 0;
-       ddp->err = 0;
+       ddp->err = 1;
        ddp->udl = NULL;
        ddp->udp = 0UL;
        ddp->sgl = NULL;
@@ -168,6 +168,11 @@ int ixgbe_fcoe_ddp_get(struct net_device *netdev, u16 xid,
                return 0;
        }
 
+       /* no DDP if we are already down or resetting */
+       if (test_bit(__IXGBE_DOWN, &adapter->state) ||
+           test_bit(__IXGBE_RESETTING, &adapter->state))
+               return 0;
+
        fcoe = &adapter->fcoe;
        if (!fcoe->pool) {
                e_warn(drv, "xid=0x%x no ddp pool for fcoe\n", xid);