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
Kirill Smelkov
linux
Commits
c2d26a96
Commit
c2d26a96
authored
Apr 25, 2004
by
David S. Miller
Browse files
Options
Browse Files
Download
Plain Diff
Merge davem@nuts.davemloft.net:/disk1/BK/net-2.6
into kernel.bkbits.net:/home/davem/net-2.6
parents
63d5381e
fa58cfcf
Changes
7
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
719 additions
and
442 deletions
+719
-442
crypto/crypto_null.c
crypto/crypto_null.c
+4
-0
drivers/atm/Kconfig
drivers/atm/Kconfig
+9
-0
drivers/atm/fore200e.c
drivers/atm/fore200e.c
+630
-419
drivers/atm/fore200e.h
drivers/atm/fore200e.h
+52
-22
include/linux/if.h
include/linux/if.h
+1
-0
include/linux/tcp_diag.h
include/linux/tcp_diag.h
+12
-1
net/ipv4/tcp_diag.c
net/ipv4/tcp_diag.c
+11
-0
No files found.
crypto/crypto_null.c
View file @
c2d26a96
...
@@ -94,6 +94,10 @@ static struct crypto_alg cipher_null = {
...
@@ -94,6 +94,10 @@ static struct crypto_alg cipher_null = {
.
cia_decrypt
=
null_decrypt
}
}
.
cia_decrypt
=
null_decrypt
}
}
};
};
MODULE_ALIAS
(
"compress_null"
);
MODULE_ALIAS
(
"digest_null"
);
MODULE_ALIAS
(
"cipher_null"
);
static
int
__init
init
(
void
)
static
int
__init
init
(
void
)
{
{
int
ret
=
0
;
int
ret
=
0
;
...
...
drivers/atm/Kconfig
View file @
c2d26a96
...
@@ -385,6 +385,15 @@ config ATM_FORE200E_SBA_FW
...
@@ -385,6 +385,15 @@ config ATM_FORE200E_SBA_FW
not have to supply an alternative one. They just say Y to "Use
not have to supply an alternative one. They just say Y to "Use
default SBA-200E firmware", above.
default SBA-200E firmware", above.
config ATM_FORE200E_USE_TASKLET
bool "Defer interrupt work to a tasklet"
depends on (PCI || SBUS) && (ATM_FORE200E_PCA || ATM_FORE200E_SBA)
default n
help
This defers work to be done by the interrupt handler to a
tasklet instead of hanlding everything at interrupt time. This
may improve the responsive of the host.
config ATM_FORE200E_TX_RETRY
config ATM_FORE200E_TX_RETRY
int "Maximum number of tx retries"
int "Maximum number of tx retries"
depends on (PCI || SBUS) && (ATM_FORE200E_PCA || ATM_FORE200E_SBA)
depends on (PCI || SBUS) && (ATM_FORE200E_PCA || ATM_FORE200E_SBA)
...
...
drivers/atm/fore200e.c
View file @
c2d26a96
This diff is collapsed.
Click to expand it.
drivers/atm/fore200e.h
View file @
c2d26a96
...
@@ -23,19 +23,21 @@
...
@@ -23,19 +23,21 @@
#define BUFFER_S2_SIZE SMALL_BUFFER_SIZE
/* size of small buffers, scheme 2 */
#define BUFFER_S2_SIZE SMALL_BUFFER_SIZE
/* size of small buffers, scheme 2 */
#define BUFFER_L2_SIZE LARGE_BUFFER_SIZE
/* size of large buffers, scheme 2 */
#define BUFFER_L2_SIZE LARGE_BUFFER_SIZE
/* size of large buffers, scheme 2 */
#define BUFFER_S1_NBR (RBD_BLK_SIZE *
2
)
#define BUFFER_S1_NBR (RBD_BLK_SIZE *
6
)
#define BUFFER_L1_NBR (RBD_BLK_SIZE *
2
)
#define BUFFER_L1_NBR (RBD_BLK_SIZE *
4
)
#define BUFFER_S2_NBR (RBD_BLK_SIZE *
2
)
#define BUFFER_S2_NBR (RBD_BLK_SIZE *
6
)
#define BUFFER_L2_NBR (RBD_BLK_SIZE *
2
)
#define BUFFER_L2_NBR (RBD_BLK_SIZE *
4
)
#define QUEUE_SIZE_CMD 16
/* command queue capacity */
#define QUEUE_SIZE_CMD 16
/* command queue capacity */
#define QUEUE_SIZE_RX 64
/* receive queue capacity */
#define QUEUE_SIZE_RX 64
/* receive queue capacity */
#define QUEUE_SIZE_TX 256
/* transmit queue capacity */
#define QUEUE_SIZE_TX 256
/* transmit queue capacity */
#define QUEUE_SIZE_BS
16
/* buffer supply queue capacity */
#define QUEUE_SIZE_BS
32
/* buffer supply queue capacity */
#define NBR_CONNECT 1024
/* number of ATM connections */
#define FORE200E_VPI_BITS 0
#define FORE200E_VCI_BITS 10
#define NBR_CONNECT (1 << (FORE200E_VPI_BITS + FORE200E_VCI_BITS))
/* number of connections */
#define TSD_FIXED 2
#define TSD_FIXED 2
...
@@ -207,6 +209,7 @@ typedef struct tpd_haddr {
...
@@ -207,6 +209,7 @@ typedef struct tpd_haddr {
)
)
}
tpd_haddr_t
;
}
tpd_haddr_t
;
#define TPD_HADDR_SHIFT 5
/* addr aligned on 32 byte boundary */
/* cp resident transmit queue entry */
/* cp resident transmit queue entry */
...
@@ -517,13 +520,15 @@ typedef struct cp_cmdq_entry {
...
@@ -517,13 +520,15 @@ typedef struct cp_cmdq_entry {
/* host resident transmit queue entry */
/* host resident transmit queue entry */
typedef
struct
host_txq_entry
{
typedef
struct
host_txq_entry
{
struct
cp_txq_entry
*
cp_entry
;
/* addr of cp resident tx queue entry */
struct
cp_txq_entry
*
cp_entry
;
/* addr of cp resident tx queue entry */
enum
status
*
status
;
/* addr of host resident status */
enum
status
*
status
;
/* addr of host resident status */
struct
tpd
*
tpd
;
/* addr of transmit PDU descriptor */
struct
tpd
*
tpd
;
/* addr of transmit PDU descriptor */
u32
tpd_dma
;
/* DMA address of tpd */
u32
tpd_dma
;
/* DMA address of tpd */
struct
sk_buff
*
skb
;
/* related skb */
struct
sk_buff
*
skb
;
/* related skb */
struct
atm_vcc
*
vcc
;
/* related vcc */
void
*
data
;
/* copy of misaligned data */
void
*
data
;
/* copy of misaligned data */
unsigned
long
incarn
;
/* vc_map incarnation when submitted for tx */
struct
fore200e_vc_map
*
vc_map
;
}
host_txq_entry_t
;
}
host_txq_entry_t
;
...
@@ -576,6 +581,10 @@ typedef struct buffer {
...
@@ -576,6 +581,10 @@ typedef struct buffer {
enum
buffer_scheme
scheme
;
/* buffer scheme */
enum
buffer_scheme
scheme
;
/* buffer scheme */
enum
buffer_magn
magn
;
/* buffer magnitude */
enum
buffer_magn
magn
;
/* buffer magnitude */
struct
chunk
data
;
/* data buffer */
struct
chunk
data
;
/* data buffer */
#ifdef FORE200E_BSQ_DEBUG
unsigned
long
index
;
/* buffer # in queue */
int
supplied
;
/* 'buffer supplied' flag */
#endif
}
buffer_t
;
}
buffer_t
;
...
@@ -602,6 +611,7 @@ typedef struct host_cmdq {
...
@@ -602,6 +611,7 @@ typedef struct host_cmdq {
typedef
struct
host_txq
{
typedef
struct
host_txq
{
struct
host_txq_entry
host_entry
[
QUEUE_SIZE_TX
];
/* host resident tx queue entries */
struct
host_txq_entry
host_entry
[
QUEUE_SIZE_TX
];
/* host resident tx queue entries */
int
head
;
/* head of tx queue */
int
head
;
/* head of tx queue */
int
tail
;
/* tail of tx queue */
struct
chunk
tpd
;
/* array of tpds */
struct
chunk
tpd
;
/* array of tpds */
struct
chunk
status
;
/* arry of completion status */
struct
chunk
status
;
/* arry of completion status */
int
txing
;
/* number of pending PDUs in tx queue */
int
txing
;
/* number of pending PDUs in tx queue */
...
@@ -626,8 +636,8 @@ typedef struct host_bsq {
...
@@ -626,8 +636,8 @@ typedef struct host_bsq {
struct
chunk
rbd_block
;
/* array of rbds */
struct
chunk
rbd_block
;
/* array of rbds */
struct
chunk
status
;
/* array of completion status */
struct
chunk
status
;
/* array of completion status */
struct
buffer
*
buffer
;
/* array of rx buffers */
struct
buffer
*
buffer
;
/* array of rx buffers */
int
free
;
/* index of first free rx buffer
*/
struct
buffer
*
freebuf
;
/* list of free rx buffers
*/
volatile
int
count
;
/* count of supplied rx buffers
*/
volatile
int
freebuf_count
;
/* count of free rx buffers
*/
}
host_bsq_t
;
}
host_bsq_t
;
...
@@ -847,6 +857,17 @@ typedef struct fore200e_bus {
...
@@ -847,6 +857,17 @@ typedef struct fore200e_bus {
#endif
#endif
/* vc mapping */
typedef
struct
fore200e_vc_map
{
struct
atm_vcc
*
vcc
;
/* vcc entry */
unsigned
long
incarn
;
/* vcc incarnation number */
}
fore200e_vc_map_t
;
#define FORE200E_VC_MAP(fore200e, vpi, vci) \
(& (fore200e)->vc_map[ ((vpi) << FORE200E_VCI_BITS) | (vci) ])
/* per-device data */
/* per-device data */
typedef
struct
fore200e
{
typedef
struct
fore200e
{
...
@@ -880,20 +901,29 @@ typedef struct fore200e {
...
@@ -880,20 +901,29 @@ typedef struct fore200e {
struct
stats
*
stats
;
/* last snapshot of the stats */
struct
stats
*
stats
;
/* last snapshot of the stats */
struct
semaphore
rate_sf
;
/* protects rate reservation ops */
struct
semaphore
rate_sf
;
/* protects rate reservation ops */
struct
tasklet_struct
tasklet
;
/* performs interrupt work */
spinlock_t
q_lock
;
/* protects queue ops */
#ifdef FORE200E_USE_TASKLET
struct
tasklet_struct
tx_tasklet
;
/* performs tx interrupt work */
struct
tasklet_struct
rx_tasklet
;
/* performs rx interrupt work */
#endif
unsigned
long
tx_sat
;
/* tx queue saturation count */
unsigned
long
incarn_count
;
struct
fore200e_vc_map
vc_map
[
NBR_CONNECT
];
/* vc mapping */
}
fore200e_t
;
}
fore200e_t
;
/* per-vcc data */
/* per-vcc data */
typedef
struct
fore200e_vcc
{
typedef
struct
fore200e_vcc
{
enum
buffer_scheme
scheme
;
/* rx buffer scheme */
enum
buffer_scheme
scheme
;
/* rx buffer scheme */
struct
tpd_rate
rate
;
/* tx rate control data */
struct
tpd_rate
rate
;
/* tx rate control data */
int
rx_min_pdu
;
/* size of smallest PDU received */
int
rx_min_pdu
;
/* size of smallest PDU received */
int
rx_max_pdu
;
/* size of largest PDU received */
int
rx_max_pdu
;
/* size of largest PDU received */
int
tx_min_pdu
;
/* size of smallest PDU transmitted */
int
tx_min_pdu
;
/* size of smallest PDU transmitted */
int
tx_max_pdu
;
/* size of largest PDU transmitted */
int
tx_max_pdu
;
/* size of largest PDU transmitted */
unsigned
long
tx_pdu
;
/* nbr of tx pdus */
unsigned
long
rx_pdu
;
/* nbr of rx pdus */
}
fore200e_vcc_t
;
}
fore200e_vcc_t
;
...
...
include/linux/if.h
View file @
c2d26a96
...
@@ -21,6 +21,7 @@
...
@@ -21,6 +21,7 @@
#include <linux/types.h>
/* for "__kernel_caddr_t" et al */
#include <linux/types.h>
/* for "__kernel_caddr_t" et al */
#include <linux/socket.h>
/* for "struct sockaddr" et al */
#include <linux/socket.h>
/* for "struct sockaddr" et al */
#include <linux/compiler.h>
/* for "__user" et al */
#define IFNAMSIZ 16
#define IFNAMSIZ 16
#include <linux/hdlc/ioctl.h>
#include <linux/hdlc/ioctl.h>
...
...
include/linux/tcp_diag.h
View file @
c2d26a96
...
@@ -98,9 +98,10 @@ enum
...
@@ -98,9 +98,10 @@ enum
TCPDIAG_NONE
,
TCPDIAG_NONE
,
TCPDIAG_MEMINFO
,
TCPDIAG_MEMINFO
,
TCPDIAG_INFO
,
TCPDIAG_INFO
,
TCPDIAG_VEGASINFO
,
};
};
#define TCPDIAG_MAX TCPDIAG_INFO
#define TCPDIAG_MAX TCPDIAG_
VEGAS
INFO
/* TCPDIAG_MEM */
/* TCPDIAG_MEM */
...
@@ -113,4 +114,14 @@ struct tcpdiag_meminfo
...
@@ -113,4 +114,14 @@ struct tcpdiag_meminfo
__u32
tcpdiag_tmem
;
__u32
tcpdiag_tmem
;
};
};
/* TCPDIAG_VEGASINFO */
struct
tcpvegas_info
{
__u32
tcpv_enabled
;
__u32
tcpv_rttcnt
;
__u32
tcpv_rtt
;
__u32
tcpv_minrtt
;
};
#endif
/* _TCP_DIAG_H_ */
#endif
/* _TCP_DIAG_H_ */
net/ipv4/tcp_diag.c
View file @
c2d26a96
...
@@ -50,6 +50,7 @@ static int tcpdiag_fill(struct sk_buff *skb, struct sock *sk,
...
@@ -50,6 +50,7 @@ static int tcpdiag_fill(struct sk_buff *skb, struct sock *sk,
struct
nlmsghdr
*
nlh
;
struct
nlmsghdr
*
nlh
;
struct
tcp_info
*
info
=
NULL
;
struct
tcp_info
*
info
=
NULL
;
struct
tcpdiag_meminfo
*
minfo
=
NULL
;
struct
tcpdiag_meminfo
*
minfo
=
NULL
;
struct
tcpvegas_info
*
vinfo
=
NULL
;
unsigned
char
*
b
=
skb
->
tail
;
unsigned
char
*
b
=
skb
->
tail
;
nlh
=
NLMSG_PUT
(
skb
,
pid
,
seq
,
TCPDIAG_GETSOCK
,
sizeof
(
*
r
));
nlh
=
NLMSG_PUT
(
skb
,
pid
,
seq
,
TCPDIAG_GETSOCK
,
sizeof
(
*
r
));
...
@@ -59,6 +60,9 @@ static int tcpdiag_fill(struct sk_buff *skb, struct sock *sk,
...
@@ -59,6 +60,9 @@ static int tcpdiag_fill(struct sk_buff *skb, struct sock *sk,
minfo
=
TCPDIAG_PUT
(
skb
,
TCPDIAG_MEMINFO
,
sizeof
(
*
minfo
));
minfo
=
TCPDIAG_PUT
(
skb
,
TCPDIAG_MEMINFO
,
sizeof
(
*
minfo
));
if
(
ext
&
(
1
<<
(
TCPDIAG_INFO
-
1
)))
if
(
ext
&
(
1
<<
(
TCPDIAG_INFO
-
1
)))
info
=
TCPDIAG_PUT
(
skb
,
TCPDIAG_INFO
,
sizeof
(
*
info
));
info
=
TCPDIAG_PUT
(
skb
,
TCPDIAG_INFO
,
sizeof
(
*
info
));
if
(
tcp_is_vegas
(
tp
)
&&
(
ext
&
(
1
<<
(
TCPDIAG_VEGASINFO
-
1
))))
vinfo
=
TCPDIAG_PUT
(
skb
,
TCPDIAG_VEGASINFO
,
sizeof
(
*
vinfo
));
}
}
r
->
tcpdiag_family
=
sk
->
sk_family
;
r
->
tcpdiag_family
=
sk
->
sk_family
;
r
->
tcpdiag_state
=
sk
->
sk_state
;
r
->
tcpdiag_state
=
sk
->
sk_state
;
...
@@ -196,6 +200,13 @@ static int tcpdiag_fill(struct sk_buff *skb, struct sock *sk,
...
@@ -196,6 +200,13 @@ static int tcpdiag_fill(struct sk_buff *skb, struct sock *sk,
info
->
tcpi_reordering
=
tp
->
reordering
;
info
->
tcpi_reordering
=
tp
->
reordering
;
}
}
if
(
vinfo
)
{
vinfo
->
tcpv_enabled
=
tp
->
vegas
.
doing_vegas_now
;
vinfo
->
tcpv_rttcnt
=
tp
->
vegas
.
cntRTT
;
vinfo
->
tcpv_rtt
=
tp
->
vegas
.
baseRTT
;
vinfo
->
tcpv_minrtt
=
tp
->
vegas
.
minRTT
;
}
nlh
->
nlmsg_len
=
skb
->
tail
-
b
;
nlh
->
nlmsg_len
=
skb
->
tail
-
b
;
return
skb
->
len
;
return
skb
->
len
;
...
...
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