diff options
author | Arnaldo Carvalho de Melo <acme@mandriva.com> | 2005-09-22 02:27:56 -0400 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@mandriva.com> | 2005-09-22 02:27:56 -0400 |
commit | 1d67e6501b8dba54ef8dcabebe2ad049b8ad0d67 (patch) | |
tree | 0913ff017c81e0c0b4d8a0a790d99619906ddeaa /net/llc/llc_station.c | |
parent | efb0372bbaf5b829ff8c39db372779928af542a7 (diff) |
[LLC]: Make llc_frame_alloc take a net_device as an argument
So as to set the newly created sk_buff ->dev member with it, that way we stop
using dev_base->next, that is the wrong thing to do, as there may well be
several interfaces being used with LLC. This was not such a big problem after
all as most of the users of llc_alloc_frame were setting the correct dev, but
this way code is reduced.
This also fixes another bug in llc_station_ac_send_null_dsap_xid_c, that was
not setting the skb->dev field.
Signed-off-by: Jochen Friedrich <jochen@scram.de>
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
Diffstat (limited to 'net/llc/llc_station.c')
-rw-r--r-- | net/llc/llc_station.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/net/llc/llc_station.c b/net/llc/llc_station.c index 8fe48a24bad5..85a7ac276141 100644 --- a/net/llc/llc_station.c +++ b/net/llc/llc_station.c | |||
@@ -249,7 +249,7 @@ static int llc_station_ac_inc_xid_r_cnt_by_1(struct sk_buff *skb) | |||
249 | static int llc_station_ac_send_null_dsap_xid_c(struct sk_buff *skb) | 249 | static int llc_station_ac_send_null_dsap_xid_c(struct sk_buff *skb) |
250 | { | 250 | { |
251 | int rc = 1; | 251 | int rc = 1; |
252 | struct sk_buff *nskb = llc_alloc_frame(); | 252 | struct sk_buff *nskb = llc_alloc_frame(skb->dev); |
253 | 253 | ||
254 | if (!nskb) | 254 | if (!nskb) |
255 | goto out; | 255 | goto out; |
@@ -270,12 +270,11 @@ static int llc_station_ac_send_xid_r(struct sk_buff *skb) | |||
270 | { | 270 | { |
271 | u8 mac_da[ETH_ALEN], dsap; | 271 | u8 mac_da[ETH_ALEN], dsap; |
272 | int rc = 1; | 272 | int rc = 1; |
273 | struct sk_buff* nskb = llc_alloc_frame(); | 273 | struct sk_buff* nskb = llc_alloc_frame(skb->dev); |
274 | 274 | ||
275 | if (!nskb) | 275 | if (!nskb) |
276 | goto out; | 276 | goto out; |
277 | rc = 0; | 277 | rc = 0; |
278 | nskb->dev = skb->dev; | ||
279 | llc_pdu_decode_sa(skb, mac_da); | 278 | llc_pdu_decode_sa(skb, mac_da); |
280 | llc_pdu_decode_ssap(skb, &dsap); | 279 | llc_pdu_decode_ssap(skb, &dsap); |
281 | llc_pdu_header_init(nskb, LLC_PDU_TYPE_U, 0, dsap, LLC_PDU_RSP); | 280 | llc_pdu_header_init(nskb, LLC_PDU_TYPE_U, 0, dsap, LLC_PDU_RSP); |
@@ -295,12 +294,11 @@ static int llc_station_ac_send_test_r(struct sk_buff *skb) | |||
295 | { | 294 | { |
296 | u8 mac_da[ETH_ALEN], dsap; | 295 | u8 mac_da[ETH_ALEN], dsap; |
297 | int rc = 1; | 296 | int rc = 1; |
298 | struct sk_buff *nskb = llc_alloc_frame(); | 297 | struct sk_buff *nskb = llc_alloc_frame(skb->dev); |
299 | 298 | ||
300 | if (!nskb) | 299 | if (!nskb) |
301 | goto out; | 300 | goto out; |
302 | rc = 0; | 301 | rc = 0; |
303 | nskb->dev = skb->dev; | ||
304 | llc_pdu_decode_sa(skb, mac_da); | 302 | llc_pdu_decode_sa(skb, mac_da); |
305 | llc_pdu_decode_ssap(skb, &dsap); | 303 | llc_pdu_decode_ssap(skb, &dsap); |
306 | llc_pdu_header_init(nskb, LLC_PDU_TYPE_U, 0, dsap, LLC_PDU_RSP); | 304 | llc_pdu_header_init(nskb, LLC_PDU_TYPE_U, 0, dsap, LLC_PDU_RSP); |