aboutsummaryrefslogtreecommitdiffstats
path: root/net/llc/llc_station.c
diff options
context:
space:
mode:
authorArnaldo Carvalho de Melo <acme@mandriva.com>2005-09-22 02:27:56 -0400
committerArnaldo Carvalho de Melo <acme@mandriva.com>2005-09-22 02:27:56 -0400
commit1d67e6501b8dba54ef8dcabebe2ad049b8ad0d67 (patch)
tree0913ff017c81e0c0b4d8a0a790d99619906ddeaa /net/llc/llc_station.c
parentefb0372bbaf5b829ff8c39db372779928af542a7 (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.c8
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)
249static int llc_station_ac_send_null_dsap_xid_c(struct sk_buff *skb) 249static 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);