diff options
| author | Ben Hutchings <ben@decadent.org.uk> | 2012-08-12 22:50:43 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2012-08-14 19:51:40 -0400 |
| commit | f4f8720febf0d785a054fc09bde5e3ad09728a58 (patch) | |
| tree | f0f23afc9145ee25773ed9c8bffa0a706a46216a /net/llc | |
| parent | 6024935f5ff5f1646bce8404416318e5fd4a0c4a (diff) | |
llc2: Call llc_station_exit() on llc2_init() failure path
Otherwise the station packet handler will remain registered even though
the module is unloaded.
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/llc')
| -rw-r--r-- | net/llc/af_llc.c | 5 | ||||
| -rw-r--r-- | net/llc/llc_station.c | 2 |
2 files changed, 4 insertions, 3 deletions
diff --git a/net/llc/af_llc.c b/net/llc/af_llc.c index f6fe4d40050..8c2919ca36f 100644 --- a/net/llc/af_llc.c +++ b/net/llc/af_llc.c | |||
| @@ -1206,7 +1206,7 @@ static int __init llc2_init(void) | |||
| 1206 | rc = llc_proc_init(); | 1206 | rc = llc_proc_init(); |
| 1207 | if (rc != 0) { | 1207 | if (rc != 0) { |
| 1208 | printk(llc_proc_err_msg); | 1208 | printk(llc_proc_err_msg); |
| 1209 | goto out_unregister_llc_proto; | 1209 | goto out_station; |
| 1210 | } | 1210 | } |
| 1211 | rc = llc_sysctl_init(); | 1211 | rc = llc_sysctl_init(); |
| 1212 | if (rc) { | 1212 | if (rc) { |
| @@ -1226,7 +1226,8 @@ out_sysctl: | |||
| 1226 | llc_sysctl_exit(); | 1226 | llc_sysctl_exit(); |
| 1227 | out_proc: | 1227 | out_proc: |
| 1228 | llc_proc_exit(); | 1228 | llc_proc_exit(); |
| 1229 | out_unregister_llc_proto: | 1229 | out_station: |
| 1230 | llc_station_exit(); | ||
| 1230 | proto_unregister(&llc_proto); | 1231 | proto_unregister(&llc_proto); |
| 1231 | goto out; | 1232 | goto out; |
| 1232 | } | 1233 | } |
diff --git a/net/llc/llc_station.c b/net/llc/llc_station.c index 45ddbb93c5d..bba5184fafd 100644 --- a/net/llc/llc_station.c +++ b/net/llc/llc_station.c | |||
| @@ -701,7 +701,7 @@ void __init llc_station_init(void) | |||
| 701 | llc_main_station.state = LLC_STATION_STATE_UP; | 701 | llc_main_station.state = LLC_STATION_STATE_UP; |
| 702 | } | 702 | } |
| 703 | 703 | ||
| 704 | void __exit llc_station_exit(void) | 704 | void llc_station_exit(void) |
| 705 | { | 705 | { |
| 706 | llc_set_station_handler(NULL); | 706 | llc_set_station_handler(NULL); |
| 707 | } | 707 | } |
