Merge gregkh@master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
This commit is contained in:
commit
1bad998a27
11
lib/ts_bm.c
11
lib/ts_bm.c
|
@ -111,15 +111,14 @@ static int subpattern(u8 *pattern, int i, int j, int g)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void compute_prefix_tbl(struct ts_bm *bm, const u8 *pattern,
|
static void compute_prefix_tbl(struct ts_bm *bm)
|
||||||
unsigned int len)
|
|
||||||
{
|
{
|
||||||
int i, j, g;
|
int i, j, g;
|
||||||
|
|
||||||
for (i = 0; i < ASIZE; i++)
|
for (i = 0; i < ASIZE; i++)
|
||||||
bm->bad_shift[i] = len;
|
bm->bad_shift[i] = bm->patlen;
|
||||||
for (i = 0; i < len - 1; i++)
|
for (i = 0; i < bm->patlen - 1; i++)
|
||||||
bm->bad_shift[pattern[i]] = len - 1 - i;
|
bm->bad_shift[bm->pattern[i]] = bm->patlen - 1 - i;
|
||||||
|
|
||||||
/* Compute the good shift array, used to match reocurrences
|
/* Compute the good shift array, used to match reocurrences
|
||||||
* of a subpattern */
|
* of a subpattern */
|
||||||
|
@ -150,8 +149,8 @@ static struct ts_config *bm_init(const void *pattern, unsigned int len,
|
||||||
bm = ts_config_priv(conf);
|
bm = ts_config_priv(conf);
|
||||||
bm->patlen = len;
|
bm->patlen = len;
|
||||||
bm->pattern = (u8 *) bm->good_shift + prefix_tbl_len;
|
bm->pattern = (u8 *) bm->good_shift + prefix_tbl_len;
|
||||||
compute_prefix_tbl(bm, pattern, len);
|
|
||||||
memcpy(bm->pattern, pattern, len);
|
memcpy(bm->pattern, pattern, len);
|
||||||
|
compute_prefix_tbl(bm);
|
||||||
|
|
||||||
return conf;
|
return conf;
|
||||||
}
|
}
|
||||||
|
|
|
@ -236,7 +236,7 @@ unsigned int arpt_do_table(struct sk_buff **pskb,
|
||||||
struct arpt_entry *e, *back;
|
struct arpt_entry *e, *back;
|
||||||
const char *indev, *outdev;
|
const char *indev, *outdev;
|
||||||
void *table_base;
|
void *table_base;
|
||||||
struct xt_table_info *private = table->private;
|
struct xt_table_info *private;
|
||||||
|
|
||||||
/* ARP header, plus 2 device addresses, plus 2 IP addresses. */
|
/* ARP header, plus 2 device addresses, plus 2 IP addresses. */
|
||||||
if (!pskb_may_pull((*pskb), (sizeof(struct arphdr) +
|
if (!pskb_may_pull((*pskb), (sizeof(struct arphdr) +
|
||||||
|
@ -248,6 +248,7 @@ unsigned int arpt_do_table(struct sk_buff **pskb,
|
||||||
outdev = out ? out->name : nulldevname;
|
outdev = out ? out->name : nulldevname;
|
||||||
|
|
||||||
read_lock_bh(&table->lock);
|
read_lock_bh(&table->lock);
|
||||||
|
private = table->private;
|
||||||
table_base = (void *)private->entries[smp_processor_id()];
|
table_base = (void *)private->entries[smp_processor_id()];
|
||||||
e = get_entry(table_base, private->hook_entry[hook]);
|
e = get_entry(table_base, private->hook_entry[hook]);
|
||||||
back = get_entry(table_base, private->underflow[hook]);
|
back = get_entry(table_base, private->underflow[hook]);
|
||||||
|
|
|
@ -201,6 +201,7 @@ void tcp_select_initial_window(int __space, __u32 mss,
|
||||||
* See RFC1323 for an explanation of the limit to 14
|
* See RFC1323 for an explanation of the limit to 14
|
||||||
*/
|
*/
|
||||||
space = max_t(u32, sysctl_tcp_rmem[2], sysctl_rmem_max);
|
space = max_t(u32, sysctl_tcp_rmem[2], sysctl_rmem_max);
|
||||||
|
space = min_t(u32, space, *window_clamp);
|
||||||
while (space > 65535 && (*rcv_wscale) < 14) {
|
while (space > 65535 && (*rcv_wscale) < 14) {
|
||||||
space >>= 1;
|
space >>= 1;
|
||||||
(*rcv_wscale)++;
|
(*rcv_wscale)++;
|
||||||
|
|
Loading…
Reference in New Issue