| version 1.93.2.7, 2001/03/27 15:32:31 |
version 1.93.2.8, 2001/04/21 17:46:48 |
| Line 212 struct pfil_head inet_pfil_hook; |
|
| Line 212 struct pfil_head inet_pfil_hook; |
|
| struct ipqhead ipq; |
struct ipqhead ipq; |
| int ipq_locked; |
int ipq_locked; |
| int ip_nfragpackets = 0; |
int ip_nfragpackets = 0; |
| int ip_maxfragpackets = -1; |
int ip_maxfragpackets = 200; |
| |
|
| static __inline int ipq_lock_try __P((void)); |
static __inline int ipq_lock_try __P((void)); |
| static __inline void ipq_unlock __P((void)); |
static __inline void ipq_unlock __P((void)); |
|
|
| { |
{ |
| int s; |
int s; |
| |
|
| s = splimp(); |
/* |
| |
* Use splvm() -- we're bloking things that would cause |
| |
* mbuf allocation. |
| |
*/ |
| |
s = splvm(); |
| if (ipq_locked) { |
if (ipq_locked) { |
| splx(s); |
splx(s); |
| return (0); |
return (0); |
|
|
| { |
{ |
| int s; |
int s; |
| |
|
| s = splimp(); |
s = splvm(); |
| ipq_locked = 0; |
ipq_locked = 0; |
| splx(s); |
splx(s); |
| } |
} |
|
|
| struct mbuf *m; |
struct mbuf *m; |
| |
|
| while (1) { |
while (1) { |
| s = splimp(); |
s = splnet(); |
| IF_DEQUEUE(&ipintrq, m); |
IF_DEQUEUE(&ipintrq, m); |
| splx(s); |
splx(s); |
| if (m == 0) |
if (m == 0) |