BROCADE BNA 10 GIGABIT ETHERNET DRIVER
  M:    Rasesh Mody <rmody@brocade.com>
- M:    Debashis Dutt <ddutt@brocade.com>
  L:    netdev@vger.kernel.org
  S:    Supported
 -F:    drivers/net/bna/
 +F:    drivers/net/ethernet/brocade/bna/
  
  BSG (block layer generic sg v4 driver)
  M:    FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
 
        /* Calculate total BW requested */
        for (cos_idx = 0; cos_idx < ets_params->num_of_cos; cos_idx++) {
                if (bnx2x_cos_state_bw == ets_params->cos[cos_idx].state) {
- 
-                       if (0 == ets_params->cos[cos_idx].params.bw_params.bw) {
-                               DP(NETIF_MSG_LINK,
-                                  "bnx2x_ets_E3B0_config BW was set to 0\n");
-                       return -EINVAL;
+                       *total_bw +=
+                               ets_params->cos[cos_idx].params.bw_params.bw;
                }
-               *total_bw +=
-                   ets_params->cos[cos_idx].params.bw_params.bw;
-           }
        }
  
-       /*Check taotl BW is valid */
+       /* Check total BW is valid */
        if ((100 != *total_bw) || (0 == *total_bw)) {
                if (0 == *total_bw) {
 -                      DP(NETIF_MSG_LINK, "bnx2x_ets_E3B0_config toatl BW"
 -                                         "shouldn't be 0\n");
 +                      DP(NETIF_MSG_LINK,
 +                         "bnx2x_ets_E3B0_config toatl BW shouldn't be 0\n");
                        return -EINVAL;
                }
 -              DP(NETIF_MSG_LINK, "bnx2x_ets_E3B0_config toatl BW should be"
 -                                 "100\n");
 +              DP(NETIF_MSG_LINK,
 +                 "bnx2x_ets_E3B0_config toatl BW should be 100\n");
                /**
                *   We can handle a case whre the BW isn't 100 this can happen
                *   if the TC are joined.
 
                }
        }
  
- #ifdef BCM_KERNEL_SUPPORTS_8021Q
 +      if (tg3_flag(tp, USE_JUMBO_BDFLAG) &&
 +          !mss && skb->len > VLAN_ETH_FRAME_LEN)
 +              base_flags |= TXD_FLAG_JMB_PKT;
 +
        if (vlan_tx_tag_present(skb)) {
                base_flags |= TXD_FLAG_VLAN;
                vlan = vlan_tx_tag_get(skb);
        }
- #endif
  
 -      if (tg3_flag(tp, USE_JUMBO_BDFLAG) &&
 -          !mss && skb->len > VLAN_ETH_FRAME_LEN)
 -              base_flags |= TXD_FLAG_JMB_PKT;
 -
        len = skb_headlen(skb);
  
        mapping = pci_map_single(tp->pdev, skb->data, len, PCI_DMA_TODEVICE);
 
  
        /* Map the frags */
        for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) {
-               unsigned long dma_addr;
                skb_frag_t *frag = &skb_shinfo(skb)->frags[i];
  
 -              dma_addr = dma_map_page(&adapter->vdev->dev, frag->page,
 -                                      frag->page_offset, frag->size,
 -                                      DMA_TO_DEVICE);
 +              dma_addr = skb_frag_dma_map(&adapter->vdev->dev, frag, 0,
 +                                          frag->size, DMA_TO_DEVICE);
  
                if (dma_mapping_error(&adapter->vdev->dev, dma_addr))
                        goto map_failed_frags;
 
--- /dev/null
-       tristate "OKI SEMICONDUCTOR ML7223 IOH GbE (Intel EG20T PCH)"
 +#
 +# OKI Semiconductor device configuration
 +#
 +
 +config PCH_GBE
-         Output Hub), ML7223.
-         ML7223 IOH is for MP(Media Phone) use.
-         ML7223 is companion chip for Intel Atom E6xx series.
-         ML7223 is completely compatible for Intel EG20T PCH.
++      tristate "OKI SEMICONDUCTOR IOH(ML7223/ML7831) GbE"
 +      depends on PCI
 +      select NET_CORE
 +      select MII
 +      ---help---
 +        This is a gigabit ethernet driver for EG20T PCH.
 +        EG20T PCH is the platform controller hub that is used in Intel's
 +        general embedded platform.  EG20T PCH has Gigabit Ethernet interface.
 +        Using this interface, it is able to access system devices connected
 +        to Gigabit Ethernet.  This driver enables Gigabit Ethernet function.
 +
 +        This driver also can be used for OKI SEMICONDUCTOR IOH(Input/
++        Output Hub), ML7223/ML7831.
++        ML7223 IOH is for MP(Media Phone) use. ML7831 IOH is for general
++        purpose use.
++        ML7223/ML7831 is companion chip for Intel Atom E6xx series.
++        ML7223/ML7831 is completely compatible for Intel EG20T PCH.
 
        cmd = txq->cmd[cmd_index];
        meta = &txq->meta[cmd_index];
  
 -      iwlagn_unmap_tfd(priv, meta, &txq->tfds[index], DMA_BIDIRECTIONAL);
+       txq->time_stamp = jiffies;
+ 
 +      iwlagn_unmap_tfd(trans, meta, &txq->tfds[index],
 +                       DMA_BIDIRECTIONAL);
  
        /* Input error checking is done when commands are added to queue. */
        if (meta->flags & CMD_WANT_SKB) {
 
                        entry = rt2x00queue_get_entry(queue, Q_INDEX_DONE);
                        if (rt2800usb_txdone_entry_check(entry, reg))
                                break;
+                       entry = NULL;
                }
  
-               if (!entry || rt2x00queue_empty(queue))
-                       break;
- 
-               rt2800_txdone_entry(entry, reg,
-                                   rt2800usb_get_txwi(entry));
+               if (entry)
 -                      rt2800_txdone_entry(entry, reg);
++                      rt2800_txdone_entry(entry, reg,
++                                          rt2800usb_get_txwi(entry));
        }
  }
  
 
                if (skb_shinfo(skb)->tx_flags & SKBTX_DEV_ZEROCOPY) {
                        if (skb_copy_ubufs(skb, gfp_mask))
                                goto nofrags;
-                       skb_shinfo(skb)->tx_flags &= ~SKBTX_DEV_ZEROCOPY;
                }
                for (i = 0; i < skb_shinfo(skb)->nr_frags; i++)
 -                      get_page(skb_shinfo(skb)->frags[i].page);
 +                      skb_frag_ref(skb, i);
  
                if (skb_has_frag_list(skb))
                        skb_clone_fraglist(skb);