There was a bug in my commit
c978e7bb77dfd2cd3d1f547fa4e395cfe47f02b2
("hisax: Fix unchecked alloc_skb() return.")
One of the l2->flag checks is wrong.
Even worse it turns out I'm duplicating an existing function,
so use that instead.
Reported-by: Milton Miller <miltonm@bga.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-static int l2_hdr_space_needed(struct Layer2 *l2)
-{
- int len = test_bit(FLG_LAPD, &l2->flag) ? 2 : 1;
-
- return len + (test_bit(FLG_LAPD, &l2->flag) ? 2 : 1);
-}
-
static void
l2_pull_iqueue(struct FsmInst *fi, int event, void *arg)
{
static void
l2_pull_iqueue(struct FsmInst *fi, int event, void *arg)
{
- hdr_space_needed = l2_hdr_space_needed(l2);
+ hdr_space_needed = l2headersize(l2, 0);
if (hdr_space_needed > skb_headroom(skb)) {
struct sk_buff *orig_skb = skb;
if (hdr_space_needed > skb_headroom(skb)) {
struct sk_buff *orig_skb = skb;