Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
5ecccb74
Commit
5ecccb74
authored
Feb 14, 2010
by
David S. Miller
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts: net/mac80211/rate.c
parents
f6f22303
3d0beb92
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
36 additions
and
31 deletions
+36
-31
drivers/net/sfc/efx.c
drivers/net/sfc/efx.c
+1
-0
drivers/net/sfc/qt202x_phy.c
drivers/net/sfc/qt202x_phy.c
+1
-1
drivers/net/via-velocity.c
drivers/net/via-velocity.c
+20
-21
drivers/net/wireless/ath/ath9k/xmit.c
drivers/net/wireless/ath/ath9k/xmit.c
+2
-2
drivers/net/wireless/iwlwifi/iwl-rx.c
drivers/net/wireless/iwlwifi/iwl-rx.c
+4
-1
drivers/net/wireless/iwmc3200wifi/rx.c
drivers/net/wireless/iwmc3200wifi/rx.c
+1
-1
drivers/net/wireless/rtl818x/rtl8187_dev.c
drivers/net/wireless/rtl818x/rtl8187_dev.c
+1
-0
net/ipv4/igmp.c
net/ipv4/igmp.c
+1
-1
net/ipv4/tcp_input.c
net/ipv4/tcp_input.c
+2
-4
net/mac80211/rate.c
net/mac80211/rate.c
+3
-0
No files found.
drivers/net/sfc/efx.c
View file @
5ecccb74
...
@@ -2284,6 +2284,7 @@ static int __devinit efx_pci_probe(struct pci_dev *pci_dev,
...
@@ -2284,6 +2284,7 @@ static int __devinit efx_pci_probe(struct pci_dev *pci_dev,
fail2:
fail2:
efx_fini_struct
(
efx
);
efx_fini_struct
(
efx
);
fail1:
fail1:
WARN_ON
(
rc
>
0
);
EFX_LOG
(
efx
,
"initialisation failed. rc=%d
\n
"
,
rc
);
EFX_LOG
(
efx
,
"initialisation failed. rc=%d
\n
"
,
rc
);
free_netdev
(
net_dev
);
free_netdev
(
net_dev
);
return
rc
;
return
rc
;
...
...
drivers/net/sfc/qt202x_phy.c
View file @
5ecccb74
...
@@ -320,7 +320,7 @@ static int qt202x_reset_phy(struct efx_nic *efx)
...
@@ -320,7 +320,7 @@ static int qt202x_reset_phy(struct efx_nic *efx)
falcon_board
(
efx
)
->
type
->
init_phy
(
efx
);
falcon_board
(
efx
)
->
type
->
init_phy
(
efx
);
return
rc
;
return
0
;
fail:
fail:
EFX_ERR
(
efx
,
"PHY reset timed out
\n
"
);
EFX_ERR
(
efx
,
"PHY reset timed out
\n
"
);
...
...
drivers/net/via-velocity.c
View file @
5ecccb74
...
@@ -1879,13 +1879,12 @@ static void velocity_error(struct velocity_info *vptr, int status)
...
@@ -1879,13 +1879,12 @@ static void velocity_error(struct velocity_info *vptr, int status)
/**
/**
* tx_srv - transmit interrupt service
* tx_srv - transmit interrupt service
* @vptr; Velocity
* @vptr; Velocity
* @status:
*
*
* Scan the queues looking for transmitted packets that
* Scan the queues looking for transmitted packets that
* we can complete and clean up. Update any statistics as
* we can complete and clean up. Update any statistics as
* necessary/
* necessary/
*/
*/
static
int
velocity_tx_srv
(
struct
velocity_info
*
vptr
,
u32
status
)
static
int
velocity_tx_srv
(
struct
velocity_info
*
vptr
)
{
{
struct
tx_desc
*
td
;
struct
tx_desc
*
td
;
int
qnum
;
int
qnum
;
...
@@ -2092,14 +2091,12 @@ static int velocity_receive_frame(struct velocity_info *vptr, int idx)
...
@@ -2092,14 +2091,12 @@ static int velocity_receive_frame(struct velocity_info *vptr, int idx)
/**
/**
* velocity_rx_srv - service RX interrupt
* velocity_rx_srv - service RX interrupt
* @vptr: velocity
* @vptr: velocity
* @status: adapter status (unused)
*
*
* Walk the receive ring of the velocity adapter and remove
* Walk the receive ring of the velocity adapter and remove
* any received packets from the receive queue. Hand the ring
* any received packets from the receive queue. Hand the ring
* slots back to the adapter for reuse.
* slots back to the adapter for reuse.
*/
*/
static
int
velocity_rx_srv
(
struct
velocity_info
*
vptr
,
int
status
,
static
int
velocity_rx_srv
(
struct
velocity_info
*
vptr
,
int
budget_left
)
int
budget_left
)
{
{
struct
net_device_stats
*
stats
=
&
vptr
->
dev
->
stats
;
struct
net_device_stats
*
stats
=
&
vptr
->
dev
->
stats
;
int
rd_curr
=
vptr
->
rx
.
curr
;
int
rd_curr
=
vptr
->
rx
.
curr
;
...
@@ -2153,32 +2150,24 @@ static int velocity_poll(struct napi_struct *napi, int budget)
...
@@ -2153,32 +2150,24 @@ static int velocity_poll(struct napi_struct *napi, int budget)
struct
velocity_info
*
vptr
=
container_of
(
napi
,
struct
velocity_info
*
vptr
=
container_of
(
napi
,
struct
velocity_info
,
napi
);
struct
velocity_info
,
napi
);
unsigned
int
rx_done
;
unsigned
int
rx_done
;
u32
isr_status
;
unsigned
long
flags
;
spin_lock
(
&
vptr
->
lock
);
isr_status
=
mac_read_isr
(
vptr
->
mac_regs
);
/* Ack the interrupt */
mac_write_isr
(
vptr
->
mac_regs
,
isr_status
);
if
(
isr_status
&
(
~
(
ISR_PRXI
|
ISR_PPRXI
|
ISR_PTXI
|
ISR_PPTXI
)))
velocity_error
(
vptr
,
isr_status
);
spin_lock_irqsave
(
&
vptr
->
lock
,
flags
);
/*
/*
* Do rx and tx twice for performance (taken from the VIA
* Do rx and tx twice for performance (taken from the VIA
* out-of-tree driver).
* out-of-tree driver).
*/
*/
rx_done
=
velocity_rx_srv
(
vptr
,
isr_status
,
budget
/
2
);
rx_done
=
velocity_rx_srv
(
vptr
,
budget
/
2
);
velocity_tx_srv
(
vptr
,
isr_status
);
velocity_tx_srv
(
vptr
);
rx_done
+=
velocity_rx_srv
(
vptr
,
isr_status
,
budget
-
rx_done
);
rx_done
+=
velocity_rx_srv
(
vptr
,
budget
-
rx_done
);
velocity_tx_srv
(
vptr
,
isr_status
);
velocity_tx_srv
(
vptr
);
spin_unlock
(
&
vptr
->
lock
);
/* If budget not fully consumed, exit the polling mode */
/* If budget not fully consumed, exit the polling mode */
if
(
rx_done
<
budget
)
{
if
(
rx_done
<
budget
)
{
napi_complete
(
napi
);
napi_complete
(
napi
);
mac_enable_int
(
vptr
->
mac_regs
);
mac_enable_int
(
vptr
->
mac_regs
);
}
}
spin_unlock_irqrestore
(
&
vptr
->
lock
,
flags
);
return
rx_done
;
return
rx_done
;
}
}
...
@@ -2208,10 +2197,17 @@ static irqreturn_t velocity_intr(int irq, void *dev_instance)
...
@@ -2208,10 +2197,17 @@ static irqreturn_t velocity_intr(int irq, void *dev_instance)
return
IRQ_NONE
;
return
IRQ_NONE
;
}
}
/* Ack the interrupt */
mac_write_isr
(
vptr
->
mac_regs
,
isr_status
);
if
(
likely
(
napi_schedule_prep
(
&
vptr
->
napi
)))
{
if
(
likely
(
napi_schedule_prep
(
&
vptr
->
napi
)))
{
mac_disable_int
(
vptr
->
mac_regs
);
mac_disable_int
(
vptr
->
mac_regs
);
__napi_schedule
(
&
vptr
->
napi
);
__napi_schedule
(
&
vptr
->
napi
);
}
}
if
(
isr_status
&
(
~
(
ISR_PRXI
|
ISR_PPRXI
|
ISR_PTXI
|
ISR_PPTXI
)))
velocity_error
(
vptr
,
isr_status
);
spin_unlock
(
&
vptr
->
lock
);
spin_unlock
(
&
vptr
->
lock
);
return
IRQ_HANDLED
;
return
IRQ_HANDLED
;
...
@@ -3100,7 +3096,7 @@ static int velocity_resume(struct pci_dev *pdev)
...
@@ -3100,7 +3096,7 @@ static int velocity_resume(struct pci_dev *pdev)
velocity_init_registers
(
vptr
,
VELOCITY_INIT_WOL
);
velocity_init_registers
(
vptr
,
VELOCITY_INIT_WOL
);
mac_disable_int
(
vptr
->
mac_regs
);
mac_disable_int
(
vptr
->
mac_regs
);
velocity_tx_srv
(
vptr
,
0
);
velocity_tx_srv
(
vptr
);
for
(
i
=
0
;
i
<
vptr
->
tx
.
numq
;
i
++
)
{
for
(
i
=
0
;
i
<
vptr
->
tx
.
numq
;
i
++
)
{
if
(
vptr
->
tx
.
used
[
i
])
if
(
vptr
->
tx
.
used
[
i
])
...
@@ -3344,6 +3340,7 @@ static int velocity_set_coalesce(struct net_device *dev,
...
@@ -3344,6 +3340,7 @@ static int velocity_set_coalesce(struct net_device *dev,
{
{
struct
velocity_info
*
vptr
=
netdev_priv
(
dev
);
struct
velocity_info
*
vptr
=
netdev_priv
(
dev
);
int
max_us
=
0x3f
*
64
;
int
max_us
=
0x3f
*
64
;
unsigned
long
flags
;
/* 6 bits of */
/* 6 bits of */
if
(
ecmd
->
tx_coalesce_usecs
>
max_us
)
if
(
ecmd
->
tx_coalesce_usecs
>
max_us
)
...
@@ -3365,6 +3362,7 @@ static int velocity_set_coalesce(struct net_device *dev,
...
@@ -3365,6 +3362,7 @@ static int velocity_set_coalesce(struct net_device *dev,
ecmd
->
tx_coalesce_usecs
);
ecmd
->
tx_coalesce_usecs
);
/* Setup the interrupt suppression and queue timers */
/* Setup the interrupt suppression and queue timers */
spin_lock_irqsave
(
&
vptr
->
lock
,
flags
);
mac_disable_int
(
vptr
->
mac_regs
);
mac_disable_int
(
vptr
->
mac_regs
);
setup_adaptive_interrupts
(
vptr
);
setup_adaptive_interrupts
(
vptr
);
setup_queue_timers
(
vptr
);
setup_queue_timers
(
vptr
);
...
@@ -3372,6 +3370,7 @@ static int velocity_set_coalesce(struct net_device *dev,
...
@@ -3372,6 +3370,7 @@ static int velocity_set_coalesce(struct net_device *dev,
mac_write_int_mask
(
vptr
->
int_mask
,
vptr
->
mac_regs
);
mac_write_int_mask
(
vptr
->
int_mask
,
vptr
->
mac_regs
);
mac_clear_isr
(
vptr
->
mac_regs
);
mac_clear_isr
(
vptr
->
mac_regs
);
mac_enable_int
(
vptr
->
mac_regs
);
mac_enable_int
(
vptr
->
mac_regs
);
spin_unlock_irqrestore
(
&
vptr
->
lock
,
flags
);
return
0
;
return
0
;
}
}
...
...
drivers/net/wireless/ath/ath9k/xmit.c
View file @
5ecccb74
...
@@ -1610,7 +1610,7 @@ static int ath_tx_setup_buffer(struct ieee80211_hw *hw, struct ath_buf *bf,
...
@@ -1610,7 +1610,7 @@ static int ath_tx_setup_buffer(struct ieee80211_hw *hw, struct ath_buf *bf,
bf
->
bf_frmlen
-=
padsize
;
bf
->
bf_frmlen
-=
padsize
;
}
}
if
(
conf_is_ht
(
&
hw
->
conf
)
&&
!
is_pae
(
skb
)
)
if
(
conf_is_ht
(
&
hw
->
conf
))
bf
->
bf_state
.
bf_type
|=
BUF_HT
;
bf
->
bf_state
.
bf_type
|=
BUF_HT
;
bf
->
bf_flags
=
setup_tx_flags
(
sc
,
skb
,
txctl
->
txq
);
bf
->
bf_flags
=
setup_tx_flags
(
sc
,
skb
,
txctl
->
txq
);
...
@@ -1696,7 +1696,7 @@ static void ath_tx_start_dma(struct ath_softc *sc, struct ath_buf *bf,
...
@@ -1696,7 +1696,7 @@ static void ath_tx_start_dma(struct ath_softc *sc, struct ath_buf *bf,
goto
tx_done
;
goto
tx_done
;
}
}
if
(
tx_info
->
flags
&
IEEE80211_TX_CTL_AMPDU
)
{
if
(
(
tx_info
->
flags
&
IEEE80211_TX_CTL_AMPDU
)
&&
!
is_pae
(
skb
)
)
{
/*
/*
* Try aggregation if it's a unicast data frame
* Try aggregation if it's a unicast data frame
* and the destination is HT capable.
* and the destination is HT capable.
...
...
drivers/net/wireless/iwlwifi/iwl-rx.c
View file @
5ecccb74
...
@@ -1012,7 +1012,10 @@ static void iwl_pass_packet_to_mac80211(struct iwl_priv *priv,
...
@@ -1012,7 +1012,10 @@ static void iwl_pass_packet_to_mac80211(struct iwl_priv *priv,
if
(
ieee80211_is_mgmt
(
fc
)
||
if
(
ieee80211_is_mgmt
(
fc
)
||
ieee80211_has_protected
(
fc
)
||
ieee80211_has_protected
(
fc
)
||
ieee80211_has_morefrags
(
fc
)
||
ieee80211_has_morefrags
(
fc
)
||
le16_to_cpu
(
hdr
->
seq_ctrl
)
&
IEEE80211_SCTL_FRAG
)
le16_to_cpu
(
hdr
->
seq_ctrl
)
&
IEEE80211_SCTL_FRAG
||
(
ieee80211_is_data_qos
(
fc
)
&&
*
ieee80211_get_qos_ctl
(
hdr
)
&
IEEE80211_QOS_CONTROL_A_MSDU_PRESENT
))
ret
=
skb_linearize
(
skb
);
ret
=
skb_linearize
(
skb
);
else
else
ret
=
__pskb_pull_tail
(
skb
,
min_t
(
u16
,
IWL_LINK_HDR_MAX
,
len
))
?
ret
=
__pskb_pull_tail
(
skb
,
min_t
(
u16
,
IWL_LINK_HDR_MAX
,
len
))
?
...
...
drivers/net/wireless/iwmc3200wifi/rx.c
View file @
5ecccb74
...
@@ -794,7 +794,7 @@ static int iwm_mlme_update_bss_table(struct iwm_priv *iwm, u8 *buf,
...
@@ -794,7 +794,7 @@ static int iwm_mlme_update_bss_table(struct iwm_priv *iwm, u8 *buf,
}
}
bss
->
bss
=
kzalloc
(
bss_len
,
GFP_KERNEL
);
bss
->
bss
=
kzalloc
(
bss_len
,
GFP_KERNEL
);
if
(
!
bss
)
{
if
(
!
bss
->
bss
)
{
kfree
(
bss
);
kfree
(
bss
);
IWM_ERR
(
iwm
,
"Couldn't allocate bss
\n
"
);
IWM_ERR
(
iwm
,
"Couldn't allocate bss
\n
"
);
return
-
ENOMEM
;
return
-
ENOMEM
;
...
...
drivers/net/wireless/rtl818x/rtl8187_dev.c
View file @
5ecccb74
...
@@ -65,6 +65,7 @@ static struct usb_device_id rtl8187_table[] __devinitdata = {
...
@@ -65,6 +65,7 @@ static struct usb_device_id rtl8187_table[] __devinitdata = {
/* Sitecom */
/* Sitecom */
{
USB_DEVICE
(
0x0df6
,
0x000d
),
.
driver_info
=
DEVICE_RTL8187
},
{
USB_DEVICE
(
0x0df6
,
0x000d
),
.
driver_info
=
DEVICE_RTL8187
},
{
USB_DEVICE
(
0x0df6
,
0x0028
),
.
driver_info
=
DEVICE_RTL8187B
},
{
USB_DEVICE
(
0x0df6
,
0x0028
),
.
driver_info
=
DEVICE_RTL8187B
},
{
USB_DEVICE
(
0x0df6
,
0x0029
),
.
driver_info
=
DEVICE_RTL8187B
},
/* Sphairon Access Systems GmbH */
/* Sphairon Access Systems GmbH */
{
USB_DEVICE
(
0x114B
,
0x0150
),
.
driver_info
=
DEVICE_RTL8187
},
{
USB_DEVICE
(
0x114B
,
0x0150
),
.
driver_info
=
DEVICE_RTL8187
},
/* Dick Smith Electronics */
/* Dick Smith Electronics */
...
...
net/ipv4/igmp.c
View file @
5ecccb74
...
@@ -946,7 +946,6 @@ int igmp_rcv(struct sk_buff *skb)
...
@@ -946,7 +946,6 @@ int igmp_rcv(struct sk_buff *skb)
break
;
break
;
case
IGMP_HOST_MEMBERSHIP_REPORT
:
case
IGMP_HOST_MEMBERSHIP_REPORT
:
case
IGMPV2_HOST_MEMBERSHIP_REPORT
:
case
IGMPV2_HOST_MEMBERSHIP_REPORT
:
case
IGMPV3_HOST_MEMBERSHIP_REPORT
:
/* Is it our report looped back? */
/* Is it our report looped back? */
if
(
skb_rtable
(
skb
)
->
fl
.
iif
==
0
)
if
(
skb_rtable
(
skb
)
->
fl
.
iif
==
0
)
break
;
break
;
...
@@ -960,6 +959,7 @@ int igmp_rcv(struct sk_buff *skb)
...
@@ -960,6 +959,7 @@ int igmp_rcv(struct sk_buff *skb)
in_dev_put
(
in_dev
);
in_dev_put
(
in_dev
);
return
pim_rcv_v1
(
skb
);
return
pim_rcv_v1
(
skb
);
#endif
#endif
case
IGMPV3_HOST_MEMBERSHIP_REPORT
:
case
IGMP_DVMRP
:
case
IGMP_DVMRP
:
case
IGMP_TRACE
:
case
IGMP_TRACE
:
case
IGMP_HOST_LEAVE_MESSAGE
:
case
IGMP_HOST_LEAVE_MESSAGE
:
...
...
net/ipv4/tcp_input.c
View file @
5ecccb74
...
@@ -5783,11 +5783,9 @@ int tcp_rcv_state_process(struct sock *sk, struct sk_buff *skb,
...
@@ -5783,11 +5783,9 @@ int tcp_rcv_state_process(struct sock *sk, struct sk_buff *skb,
/* tcp_ack considers this ACK as duplicate
/* tcp_ack considers this ACK as duplicate
* and does not calculate rtt.
* and does not calculate rtt.
* F
ix it at least with timestamps
.
* F
orce it here
.
*/
*/
if
(
tp
->
rx_opt
.
saw_tstamp
&&
tcp_ack_update_rtt
(
sk
,
0
,
0
);
tp
->
rx_opt
.
rcv_tsecr
&&
!
tp
->
srtt
)
tcp_ack_saw_tstamp
(
sk
,
0
);
if
(
tp
->
rx_opt
.
tstamp_ok
)
if
(
tp
->
rx_opt
.
tstamp_ok
)
tp
->
advmss
-=
TCPOLEN_TSTAMP_ALIGNED
;
tp
->
advmss
-=
TCPOLEN_TSTAMP_ALIGNED
;
...
...
net/mac80211/rate.c
View file @
5ecccb74
...
@@ -303,6 +303,9 @@ void rate_control_get_rate(struct ieee80211_sub_if_data *sdata,
...
@@ -303,6 +303,9 @@ void rate_control_get_rate(struct ieee80211_sub_if_data *sdata,
info
->
control
.
rates
[
i
].
count
=
1
;
info
->
control
.
rates
[
i
].
count
=
1
;
}
}
if
(
sdata
->
local
->
hw
.
flags
&
IEEE80211_HW_HAS_RATE_CONTROL
)
return
;
ref
->
ops
->
get_rate
(
ref
->
priv
,
ista
,
priv_sta
,
txrc
);
ref
->
ops
->
get_rate
(
ref
->
priv
,
ista
,
priv_sta
,
txrc
);
/*
/*
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment