@@ -182,7 +182,7 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
stack = (unsigned long *) (irq_stack_end[-1]);
irq_stack_end = NULL;
ops->stack(data, "EOI");
- continue;
+ goto out;
}
}
break;
@@ -192,6 +192,7 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
* This handles the process stack:
*/
bp = ops->walk_stack(tinfo, stack, bp, ops, data, NULL, &graph);
+out:
put_cpu();
}
EXPORT_SYMBOL(dump_trace);
@@ -231,8 +232,8 @@ show_stack_log_lvl(struct task_struct *task, struct pt_regs *regs,
pr_cont(" <EOI> ");
}
} else {
- if (((long) stack & (THREAD_SIZE-1)) == 0)
- break;
+ if (((long) stack & (THREAD_SIZE-1)) == 0)
+ break;
}
if (i && ((i % STACKSLOTS_PER_LINE) == 0))
pr_cont("\n");
@@ -6185,6 +6185,8 @@ static int rtl_rx(struct net_device *dev, struct rtl8169_private *tp, u32 budget
else
pkt_size = status & 0x00003fff;
+ WARN_ON(!(pkt_size > 0 && pkt_size <= ETH_FRAME_LEN));
+
/*
* The driver does not support incoming fragmented
* frames. They are seen as a symptom of over-mtu