summaryrefslogtreecommitdiffstats
path: root/net/802/llc_macinit.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/802/llc_macinit.c')
-rw-r--r--net/802/llc_macinit.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/net/802/llc_macinit.c b/net/802/llc_macinit.c
index c72be3d4d..198230c36 100644
--- a/net/802/llc_macinit.c
+++ b/net/802/llc_macinit.c
@@ -36,15 +36,14 @@
/*
* All incoming frames pass thru mac_data_indicate().
- * Here an llc structure is associated with an skb depending on the source
- * MAC address in the pdu.
+ * On entry the llc structure related to the frame is passed as parameter.
* The received sk_buffs with pdus other than I_CMD and I_RSP
* are freed by mac_data_indicate() after processing,
* the I pdu buffers are freed by the cl2llc client when it no longer needs
* the skb.
*/
-int llc_mac_data_indicate(llcptr lp, struct sk_buff *skb, struct device *dev, struct packet_type *pt)
+int llc_mac_data_indicate(llcptr lp, struct sk_buff *skb)
{
int ll; /* logical length == 802.3 length field */
unsigned char p_flag;
@@ -142,7 +141,7 @@ int llc_mac_data_indicate(llcptr lp, struct sk_buff *skb, struct device *dev, st
if(lp->llc_callbacks)
{
- lp->llc_event(lp);
+ if ( lp->llc_event != NULL ) lp->llc_event(lp);
lp->llc_callbacks=0;
}
return 0;
@@ -173,8 +172,7 @@ int register_cl2llc_client(llcptr lp, const char *device, void (*event)(llcptr),
lp->timer_interval[BUSY_TIMER] = HZ*2;
lp->local_sap = ssap;
lp->llc_event = event;
- lp->remote_mac_len = lp->dev->addr_len;
- memcpy(lp->remote_mac, rmac, lp->remote_mac_len);
+ memcpy(lp->remote_mac, rmac, sizeof(lp->remote_mac));
lp->state = 0;
lp->llc_mode = MODE_ADM;
lp->remote_sap = dsap;
@@ -199,7 +197,8 @@ EXPORT_SYMBOL(llc_data_request);
EXPORT_SYMBOL(llc_unit_data_request);
EXPORT_SYMBOL(llc_test_request);
EXPORT_SYMBOL(llc_xid_request);
-
+EXPORT_SYMBOL(llc_mac_data_indicate);
+EXPORT_SYMBOL(llc_cancel_timers);
#define ALL_TYPES_8022 0