* [PATCH] llc: fix skb size for test responses
@ 2008-02-24 19:07 Jim Westfall
2008-02-25 2:51 ` David Miller
2008-02-26 7:00 ` Joonwoo Park
0 siblings, 2 replies; 7+ messages in thread
From: Jim Westfall @ 2008-02-24 19:07 UTC (permalink / raw)
To: netdev, acme
Hi
The llc test command is used for a layer2 ping and contains a variable
length payload that we must include in the response. Use the size of the
received skb as the size of the skb we must allocate to hold the payload.
This resolved an skb_over_panic(), when trying to copy the payload into
what was a hard coded skb of size 128.
Signed-off-by: Jim Westfall <jwestfall@surrealistic.net>
diff -urp linux-2.6.24.2.org/net/llc/llc_s_ac.c linux-2.6.24.2/net/llc/llc_s_ac.c
--- linux-2.6.24.2.org/net/llc/llc_s_ac.c 2008-02-10 21:51:11.000000000 -0800
+++ linux-2.6.24.2/net/llc/llc_s_ac.c 2008-02-24 10:15:02.000000000 -0800
@@ -148,9 +148,18 @@ int llc_sap_action_send_test_r(struct ll
llc_pdu_decode_sa(skb, mac_da);
llc_pdu_decode_da(skb, mac_sa);
llc_pdu_decode_ssap(skb, &dsap);
- nskb = llc_alloc_frame(NULL, skb->dev);
+ nskb = alloc_skb(skb->end - skb->head, GFP_ATOMIC);
+
if (!nskb)
goto out;
+
+ skb_reset_mac_header(nskb);
+ skb_reserve(nskb, 50);
+ skb_reset_network_header(nskb);
+ skb_reset_transport_header(nskb);
+ nskb->protocol = htons(ETH_P_802_2);
+ nskb->dev = skb->dev;
+
llc_pdu_header_init(nskb, LLC_PDU_TYPE_U, sap->laddr.lsap, dsap,
LLC_PDU_RSP);
llc_pdu_init_as_test_rsp(nskb, skb);
diff -urp linux-2.6.24.2.org/net/llc/llc_station.c linux-2.6.24.2/net/llc/llc_station.c
--- linux-2.6.24.2.org/net/llc/llc_station.c 2008-02-10 21:51:11.000000000 -0800
+++ linux-2.6.24.2/net/llc/llc_station.c 2008-02-24 10:10:01.000000000 -0800
@@ -298,10 +298,18 @@ static int llc_station_ac_send_test_r(st
{
u8 mac_da[ETH_ALEN], dsap;
int rc = 1;
- struct sk_buff *nskb = llc_alloc_frame(NULL, skb->dev);
+ struct sk_buff *nskb = alloc_skb(skb->end - skb->head, GFP_ATOMIC);
if (!nskb)
goto out;
+
+ skb_reset_mac_header(nskb);
+ skb_reserve(nskb, 50);
+ skb_reset_network_header(nskb);
+ skb_reset_transport_header(nskb);
+ nskb->protocol = htons(ETH_P_802_2);
+ nskb->dev = skb->dev;
+
rc = 0;
llc_pdu_decode_sa(skb, mac_da);
llc_pdu_decode_ssap(skb, &dsap);
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] llc: fix skb size for test responses
2008-02-24 19:07 [PATCH] llc: fix skb size for test responses Jim Westfall
@ 2008-02-25 2:51 ` David Miller
2008-02-25 5:04 ` Jim Westfall
2008-02-26 7:00 ` Joonwoo Park
1 sibling, 1 reply; 7+ messages in thread
From: David Miller @ 2008-02-25 2:51 UTC (permalink / raw)
To: jwestfall; +Cc: netdev, acme
From: Jim Westfall <jwestfall@surrealistic.net>
Date: Sun, 24 Feb 2008 11:07:58 -0800
> Hi
>
> The llc test command is used for a layer2 ping and contains a variable
> length payload that we must include in the response. Use the size of the
> received skb as the size of the skb we must allocate to hold the payload.
>
> This resolved an skb_over_panic(), when trying to copy the payload into
> what was a hard coded skb of size 128.
>
> Signed-off-by: Jim Westfall <jwestfall@surrealistic.net>
Arnaldo, please review Jim's patch, thanks!
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] llc: fix skb size for test responses
2008-02-25 2:51 ` David Miller
@ 2008-02-25 5:04 ` Jim Westfall
2008-02-25 8:30 ` Joonwoo Park
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Jim Westfall @ 2008-02-25 5:04 UTC (permalink / raw)
To: David Miller; +Cc: netdev, acme
David Miller <davem@davemloft.net> wrote [02.24.08]:
> From: Jim Westfall <jwestfall@surrealistic.net>
> Date: Sun, 24 Feb 2008 11:07:58 -0800
>
> > Hi
> >
> > The llc test command is used for a layer2 ping and contains a variable
> > length payload that we must include in the response. Use the size of the
> > received skb as the size of the skb we must allocate to hold the payload.
> >
> > This resolved an skb_over_panic(), when trying to copy the payload into
> > what was a hard coded skb of size 128.
> >
> > Signed-off-by: Jim Westfall <jwestfall@surrealistic.net>
>
> Arnaldo, please review Jim's patch, thanks!
Our of curiosity did you all get my 2nd patch?
Subject: [PATCH] llc: dont trust payload size on test cmd
I sent it a few minutes after this one, but seems like it never made it
to the list. My local smtp shows it was delivered sucussfully to
vger.kernel.org.
thanks
jim
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] llc: fix skb size for test responses
2008-02-25 5:04 ` Jim Westfall
@ 2008-02-25 8:30 ` Joonwoo Park
2008-02-25 14:06 ` Arnaldo Carvalho de Melo
2008-02-25 19:47 ` David Miller
2 siblings, 0 replies; 7+ messages in thread
From: Joonwoo Park @ 2008-02-25 8:30 UTC (permalink / raw)
To: Jim Westfall; +Cc: David Miller, netdev, acme
2008/2/25, Jim Westfall <jwestfall@surrealistic.net>:
> David Miller <davem@davemloft.net> wrote [02.24.08]:
> > From: Jim Westfall <jwestfall@surrealistic.net>
> > Date: Sun, 24 Feb 2008 11:07:58 -0800
> >
> > > Hi
> > >
> > > The llc test command is used for a layer2 ping and contains a variable
> > > length payload that we must include in the response. Use the size of the
> > > received skb as the size of the skb we must allocate to hold the payload.
> > >
> > > This resolved an skb_over_panic(), when trying to copy the payload into
> > > what was a hard coded skb of size 128.
> > >
> > > Signed-off-by: Jim Westfall <jwestfall@surrealistic.net>
> >
> > Arnaldo, please review Jim's patch, thanks!
>
> Our of curiosity did you all get my 2nd patch?
>
> Subject: [PATCH] llc: dont trust payload size on test cmd
>
> I sent it a few minutes after this one, but seems like it never made it
> to the list. My local smtp shows it was delivered sucussfully to
> vger.kernel.org.
>
Jim,
Could you please send it again?
I cannot find your second patch on the list.
I have a pending patch for LLC as well, so I want to avoid conflict with yours.
Thanks,
Joonwoo
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] llc: fix skb size for test responses
2008-02-25 5:04 ` Jim Westfall
2008-02-25 8:30 ` Joonwoo Park
@ 2008-02-25 14:06 ` Arnaldo Carvalho de Melo
2008-02-25 19:47 ` David Miller
2 siblings, 0 replies; 7+ messages in thread
From: Arnaldo Carvalho de Melo @ 2008-02-25 14:06 UTC (permalink / raw)
To: Jim Westfall; +Cc: David Miller, netdev
Em Sun, Feb 24, 2008 at 09:04:21PM -0800, Jim Westfall escreveu:
> David Miller <davem@davemloft.net> wrote [02.24.08]:
> > From: Jim Westfall <jwestfall@surrealistic.net>
> > Date: Sun, 24 Feb 2008 11:07:58 -0800
> >
> > > Hi
> > >
> > > The llc test command is used for a layer2 ping and contains a variable
> > > length payload that we must include in the response. Use the size of the
> > > received skb as the size of the skb we must allocate to hold the payload.
> > >
> > > This resolved an skb_over_panic(), when trying to copy the payload into
> > > what was a hard coded skb of size 128.
> > >
> > > Signed-off-by: Jim Westfall <jwestfall@surrealistic.net>
> >
> > Arnaldo, please review Jim's patch, thanks!
>
> Our of curiosity did you all get my 2nd patch?
>
> Subject: [PATCH] llc: dont trust payload size on test cmd
>
> I sent it a few minutes after this one, but seems like it never made it
> to the list. My local smtp shows it was delivered sucussfully to
> vger.kernel.org.
I got it, but you made a mistake on the To: address:
From: Jim Westfall <jwestfall@surrealistic.net>
Subject: [PATCH] llc: dont trust payload size on test cmd
To: "To:netdev"@vger.kernel.org, acme@ghostprotocols.net
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] llc: fix skb size for test responses
2008-02-25 5:04 ` Jim Westfall
2008-02-25 8:30 ` Joonwoo Park
2008-02-25 14:06 ` Arnaldo Carvalho de Melo
@ 2008-02-25 19:47 ` David Miller
2 siblings, 0 replies; 7+ messages in thread
From: David Miller @ 2008-02-25 19:47 UTC (permalink / raw)
To: jwestfall; +Cc: netdev, acme
From: Jim Westfall <jwestfall@surrealistic.net>
Date: Sun, 24 Feb 2008 21:04:21 -0800
> I sent it a few minutes after this one, but seems like it never made it
> to the list. My local smtp shows it was delivered sucussfully to
> vger.kernel.org.
Usually this means some string in the email triggered our
Majordomo level regexp filters, they are listed at:
http://vger.kernel.org/majordomo-info.html#taboo
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] llc: fix skb size for test responses
2008-02-24 19:07 [PATCH] llc: fix skb size for test responses Jim Westfall
2008-02-25 2:51 ` David Miller
@ 2008-02-26 7:00 ` Joonwoo Park
1 sibling, 0 replies; 7+ messages in thread
From: Joonwoo Park @ 2008-02-26 7:00 UTC (permalink / raw)
To: Jim Westfall; +Cc: netdev, acme, David Miller
On Sun, Feb 24, 2008 at 11:07:58AM -0800, Jim Westfall wrote:
> Hi
>
> The llc test command is used for a layer2 ping and contains a variable
> length payload that we must include in the response. Use the size of the
> received skb as the size of the skb we must allocate to hold the payload.
>
> This resolved an skb_over_panic(), when trying to copy the payload into
> what was a hard coded skb of size 128.
>
> Signed-off-by: Jim Westfall <jwestfall@surrealistic.net>
>
> diff -urp linux-2.6.24.2.org/net/llc/llc_s_ac.c linux-2.6.24.2/net/llc/llc_s_ac.c
> --- linux-2.6.24.2.org/net/llc/llc_s_ac.c 2008-02-10 21:51:11.000000000 -0800
> +++ linux-2.6.24.2/net/llc/llc_s_ac.c 2008-02-24 10:15:02.000000000 -0800
> @@ -148,9 +148,18 @@ int llc_sap_action_send_test_r(struct ll
> llc_pdu_decode_sa(skb, mac_da);
> llc_pdu_decode_da(skb, mac_sa);
> llc_pdu_decode_ssap(skb, &dsap);
> - nskb = llc_alloc_frame(NULL, skb->dev);
> + nskb = alloc_skb(skb->end - skb->head, GFP_ATOMIC);
Jim,
Not enough.
Because of 'skb_reserve(nskb, 50)', we need additional 50bytes.
> +
> if (!nskb)
> goto out;
> +
> + skb_reset_mac_header(nskb);
> + skb_reserve(nskb, 50);
> + skb_reset_network_header(nskb);
> + skb_reset_transport_header(nskb);
> + nskb->protocol = htons(ETH_P_802_2);
> + nskb->dev = skb->dev;
> +
> llc_pdu_header_init(nskb, LLC_PDU_TYPE_U, sap->laddr.lsap, dsap,
> LLC_PDU_RSP);
> llc_pdu_init_as_test_rsp(nskb, skb);
> diff -urp linux-2.6.24.2.org/net/llc/llc_station.c linux-2.6.24.2/net/llc/llc_station.c
> --- linux-2.6.24.2.org/net/llc/llc_station.c 2008-02-10 21:51:11.000000000 -0800
> +++ linux-2.6.24.2/net/llc/llc_station.c 2008-02-24 10:10:01.000000000 -0800
> @@ -298,10 +298,18 @@ static int llc_station_ac_send_test_r(st
> {
> u8 mac_da[ETH_ALEN], dsap;
> int rc = 1;
> - struct sk_buff *nskb = llc_alloc_frame(NULL, skb->dev);
> + struct sk_buff *nskb = alloc_skb(skb->end - skb->head, GFP_ATOMIC);
Also here.
>
> if (!nskb)
> goto out;
> +
> + skb_reset_mac_header(nskb);
> + skb_reserve(nskb, 50);
> + skb_reset_network_header(nskb);
> + skb_reset_transport_header(nskb);
> + nskb->protocol = htons(ETH_P_802_2);
> + nskb->dev = skb->dev;
> +
> rc = 0;
> llc_pdu_decode_sa(skb, mac_da);
> llc_pdu_decode_ssap(skb, &dsap);
>
Thanks,
Joonwoo
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2008-02-26 7:00 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-02-24 19:07 [PATCH] llc: fix skb size for test responses Jim Westfall
2008-02-25 2:51 ` David Miller
2008-02-25 5:04 ` Jim Westfall
2008-02-25 8:30 ` Joonwoo Park
2008-02-25 14:06 ` Arnaldo Carvalho de Melo
2008-02-25 19:47 ` David Miller
2008-02-26 7:00 ` Joonwoo Park
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).