git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
netdev: simple_tx_hash shouldn't hash inside fragments
[pandora-kernel.git]
/
net
/
core
/
neighbour.c
diff --git
a/net/core/neighbour.c
b/net/core/neighbour.c
index
f62c8af
..
9d92e41
100644
(file)
--- a/
net/core/neighbour.c
+++ b/
net/core/neighbour.c
@@
-2281,6
+2281,7
@@
static struct neighbour *neigh_get_idx(struct seq_file *seq, loff_t *pos)
struct neighbour *n = neigh_get_first(seq);
if (n) {
struct neighbour *n = neigh_get_first(seq);
if (n) {
+ --(*pos);
while (*pos) {
n = neigh_get_next(seq, n, pos);
if (!n)
while (*pos) {
n = neigh_get_next(seq, n, pos);
if (!n)
@@
-2341,6
+2342,7
@@
static struct pneigh_entry *pneigh_get_idx(struct seq_file *seq, loff_t *pos)
struct pneigh_entry *pn = pneigh_get_first(seq);
if (pn) {
struct pneigh_entry *pn = pneigh_get_first(seq);
if (pn) {
+ --(*pos);
while (*pos) {
pn = pneigh_get_next(seq, pn, pos);
if (!pn)
while (*pos) {
pn = pneigh_get_next(seq, pn, pos);
if (!pn)
@@
-2354,10
+2356,11
@@
static void *neigh_get_idx_any(struct seq_file *seq, loff_t *pos)
{
struct neigh_seq_state *state = seq->private;
void *rc;
{
struct neigh_seq_state *state = seq->private;
void *rc;
+ loff_t idxpos = *pos;
- rc = neigh_get_idx(seq, pos);
+ rc = neigh_get_idx(seq,
&idx
pos);
if (!rc && !(state->flags & NEIGH_SEQ_NEIGH_ONLY))
if (!rc && !(state->flags & NEIGH_SEQ_NEIGH_ONLY))
- rc = pneigh_get_idx(seq, pos);
+ rc = pneigh_get_idx(seq,
&idx
pos);
return rc;
}
return rc;
}
@@
-2366,7
+2369,6
@@
void *neigh_seq_start(struct seq_file *seq, loff_t *pos, struct neigh_table *tbl
__acquires(tbl->lock)
{
struct neigh_seq_state *state = seq->private;
__acquires(tbl->lock)
{
struct neigh_seq_state *state = seq->private;
- loff_t pos_minus_one;
state->tbl = tbl;
state->bucket = 0;
state->tbl = tbl;
state->bucket = 0;
@@
-2374,8
+2376,7
@@
void *neigh_seq_start(struct seq_file *seq, loff_t *pos, struct neigh_table *tbl
read_lock_bh(&tbl->lock);
read_lock_bh(&tbl->lock);
- pos_minus_one = *pos - 1;
- return *pos ? neigh_get_idx_any(seq, &pos_minus_one) : SEQ_START_TOKEN;
+ return *pos ? neigh_get_idx_any(seq, pos) : SEQ_START_TOKEN;
}
EXPORT_SYMBOL(neigh_seq_start);
}
EXPORT_SYMBOL(neigh_seq_start);
@@
-2385,7
+2386,7
@@
void *neigh_seq_next(struct seq_file *seq, void *v, loff_t *pos)
void *rc;
if (v == SEQ_START_TOKEN) {
void *rc;
if (v == SEQ_START_TOKEN) {
- rc = neigh_get_
idx(seq, pos
);
+ rc = neigh_get_
first(seq
);
goto out;
}
goto out;
}