36
36
#include <linux/slab.h>
37
37
#include <net/net_namespace.h>
38
38
39
-
40
- static const char * version = "HDLC support module revision 1.22" ;
39
+ static const char * version = "HDLC support module revision 1.22" ;
41
40
42
41
#undef DEBUG_LINK
43
42
@@ -74,25 +73,24 @@ netdev_tx_t hdlc_start_xmit(struct sk_buff *skb, struct net_device *dev)
74
73
75
74
return hdlc -> xmit (skb , dev ); /* call hardware driver directly */
76
75
}
76
+ EXPORT_SYMBOL (hdlc_start_xmit );
77
77
78
78
static inline void hdlc_proto_start (struct net_device * dev )
79
79
{
80
80
hdlc_device * hdlc = dev_to_hdlc (dev );
81
+
81
82
if (hdlc -> proto -> start )
82
83
hdlc -> proto -> start (dev );
83
84
}
84
85
85
-
86
-
87
86
static inline void hdlc_proto_stop (struct net_device * dev )
88
87
{
89
88
hdlc_device * hdlc = dev_to_hdlc (dev );
89
+
90
90
if (hdlc -> proto -> stop )
91
91
hdlc -> proto -> stop (dev );
92
92
}
93
93
94
-
95
-
96
94
static int hdlc_device_event (struct notifier_block * this , unsigned long event ,
97
95
void * ptr )
98
96
{
@@ -141,8 +139,6 @@ static int hdlc_device_event(struct notifier_block *this, unsigned long event,
141
139
return NOTIFY_DONE ;
142
140
}
143
141
144
-
145
-
146
142
/* Must be called by hardware driver when HDLC device is being opened */
147
143
int hdlc_open (struct net_device * dev )
148
144
{
@@ -152,11 +148,12 @@ int hdlc_open(struct net_device *dev)
152
148
hdlc -> carrier , hdlc -> open );
153
149
#endif
154
150
155
- if (hdlc -> proto == NULL )
151
+ if (! hdlc -> proto )
156
152
return - ENOSYS ; /* no protocol attached */
157
153
158
154
if (hdlc -> proto -> open ) {
159
155
int result = hdlc -> proto -> open (dev );
156
+
160
157
if (result )
161
158
return result ;
162
159
}
@@ -166,16 +163,16 @@ int hdlc_open(struct net_device *dev)
166
163
if (hdlc -> carrier ) {
167
164
netdev_info (dev , "Carrier detected\n" );
168
165
hdlc_proto_start (dev );
169
- } else
166
+ } else {
170
167
netdev_info (dev , "No carrier\n" );
168
+ }
171
169
172
170
hdlc -> open = 1 ;
173
171
174
172
spin_unlock_irq (& hdlc -> state_lock );
175
173
return 0 ;
176
174
}
177
-
178
-
175
+ EXPORT_SYMBOL (hdlc_open );
179
176
180
177
/* Must be called by hardware driver when HDLC device is being closed */
181
178
void hdlc_close (struct net_device * dev )
@@ -197,8 +194,7 @@ void hdlc_close(struct net_device *dev)
197
194
if (hdlc -> proto -> close )
198
195
hdlc -> proto -> close (dev );
199
196
}
200
-
201
-
197
+ EXPORT_SYMBOL (hdlc_close );
202
198
203
199
int hdlc_ioctl (struct net_device * dev , struct ifreq * ifr , int cmd )
204
200
{
@@ -217,12 +213,14 @@ int hdlc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
217
213
/* Not handled by currently attached protocol (if any) */
218
214
219
215
while (proto ) {
220
- if ((result = proto -> ioctl (dev , ifr )) != - EINVAL )
216
+ result = proto -> ioctl (dev , ifr );
217
+ if (result != - EINVAL )
221
218
return result ;
222
219
proto = proto -> next ;
223
220
}
224
221
return - EINVAL ;
225
222
}
223
+ EXPORT_SYMBOL (hdlc_ioctl );
226
224
227
225
static const struct header_ops hdlc_null_ops ;
228
226
@@ -256,12 +254,14 @@ static void hdlc_setup(struct net_device *dev)
256
254
struct net_device * alloc_hdlcdev (void * priv )
257
255
{
258
256
struct net_device * dev ;
257
+
259
258
dev = alloc_netdev (sizeof (struct hdlc_device ), "hdlc%d" ,
260
259
NET_NAME_UNKNOWN , hdlc_setup );
261
260
if (dev )
262
261
dev_to_hdlc (dev )-> priv = priv ;
263
262
return dev ;
264
263
}
264
+ EXPORT_SYMBOL (alloc_hdlcdev );
265
265
266
266
void unregister_hdlc_device (struct net_device * dev )
267
267
{
@@ -270,8 +270,7 @@ void unregister_hdlc_device(struct net_device *dev)
270
270
unregister_netdevice (dev );
271
271
rtnl_unlock ();
272
272
}
273
-
274
-
273
+ EXPORT_SYMBOL (unregister_hdlc_device );
275
274
276
275
int attach_hdlc_protocol (struct net_device * dev , struct hdlc_proto * proto ,
277
276
size_t size )
@@ -287,7 +286,7 @@ int attach_hdlc_protocol(struct net_device *dev, struct hdlc_proto *proto,
287
286
288
287
if (size ) {
289
288
dev_to_hdlc (dev )-> state = kmalloc (size , GFP_KERNEL );
290
- if (dev_to_hdlc (dev )-> state == NULL ) {
289
+ if (! dev_to_hdlc (dev )-> state ) {
291
290
module_put (proto -> module );
292
291
return - ENOBUFS ;
293
292
}
@@ -296,7 +295,7 @@ int attach_hdlc_protocol(struct net_device *dev, struct hdlc_proto *proto,
296
295
297
296
return 0 ;
298
297
}
299
-
298
+ EXPORT_SYMBOL ( attach_hdlc_protocol );
300
299
301
300
int detach_hdlc_protocol (struct net_device * dev )
302
301
{
@@ -322,7 +321,7 @@ int detach_hdlc_protocol(struct net_device *dev)
322
321
323
322
return 0 ;
324
323
}
325
-
324
+ EXPORT_SYMBOL ( detach_hdlc_protocol );
326
325
327
326
void register_hdlc_protocol (struct hdlc_proto * proto )
328
327
{
@@ -331,7 +330,7 @@ void register_hdlc_protocol(struct hdlc_proto *proto)
331
330
first_proto = proto ;
332
331
rtnl_unlock ();
333
332
}
334
-
333
+ EXPORT_SYMBOL ( register_hdlc_protocol );
335
334
336
335
void unregister_hdlc_protocol (struct hdlc_proto * proto )
337
336
{
@@ -346,54 +345,38 @@ void unregister_hdlc_protocol(struct hdlc_proto *proto)
346
345
* p = proto -> next ;
347
346
rtnl_unlock ();
348
347
}
349
-
350
-
348
+ EXPORT_SYMBOL (unregister_hdlc_protocol );
351
349
352
350
MODULE_AUTHOR (
"Krzysztof Halasa <[email protected] >" );
353
351
MODULE_DESCRIPTION ("HDLC support module" );
354
352
MODULE_LICENSE ("GPL v2" );
355
353
356
- EXPORT_SYMBOL (hdlc_start_xmit );
357
- EXPORT_SYMBOL (hdlc_open );
358
- EXPORT_SYMBOL (hdlc_close );
359
- EXPORT_SYMBOL (hdlc_ioctl );
360
- EXPORT_SYMBOL (alloc_hdlcdev );
361
- EXPORT_SYMBOL (unregister_hdlc_device );
362
- EXPORT_SYMBOL (register_hdlc_protocol );
363
- EXPORT_SYMBOL (unregister_hdlc_protocol );
364
- EXPORT_SYMBOL (attach_hdlc_protocol );
365
- EXPORT_SYMBOL (detach_hdlc_protocol );
366
-
367
354
static struct packet_type hdlc_packet_type __read_mostly = {
368
355
.type = cpu_to_be16 (ETH_P_HDLC ),
369
356
.func = hdlc_rcv ,
370
357
};
371
358
372
-
373
359
static struct notifier_block hdlc_notifier = {
374
360
.notifier_call = hdlc_device_event ,
375
361
};
376
362
377
-
378
363
static int __init hdlc_module_init (void )
379
364
{
380
365
int result ;
381
366
382
367
pr_info ("%s\n" , version );
383
- if ((result = register_netdevice_notifier (& hdlc_notifier )) != 0 )
368
+ result = register_netdevice_notifier (& hdlc_notifier );
369
+ if (result )
384
370
return result ;
385
371
dev_add_pack (& hdlc_packet_type );
386
372
return 0 ;
387
373
}
388
374
389
-
390
-
391
375
static void __exit hdlc_module_exit (void )
392
376
{
393
377
dev_remove_pack (& hdlc_packet_type );
394
378
unregister_netdevice_notifier (& hdlc_notifier );
395
379
}
396
380
397
-
398
381
module_init (hdlc_module_init );
399
382
module_exit (hdlc_module_exit );
0 commit comments