mirror of
https://github.com/torvalds/linux.git
synced 2024-11-24 13:11:40 +00:00
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
This commit is contained in:
commit
cf99111661
@ -336,7 +336,7 @@ int ixgbe_fcoe_ddp(struct ixgbe_adapter *adapter,
|
|||||||
/* return 0 to bypass going to ULD for DDPed data */
|
/* return 0 to bypass going to ULD for DDPed data */
|
||||||
if (fcstat == IXGBE_RXDADV_STAT_FCSTAT_DDP)
|
if (fcstat == IXGBE_RXDADV_STAT_FCSTAT_DDP)
|
||||||
rc = 0;
|
rc = 0;
|
||||||
else
|
else if (ddp->len)
|
||||||
rc = ddp->len;
|
rc = ddp->len;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -494,12 +494,12 @@ static void ixgbe_receive_skb(struct ixgbe_q_vector *q_vector,
|
|||||||
|
|
||||||
skb_record_rx_queue(skb, ring->queue_index);
|
skb_record_rx_queue(skb, ring->queue_index);
|
||||||
if (!(adapter->flags & IXGBE_FLAG_IN_NETPOLL)) {
|
if (!(adapter->flags & IXGBE_FLAG_IN_NETPOLL)) {
|
||||||
if (adapter->vlgrp && is_vlan && (tag != 0))
|
if (adapter->vlgrp && is_vlan && (tag & VLAN_VID_MASK))
|
||||||
vlan_gro_receive(napi, adapter->vlgrp, tag, skb);
|
vlan_gro_receive(napi, adapter->vlgrp, tag, skb);
|
||||||
else
|
else
|
||||||
napi_gro_receive(napi, skb);
|
napi_gro_receive(napi, skb);
|
||||||
} else {
|
} else {
|
||||||
if (adapter->vlgrp && is_vlan && (tag != 0))
|
if (adapter->vlgrp && is_vlan && (tag & VLAN_VID_MASK))
|
||||||
vlan_hwaccel_rx(skb, adapter->vlgrp, tag);
|
vlan_hwaccel_rx(skb, adapter->vlgrp, tag);
|
||||||
else
|
else
|
||||||
netif_rx(skb);
|
netif_rx(skb);
|
||||||
|
@ -851,13 +851,15 @@ struct rt2x00_dev {
|
|||||||
static inline void rt2x00_rf_read(struct rt2x00_dev *rt2x00dev,
|
static inline void rt2x00_rf_read(struct rt2x00_dev *rt2x00dev,
|
||||||
const unsigned int word, u32 *data)
|
const unsigned int word, u32 *data)
|
||||||
{
|
{
|
||||||
*data = rt2x00dev->rf[word];
|
BUG_ON(word < 1 || word > rt2x00dev->ops->rf_size / sizeof(u32));
|
||||||
|
*data = rt2x00dev->rf[word - 1];
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void rt2x00_rf_write(struct rt2x00_dev *rt2x00dev,
|
static inline void rt2x00_rf_write(struct rt2x00_dev *rt2x00dev,
|
||||||
const unsigned int word, u32 data)
|
const unsigned int word, u32 data)
|
||||||
{
|
{
|
||||||
rt2x00dev->rf[word] = data;
|
BUG_ON(word < 1 || word > rt2x00dev->ops->rf_size / sizeof(u32));
|
||||||
|
rt2x00dev->rf[word - 1] = data;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -381,6 +381,14 @@ static void ieee80211_agg_splice_packets(struct ieee80211_local *local,
|
|||||||
&local->hw, queue,
|
&local->hw, queue,
|
||||||
IEEE80211_QUEUE_STOP_REASON_AGGREGATION);
|
IEEE80211_QUEUE_STOP_REASON_AGGREGATION);
|
||||||
|
|
||||||
|
if (!(sta->ampdu_mlme.tid_state_tx[tid] & HT_ADDBA_REQUESTED_MSK))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (WARN(!sta->ampdu_mlme.tid_tx[tid],
|
||||||
|
"TID %d gone but expected when splicing aggregates from"
|
||||||
|
"the pending queue\n", tid))
|
||||||
|
return;
|
||||||
|
|
||||||
if (!skb_queue_empty(&sta->ampdu_mlme.tid_tx[tid]->pending)) {
|
if (!skb_queue_empty(&sta->ampdu_mlme.tid_tx[tid]->pending)) {
|
||||||
spin_lock_irqsave(&local->queue_stop_reason_lock, flags);
|
spin_lock_irqsave(&local->queue_stop_reason_lock, flags);
|
||||||
/* copy over remaining packets */
|
/* copy over remaining packets */
|
||||||
|
Loading…
Reference in New Issue
Block a user