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
92b4522f
Commit
92b4522f
authored
May 31, 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
parents
67a3e12b
29030374
Changes
19
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
107 additions
and
38 deletions
+107
-38
drivers/isdn/hardware/mISDN/hfcsusb.c
drivers/isdn/hardware/mISDN/hfcsusb.c
+3
-1
drivers/net/benet/be_cmds.c
drivers/net/benet/be_cmds.c
+7
-4
drivers/net/fs_enet/mac-fcc.c
drivers/net/fs_enet/mac-fcc.c
+43
-6
drivers/net/wireless/ath/ar9170/usb.c
drivers/net/wireless/ath/ar9170/usb.c
+12
-2
drivers/net/wireless/ath/ath9k/xmit.c
drivers/net/wireless/ath/ath9k/xmit.c
+4
-2
drivers/net/wireless/libertas/rx.c
drivers/net/wireless/libertas/rx.c
+2
-3
drivers/net/wireless/rt2x00/rt2800usb.c
drivers/net/wireless/rt2x00/rt2800usb.c
+1
-1
drivers/ssb/pci.c
drivers/ssb/pci.c
+6
-3
drivers/ssb/sprom.c
drivers/ssb/sprom.c
+1
-0
include/linux/skbuff.h
include/linux/skbuff.h
+1
-1
net/caif/cfserl.c
net/caif/cfserl.c
+4
-2
net/core/skbuff.c
net/core/skbuff.c
+10
-6
net/ipv4/udp.c
net/ipv4/udp.c
+2
-0
net/ipv6/route.c
net/ipv6/route.c
+1
-1
net/ipv6/udp.c
net/ipv6/udp.c
+4
-2
net/mac80211/chan.c
net/mac80211/chan.c
+1
-1
net/phonet/pep.c
net/phonet/pep.c
+3
-3
net/rds/ib_cm.c
net/rds/ib_cm.c
+1
-0
net/rds/iw_cm.c
net/rds/iw_cm.c
+1
-0
No files found.
drivers/isdn/hardware/mISDN/hfcsusb.c
View file @
92b4522f
...
@@ -97,8 +97,10 @@ static int write_reg(struct hfcsusb *hw, __u8 reg, __u8 val)
...
@@ -97,8 +97,10 @@ static int write_reg(struct hfcsusb *hw, __u8 reg, __u8 val)
hw
->
name
,
__func__
,
reg
,
val
);
hw
->
name
,
__func__
,
reg
,
val
);
spin_lock
(
&
hw
->
ctrl_lock
);
spin_lock
(
&
hw
->
ctrl_lock
);
if
(
hw
->
ctrl_cnt
>=
HFC_CTRL_BUFSIZE
)
if
(
hw
->
ctrl_cnt
>=
HFC_CTRL_BUFSIZE
)
{
spin_unlock
(
&
hw
->
ctrl_lock
);
return
1
;
return
1
;
}
buf
=
&
hw
->
ctrl_buff
[
hw
->
ctrl_in_idx
];
buf
=
&
hw
->
ctrl_buff
[
hw
->
ctrl_in_idx
];
buf
->
hfcs_reg
=
reg
;
buf
->
hfcs_reg
=
reg
;
buf
->
reg_val
=
val
;
buf
->
reg_val
=
val
;
...
...
drivers/net/benet/be_cmds.c
View file @
92b4522f
...
@@ -1429,7 +1429,7 @@ int be_cmd_write_flashrom(struct be_adapter *adapter, struct be_dma_mem *cmd,
...
@@ -1429,7 +1429,7 @@ int be_cmd_write_flashrom(struct be_adapter *adapter, struct be_dma_mem *cmd,
wrb
=
wrb_from_mccq
(
adapter
);
wrb
=
wrb_from_mccq
(
adapter
);
if
(
!
wrb
)
{
if
(
!
wrb
)
{
status
=
-
EBUSY
;
status
=
-
EBUSY
;
goto
err
;
goto
err
_unlock
;
}
}
req
=
cmd
->
va
;
req
=
cmd
->
va
;
sge
=
nonembedded_sgl
(
wrb
);
sge
=
nonembedded_sgl
(
wrb
);
...
@@ -1457,7 +1457,10 @@ int be_cmd_write_flashrom(struct be_adapter *adapter, struct be_dma_mem *cmd,
...
@@ -1457,7 +1457,10 @@ int be_cmd_write_flashrom(struct be_adapter *adapter, struct be_dma_mem *cmd,
else
else
status
=
adapter
->
flash_status
;
status
=
adapter
->
flash_status
;
err:
return
status
;
err_unlock:
spin_unlock_bh
(
&
adapter
->
mcc_lock
);
return
status
;
return
status
;
}
}
...
@@ -1497,7 +1500,7 @@ int be_cmd_get_flash_crc(struct be_adapter *adapter, u8 *flashed_crc,
...
@@ -1497,7 +1500,7 @@ int be_cmd_get_flash_crc(struct be_adapter *adapter, u8 *flashed_crc,
return
status
;
return
status
;
}
}
extern
int
be_cmd_enable_magic_wol
(
struct
be_adapter
*
adapter
,
u8
*
mac
,
int
be_cmd_enable_magic_wol
(
struct
be_adapter
*
adapter
,
u8
*
mac
,
struct
be_dma_mem
*
nonemb_cmd
)
struct
be_dma_mem
*
nonemb_cmd
)
{
{
struct
be_mcc_wrb
*
wrb
;
struct
be_mcc_wrb
*
wrb
;
...
@@ -1662,7 +1665,7 @@ int be_cmd_ddr_dma_test(struct be_adapter *adapter, u64 pattern,
...
@@ -1662,7 +1665,7 @@ int be_cmd_ddr_dma_test(struct be_adapter *adapter, u64 pattern,
return
status
;
return
status
;
}
}
extern
int
be_cmd_get_seeprom_data
(
struct
be_adapter
*
adapter
,
int
be_cmd_get_seeprom_data
(
struct
be_adapter
*
adapter
,
struct
be_dma_mem
*
nonemb_cmd
)
struct
be_dma_mem
*
nonemb_cmd
)
{
{
struct
be_mcc_wrb
*
wrb
;
struct
be_mcc_wrb
*
wrb
;
...
...
drivers/net/fs_enet/mac-fcc.c
View file @
92b4522f
...
@@ -504,17 +504,54 @@ static int get_regs_len(struct net_device *dev)
...
@@ -504,17 +504,54 @@ static int get_regs_len(struct net_device *dev)
}
}
/* Some transmit errors cause the transmitter to shut
/* Some transmit errors cause the transmitter to shut
* down. We now issue a restart transmit. Since the
* down. We now issue a restart transmit.
* errors close the BD and update the pointers, the restart
* Also, to workaround 8260 device erratum CPM37, we must
* _should_ pick up without having to reset any of our
* disable and then re-enable the transmitterfollowing a
* pointers either. Also, To workaround 8260 device erratum
* Late Collision, Underrun, or Retry Limit error.
* CPM37, we must disable and then re-enable the transmitter
* In addition, tbptr may point beyond BDs beyond still marked
* following a Late Collision, Underrun, or Retry Limit error.
* as ready due to internal pipelining, so we need to look back
* through the BDs and adjust tbptr to point to the last BD
* marked as ready. This may result in some buffers being
* retransmitted.
*/
*/
static
void
tx_restart
(
struct
net_device
*
dev
)
static
void
tx_restart
(
struct
net_device
*
dev
)
{
{
struct
fs_enet_private
*
fep
=
netdev_priv
(
dev
);
struct
fs_enet_private
*
fep
=
netdev_priv
(
dev
);
fcc_t
__iomem
*
fccp
=
fep
->
fcc
.
fccp
;
fcc_t
__iomem
*
fccp
=
fep
->
fcc
.
fccp
;
const
struct
fs_platform_info
*
fpi
=
fep
->
fpi
;
fcc_enet_t
__iomem
*
ep
=
fep
->
fcc
.
ep
;
cbd_t
__iomem
*
curr_tbptr
;
cbd_t
__iomem
*
recheck_bd
;
cbd_t
__iomem
*
prev_bd
;
cbd_t
__iomem
*
last_tx_bd
;
last_tx_bd
=
fep
->
tx_bd_base
+
(
fpi
->
tx_ring
*
sizeof
(
cbd_t
));
/* get the current bd held in TBPTR and scan back from this point */
recheck_bd
=
curr_tbptr
=
(
cbd_t
__iomem
*
)
((
R32
(
ep
,
fen_genfcc
.
fcc_tbptr
)
-
fep
->
ring_mem_addr
)
+
fep
->
ring_base
);
prev_bd
=
(
recheck_bd
==
fep
->
tx_bd_base
)
?
last_tx_bd
:
recheck_bd
-
1
;
/* Move through the bds in reverse, look for the earliest buffer
* that is not ready. Adjust TBPTR to the following buffer */
while
((
CBDR_SC
(
prev_bd
)
&
BD_ENET_TX_READY
)
!=
0
)
{
/* Go back one buffer */
recheck_bd
=
prev_bd
;
/* update the previous buffer */
prev_bd
=
(
prev_bd
==
fep
->
tx_bd_base
)
?
last_tx_bd
:
prev_bd
-
1
;
/* We should never see all bds marked as ready, check anyway */
if
(
recheck_bd
==
curr_tbptr
)
break
;
}
/* Now update the TBPTR and dirty flag to the current buffer */
W32
(
ep
,
fen_genfcc
.
fcc_tbptr
,
(
uint
)
(((
void
*
)
recheck_bd
-
fep
->
ring_base
)
+
fep
->
ring_mem_addr
));
fep
->
dirty_tx
=
recheck_bd
;
C32
(
fccp
,
fcc_gfmr
,
FCC_GFMR_ENT
);
C32
(
fccp
,
fcc_gfmr
,
FCC_GFMR_ENT
);
udelay
(
10
);
udelay
(
10
);
...
...
drivers/net/wireless/ath/ar9170/usb.c
View file @
92b4522f
...
@@ -739,17 +739,27 @@ static int ar9170_usb_init_device(struct ar9170_usb *aru)
...
@@ -739,17 +739,27 @@ static int ar9170_usb_init_device(struct ar9170_usb *aru)
static
void
ar9170_usb_firmware_failed
(
struct
ar9170_usb
*
aru
)
static
void
ar9170_usb_firmware_failed
(
struct
ar9170_usb
*
aru
)
{
{
struct
device
*
parent
=
aru
->
udev
->
dev
.
parent
;
struct
device
*
parent
=
aru
->
udev
->
dev
.
parent
;
struct
usb_device
*
udev
;
/*
* Store a copy of the usb_device pointer locally.
* This is because device_release_driver initiates
* ar9170_usb_disconnect, which in turn frees our
* driver context (aru).
*/
udev
=
aru
->
udev
;
complete
(
&
aru
->
firmware_loading_complete
);
complete
(
&
aru
->
firmware_loading_complete
);
/* unbind anything failed */
/* unbind anything failed */
if
(
parent
)
if
(
parent
)
device_lock
(
parent
);
device_lock
(
parent
);
device_release_driver
(
&
aru
->
udev
->
dev
);
device_release_driver
(
&
udev
->
dev
);
if
(
parent
)
if
(
parent
)
device_unlock
(
parent
);
device_unlock
(
parent
);
usb_put_dev
(
aru
->
udev
);
usb_put_dev
(
udev
);
}
}
static
void
ar9170_usb_firmware_finish
(
const
struct
firmware
*
fw
,
void
*
context
)
static
void
ar9170_usb_firmware_finish
(
const
struct
firmware
*
fw
,
void
*
context
)
...
...
drivers/net/wireless/ath/ath9k/xmit.c
View file @
92b4522f
...
@@ -1198,7 +1198,7 @@ void ath_drain_all_txq(struct ath_softc *sc, bool retry_tx)
...
@@ -1198,7 +1198,7 @@ void ath_drain_all_txq(struct ath_softc *sc, bool retry_tx)
int
r
;
int
r
;
ath_print
(
common
,
ATH_DBG_FATAL
,
ath_print
(
common
,
ATH_DBG_FATAL
,
"
Unable to stop TxDMA. Reset HAL
!
\n
"
);
"
Failed to stop TX DMA. Resetting hardware
!
\n
"
);
spin_lock_bh
(
&
sc
->
sc_resetlock
);
spin_lock_bh
(
&
sc
->
sc_resetlock
);
r
=
ath9k_hw_reset
(
ah
,
sc
->
sc_ah
->
curchan
,
false
);
r
=
ath9k_hw_reset
(
ah
,
sc
->
sc_ah
->
curchan
,
false
);
...
@@ -1728,6 +1728,8 @@ static int ath_tx_setup_buffer(struct ieee80211_hw *hw, struct ath_buf *bf,
...
@@ -1728,6 +1728,8 @@ static int ath_tx_setup_buffer(struct ieee80211_hw *hw, struct ath_buf *bf,
}
else
}
else
bf
->
bf_isnullfunc
=
false
;
bf
->
bf_isnullfunc
=
false
;
bf
->
bf_tx_aborted
=
false
;
return
0
;
return
0
;
}
}
...
@@ -1989,7 +1991,7 @@ static int ath_tx_num_badfrms(struct ath_softc *sc, struct ath_buf *bf,
...
@@ -1989,7 +1991,7 @@ static int ath_tx_num_badfrms(struct ath_softc *sc, struct ath_buf *bf,
int
nbad
=
0
;
int
nbad
=
0
;
int
isaggr
=
0
;
int
isaggr
=
0
;
if
(
bf
->
bf_tx_aborted
)
if
(
bf
->
bf_
lastbf
->
bf_
tx_aborted
)
return
0
;
return
0
;
isaggr
=
bf_isaggr
(
bf
);
isaggr
=
bf_isaggr
(
bf
);
...
...
drivers/net/wireless/libertas/rx.c
View file @
92b4522f
...
@@ -329,9 +329,8 @@ static int process_rxed_802_11_packet(struct lbs_private *priv,
...
@@ -329,9 +329,8 @@ static int process_rxed_802_11_packet(struct lbs_private *priv,
/* create the exported radio header */
/* create the exported radio header */
/* radiotap header */
/* radiotap header */
radiotap_hdr
.
hdr
.
it_version
=
0
;
memset
(
&
radiotap_hdr
,
0
,
sizeof
(
radiotap_hdr
));
/* XXX must check this value for pad */
/* XXX must check radiotap_hdr.hdr.it_pad for pad */
radiotap_hdr
.
hdr
.
it_pad
=
0
;
radiotap_hdr
.
hdr
.
it_len
=
cpu_to_le16
(
sizeof
(
struct
rx_radiotap_hdr
));
radiotap_hdr
.
hdr
.
it_len
=
cpu_to_le16
(
sizeof
(
struct
rx_radiotap_hdr
));
radiotap_hdr
.
hdr
.
it_present
=
cpu_to_le32
(
RX_RADIOTAP_PRESENT
);
radiotap_hdr
.
hdr
.
it_present
=
cpu_to_le32
(
RX_RADIOTAP_PRESENT
);
radiotap_hdr
.
rate
=
convert_mv_rate_to_radiotap
(
prxpd
->
rx_rate
);
radiotap_hdr
.
rate
=
convert_mv_rate_to_radiotap
(
prxpd
->
rx_rate
);
...
...
drivers/net/wireless/rt2x00/rt2800usb.c
View file @
92b4522f
...
@@ -413,7 +413,7 @@ static void rt2800usb_write_tx_desc(struct rt2x00_dev *rt2x00dev,
...
@@ -413,7 +413,7 @@ static void rt2800usb_write_tx_desc(struct rt2x00_dev *rt2x00dev,
*/
*/
rt2x00_desc_read
(
txi
,
0
,
&
word
);
rt2x00_desc_read
(
txi
,
0
,
&
word
);
rt2x00_set_field32
(
&
word
,
TXINFO_W0_USB_DMA_TX_PKT_LEN
,
rt2x00_set_field32
(
&
word
,
TXINFO_W0_USB_DMA_TX_PKT_LEN
,
skb
->
len
-
TXINFO
_DESC_SIZE
);
skb
->
len
+
TXWI
_DESC_SIZE
);
rt2x00_set_field32
(
&
word
,
TXINFO_W0_WIV
,
rt2x00_set_field32
(
&
word
,
TXINFO_W0_WIV
,
!
test_bit
(
ENTRY_TXD_ENCRYPT_IV
,
&
txdesc
->
flags
));
!
test_bit
(
ENTRY_TXD_ENCRYPT_IV
,
&
txdesc
->
flags
));
rt2x00_set_field32
(
&
word
,
TXINFO_W0_QSEL
,
2
);
rt2x00_set_field32
(
&
word
,
TXINFO_W0_QSEL
,
2
);
...
...
drivers/ssb/pci.c
View file @
92b4522f
...
@@ -625,9 +625,12 @@ static int ssb_pci_sprom_get(struct ssb_bus *bus,
...
@@ -625,9 +625,12 @@ static int ssb_pci_sprom_get(struct ssb_bus *bus,
ssb_printk
(
KERN_ERR
PFX
"No SPROM available!
\n
"
);
ssb_printk
(
KERN_ERR
PFX
"No SPROM available!
\n
"
);
return
-
ENODEV
;
return
-
ENODEV
;
}
}
if
(
bus
->
chipco
.
dev
)
{
/* can be unavailible! */
bus
->
sprom_offset
=
(
bus
->
chipco
.
dev
->
id
.
revision
<
31
)
?
bus
->
sprom_offset
=
(
bus
->
chipco
.
dev
->
id
.
revision
<
31
)
?
SSB_SPROM_BASE1
:
SSB_SPROM_BASE31
;
SSB_SPROM_BASE1
:
SSB_SPROM_BASE31
;
}
else
{
bus
->
sprom_offset
=
SSB_SPROM_BASE1
;
}
buf
=
kcalloc
(
SSB_SPROMSIZE_WORDS_R123
,
sizeof
(
u16
),
GFP_KERNEL
);
buf
=
kcalloc
(
SSB_SPROMSIZE_WORDS_R123
,
sizeof
(
u16
),
GFP_KERNEL
);
if
(
!
buf
)
if
(
!
buf
)
...
...
drivers/ssb/sprom.c
View file @
92b4522f
...
@@ -185,6 +185,7 @@ bool ssb_is_sprom_available(struct ssb_bus *bus)
...
@@ -185,6 +185,7 @@ bool ssb_is_sprom_available(struct ssb_bus *bus)
/* this routine differs from specs as we do not access SPROM directly
/* this routine differs from specs as we do not access SPROM directly
on PCMCIA */
on PCMCIA */
if
(
bus
->
bustype
==
SSB_BUSTYPE_PCI
&&
if
(
bus
->
bustype
==
SSB_BUSTYPE_PCI
&&
bus
->
chipco
.
dev
&&
/* can be unavailible! */
bus
->
chipco
.
dev
->
id
.
revision
>=
31
)
bus
->
chipco
.
dev
->
id
.
revision
>=
31
)
return
bus
->
chipco
.
capabilities
&
SSB_CHIPCO_CAP_SPROM
;
return
bus
->
chipco
.
capabilities
&
SSB_CHIPCO_CAP_SPROM
;
...
...
include/linux/skbuff.h
View file @
92b4522f
...
@@ -501,7 +501,7 @@ static inline struct sk_buff *alloc_skb_fclone(unsigned int size,
...
@@ -501,7 +501,7 @@ static inline struct sk_buff *alloc_skb_fclone(unsigned int size,
return
__alloc_skb
(
size
,
priority
,
1
,
-
1
);
return
__alloc_skb
(
size
,
priority
,
1
,
-
1
);
}
}
extern
int
skb_recycle_check
(
struct
sk_buff
*
skb
,
int
skb_size
);
extern
bool
skb_recycle_check
(
struct
sk_buff
*
skb
,
int
skb_size
);
extern
struct
sk_buff
*
skb_morph
(
struct
sk_buff
*
dst
,
struct
sk_buff
*
src
);
extern
struct
sk_buff
*
skb_morph
(
struct
sk_buff
*
dst
,
struct
sk_buff
*
src
);
extern
struct
sk_buff
*
skb_clone
(
struct
sk_buff
*
skb
,
extern
struct
sk_buff
*
skb_clone
(
struct
sk_buff
*
skb
,
...
...
net/caif/cfserl.c
View file @
92b4522f
...
@@ -59,16 +59,18 @@ static int cfserl_receive(struct cflayer *l, struct cfpkt *newpkt)
...
@@ -59,16 +59,18 @@ static int cfserl_receive(struct cflayer *l, struct cfpkt *newpkt)
u8
stx
=
CFSERL_STX
;
u8
stx
=
CFSERL_STX
;
int
ret
;
int
ret
;
u16
expectlen
=
0
;
u16
expectlen
=
0
;
caif_assert
(
newpkt
!=
NULL
);
caif_assert
(
newpkt
!=
NULL
);
spin_lock
(
&
layr
->
sync
);
spin_lock
(
&
layr
->
sync
);
if
(
layr
->
incomplete_frm
!=
NULL
)
{
if
(
layr
->
incomplete_frm
!=
NULL
)
{
layr
->
incomplete_frm
=
layr
->
incomplete_frm
=
cfpkt_append
(
layr
->
incomplete_frm
,
newpkt
,
expectlen
);
cfpkt_append
(
layr
->
incomplete_frm
,
newpkt
,
expectlen
);
pkt
=
layr
->
incomplete_frm
;
pkt
=
layr
->
incomplete_frm
;
if
(
pkt
==
NULL
)
if
(
pkt
==
NULL
)
{
spin_unlock
(
&
layr
->
sync
);
return
-
ENOMEM
;
return
-
ENOMEM
;
}
}
else
{
}
else
{
pkt
=
newpkt
;
pkt
=
newpkt
;
}
}
...
...
net/core/skbuff.c
View file @
92b4522f
...
@@ -482,22 +482,22 @@ EXPORT_SYMBOL(consume_skb);
...
@@ -482,22 +482,22 @@ EXPORT_SYMBOL(consume_skb);
* reference count dropping and cleans up the skbuff as if it
* reference count dropping and cleans up the skbuff as if it
* just came from __alloc_skb().
* just came from __alloc_skb().
*/
*/
int
skb_recycle_check
(
struct
sk_buff
*
skb
,
int
skb_size
)
bool
skb_recycle_check
(
struct
sk_buff
*
skb
,
int
skb_size
)
{
{
struct
skb_shared_info
*
shinfo
;
struct
skb_shared_info
*
shinfo
;
if
(
irqs_disabled
())
if
(
irqs_disabled
())
return
0
;
return
false
;
if
(
skb_is_nonlinear
(
skb
)
||
skb
->
fclone
!=
SKB_FCLONE_UNAVAILABLE
)
if
(
skb_is_nonlinear
(
skb
)
||
skb
->
fclone
!=
SKB_FCLONE_UNAVAILABLE
)
return
0
;
return
false
;
skb_size
=
SKB_DATA_ALIGN
(
skb_size
+
NET_SKB_PAD
);
skb_size
=
SKB_DATA_ALIGN
(
skb_size
+
NET_SKB_PAD
);
if
(
skb_end_pointer
(
skb
)
-
skb
->
head
<
skb_size
)
if
(
skb_end_pointer
(
skb
)
-
skb
->
head
<
skb_size
)
return
0
;
return
false
;
if
(
skb_shared
(
skb
)
||
skb_cloned
(
skb
))
if
(
skb_shared
(
skb
)
||
skb_cloned
(
skb
))
return
0
;
return
false
;
skb_release_head_state
(
skb
);
skb_release_head_state
(
skb
);
...
@@ -509,7 +509,7 @@ int skb_recycle_check(struct sk_buff *skb, int skb_size)
...
@@ -509,7 +509,7 @@ int skb_recycle_check(struct sk_buff *skb, int skb_size)
skb
->
data
=
skb
->
head
+
NET_SKB_PAD
;
skb
->
data
=
skb
->
head
+
NET_SKB_PAD
;
skb_reset_tail_pointer
(
skb
);
skb_reset_tail_pointer
(
skb
);
return
1
;
return
true
;
}
}
EXPORT_SYMBOL
(
skb_recycle_check
);
EXPORT_SYMBOL
(
skb_recycle_check
);
...
@@ -2996,7 +2996,11 @@ void skb_tstamp_tx(struct sk_buff *orig_skb,
...
@@ -2996,7 +2996,11 @@ void skb_tstamp_tx(struct sk_buff *orig_skb,
memset
(
serr
,
0
,
sizeof
(
*
serr
));
memset
(
serr
,
0
,
sizeof
(
*
serr
));
serr
->
ee
.
ee_errno
=
ENOMSG
;
serr
->
ee
.
ee_errno
=
ENOMSG
;
serr
->
ee
.
ee_origin
=
SO_EE_ORIGIN_TIMESTAMPING
;
serr
->
ee
.
ee_origin
=
SO_EE_ORIGIN_TIMESTAMPING
;
bh_lock_sock
(
sk
);
err
=
sock_queue_err_skb
(
sk
,
skb
);
err
=
sock_queue_err_skb
(
sk
,
skb
);
bh_unlock_sock
(
sk
);
if
(
err
)
if
(
err
)
kfree_skb
(
skb
);
kfree_skb
(
skb
);
}
}
...
...
net/ipv4/udp.c
View file @
92b4522f
...
@@ -634,7 +634,9 @@ void __udp4_lib_err(struct sk_buff *skb, u32 info, struct udp_table *udptable)
...
@@ -634,7 +634,9 @@ void __udp4_lib_err(struct sk_buff *skb, u32 info, struct udp_table *udptable)
if
(
!
harderr
||
sk
->
sk_state
!=
TCP_ESTABLISHED
)
if
(
!
harderr
||
sk
->
sk_state
!=
TCP_ESTABLISHED
)
goto
out
;
goto
out
;
}
else
{
}
else
{
bh_lock_sock
(
sk
);
ip_icmp_error
(
sk
,
skb
,
err
,
uh
->
dest
,
info
,
(
u8
*
)(
uh
+
1
));
ip_icmp_error
(
sk
,
skb
,
err
,
uh
->
dest
,
info
,
(
u8
*
)(
uh
+
1
));
bh_unlock_sock
(
sk
);
}
}
sk
->
sk_err
=
err
;
sk
->
sk_err
=
err
;
sk
->
sk_error_report
(
sk
);
sk
->
sk_error_report
(
sk
);
...
...
net/ipv6/route.c
View file @
92b4522f
...
@@ -814,7 +814,7 @@ struct dst_entry * ip6_route_output(struct net *net, struct sock *sk,
...
@@ -814,7 +814,7 @@ struct dst_entry * ip6_route_output(struct net *net, struct sock *sk,
{
{
int
flags
=
0
;
int
flags
=
0
;
if
(
fl
->
oif
||
rt6_need_strict
(
&
fl
->
fl6_dst
))
if
(
(
sk
&&
sk
->
sk_bound_dev_if
)
||
rt6_need_strict
(
&
fl
->
fl6_dst
))
flags
|=
RT6_LOOKUP_F_IFACE
;
flags
|=
RT6_LOOKUP_F_IFACE
;
if
(
!
ipv6_addr_any
(
&
fl
->
fl6_src
))
if
(
!
ipv6_addr_any
(
&
fl
->
fl6_src
))
...
...
net/ipv6/udp.c
View file @
92b4522f
...
@@ -466,9 +466,11 @@ void __udp6_lib_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
...
@@ -466,9 +466,11 @@ void __udp6_lib_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
if
(
sk
->
sk_state
!=
TCP_ESTABLISHED
&&
!
np
->
recverr
)
if
(
sk
->
sk_state
!=
TCP_ESTABLISHED
&&
!
np
->
recverr
)
goto
out
;
goto
out
;
if
(
np
->
recverr
)
if
(
np
->
recverr
)
{
bh_lock_sock
(
sk
);
ipv6_icmp_error
(
sk
,
skb
,
err
,
uh
->
dest
,
ntohl
(
info
),
(
u8
*
)(
uh
+
1
));
ipv6_icmp_error
(
sk
,
skb
,
err
,
uh
->
dest
,
ntohl
(
info
),
(
u8
*
)(
uh
+
1
));
bh_unlock_sock
(
sk
);
}
sk
->
sk_err
=
err
;
sk
->
sk_err
=
err
;
sk
->
sk_error_report
(
sk
);
sk
->
sk_error_report
(
sk
);
out:
out:
...
...
net/mac80211/chan.c
View file @
92b4522f
...
@@ -5,7 +5,7 @@
...
@@ -5,7 +5,7 @@
#include <linux/nl80211.h>
#include <linux/nl80211.h>
#include "ieee80211_i.h"
#include "ieee80211_i.h"
enum
ieee80211_chan_mode
static
enum
ieee80211_chan_mode
__ieee80211_get_channel_mode
(
struct
ieee80211_local
*
local
,
__ieee80211_get_channel_mode
(
struct
ieee80211_local
*
local
,
struct
ieee80211_sub_if_data
*
ignore
)
struct
ieee80211_sub_if_data
*
ignore
)
{
{
...
...
net/phonet/pep.c
View file @
92b4522f
...
@@ -1045,12 +1045,12 @@ static void pep_sock_unhash(struct sock *sk)
...
@@ -1045,12 +1045,12 @@ static void pep_sock_unhash(struct sock *sk)
lock_sock
(
sk
);
lock_sock
(
sk
);
if
((
1
<<
sk
->
sk_state
)
&
~
(
TCPF_CLOSE
|
TCPF_LISTEN
))
{
if
((
1
<<
sk
->
sk_state
)
&
~
(
TCPF_CLOSE
|
TCPF_LISTEN
))
{
skparent
=
pn
->
listener
;
skparent
=
pn
->
listener
;
sk_del_node_init
(
sk
);
release_sock
(
sk
);
release_sock
(
sk
);
sk
=
skparent
;
pn
=
pep_sk
(
skparent
);
pn
=
pep_sk
(
skparent
);
lock_sock
(
sk
);
lock_sock
(
skparent
);
sk_del_node_init
(
sk
);
sk
=
skparent
;
}
}
/* Unhash a listening sock only when it is closed
/* Unhash a listening sock only when it is closed
* and all of its active connected pipes are closed. */
* and all of its active connected pipes are closed. */
...
...
net/rds/ib_cm.c
View file @
92b4522f
...
@@ -475,6 +475,7 @@ int rds_ib_cm_handle_connect(struct rdma_cm_id *cm_id,
...
@@ -475,6 +475,7 @@ int rds_ib_cm_handle_connect(struct rdma_cm_id *cm_id,
err
=
rds_ib_setup_qp
(
conn
);
err
=
rds_ib_setup_qp
(
conn
);
if
(
err
)
{
if
(
err
)
{
rds_ib_conn_error
(
conn
,
"rds_ib_setup_qp failed (%d)
\n
"
,
err
);
rds_ib_conn_error
(
conn
,
"rds_ib_setup_qp failed (%d)
\n
"
,
err
);
mutex_unlock
(
&
conn
->
c_cm_lock
);
goto
out
;
goto
out
;
}
}
...
...
net/rds/iw_cm.c
View file @
92b4522f
...
@@ -452,6 +452,7 @@ int rds_iw_cm_handle_connect(struct rdma_cm_id *cm_id,
...
@@ -452,6 +452,7 @@ int rds_iw_cm_handle_connect(struct rdma_cm_id *cm_id,
err
=
rds_iw_setup_qp
(
conn
);
err
=
rds_iw_setup_qp
(
conn
);
if
(
err
)
{
if
(
err
)
{
rds_iw_conn_error
(
conn
,
"rds_iw_setup_qp failed (%d)
\n
"
,
err
);
rds_iw_conn_error
(
conn
,
"rds_iw_setup_qp failed (%d)
\n
"
,
err
);
mutex_unlock
(
&
conn
->
c_cm_lock
);
goto
out
;
goto
out
;
}
}
...
...
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