Commit 93e6d5ab9969a9200752658677eafd96772302f0
Committed by
James Bottomley
1 parent
8866a5d907
Exists in
master
and in
7 other branches
[SCSI] libfc: Move libfc_init and libfc_exit to fc_libfc.c
These routines are for the libfc kernel module and should be in the libfc .c file. Moving the libfc __init routine into fc_libfc.c caused the creation of the fc_setup_fcp() and fc_destroy_fcp() routines so that scsi_pkt_cachep was not exposed outside of fc_fcp.c. Signed-off-by: Robert Love <robert.w.love@intel.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Showing 3 changed files with 64 additions and 40 deletions Side-by-side Diff
drivers/scsi/libfc/fc_fcp.c
... | ... | @@ -41,7 +41,7 @@ |
41 | 41 | |
42 | 42 | #include "fc_libfc.h" |
43 | 43 | |
44 | -static struct kmem_cache *scsi_pkt_cachep; | |
44 | +struct kmem_cache *scsi_pkt_cachep; | |
45 | 45 | |
46 | 46 | /* SRB state definitions */ |
47 | 47 | #define FC_SRB_FREE 0 /* cmd is free */ |
... | ... | @@ -2072,6 +2072,28 @@ |
2072 | 2072 | } |
2073 | 2073 | EXPORT_SYMBOL(fc_fcp_destroy); |
2074 | 2074 | |
2075 | +int fc_setup_fcp() | |
2076 | +{ | |
2077 | + int rc = 0; | |
2078 | + | |
2079 | + scsi_pkt_cachep = kmem_cache_create("libfc_fcp_pkt", | |
2080 | + sizeof(struct fc_fcp_pkt), | |
2081 | + 0, SLAB_HWCACHE_ALIGN, NULL); | |
2082 | + if (!scsi_pkt_cachep) { | |
2083 | + printk(KERN_ERR "libfc: Unable to allocate SRB cache, " | |
2084 | + "module load failed!"); | |
2085 | + rc = -ENOMEM; | |
2086 | + } | |
2087 | + | |
2088 | + return rc; | |
2089 | +} | |
2090 | + | |
2091 | +void fc_destroy_fcp() | |
2092 | +{ | |
2093 | + if (scsi_pkt_cachep) | |
2094 | + kmem_cache_destroy(scsi_pkt_cachep); | |
2095 | +} | |
2096 | + | |
2075 | 2097 | int fc_fcp_init(struct fc_lport *lp) |
2076 | 2098 | { |
2077 | 2099 | int rc; |
... | ... | @@ -2104,43 +2126,4 @@ |
2104 | 2126 | return rc; |
2105 | 2127 | } |
2106 | 2128 | EXPORT_SYMBOL(fc_fcp_init); |
2107 | - | |
2108 | -static int __init libfc_init(void) | |
2109 | -{ | |
2110 | - int rc; | |
2111 | - | |
2112 | - scsi_pkt_cachep = kmem_cache_create("libfc_fcp_pkt", | |
2113 | - sizeof(struct fc_fcp_pkt), | |
2114 | - 0, SLAB_HWCACHE_ALIGN, NULL); | |
2115 | - if (scsi_pkt_cachep == NULL) { | |
2116 | - printk(KERN_ERR "libfc: Unable to allocate SRB cache, " | |
2117 | - "module load failed!"); | |
2118 | - return -ENOMEM; | |
2119 | - } | |
2120 | - | |
2121 | - rc = fc_setup_exch_mgr(); | |
2122 | - if (rc) | |
2123 | - goto destroy_pkt_cache; | |
2124 | - | |
2125 | - rc = fc_setup_rport(); | |
2126 | - if (rc) | |
2127 | - goto destroy_em; | |
2128 | - | |
2129 | - return rc; | |
2130 | -destroy_em: | |
2131 | - fc_destroy_exch_mgr(); | |
2132 | -destroy_pkt_cache: | |
2133 | - kmem_cache_destroy(scsi_pkt_cachep); | |
2134 | - return rc; | |
2135 | -} | |
2136 | - | |
2137 | -static void __exit libfc_exit(void) | |
2138 | -{ | |
2139 | - kmem_cache_destroy(scsi_pkt_cachep); | |
2140 | - fc_destroy_exch_mgr(); | |
2141 | - fc_destroy_rport(); | |
2142 | -} | |
2143 | - | |
2144 | -module_init(libfc_init); | |
2145 | -module_exit(libfc_exit); |
drivers/scsi/libfc/fc_libfc.c
... | ... | @@ -33,4 +33,43 @@ |
33 | 33 | unsigned int fc_debug_logging; |
34 | 34 | module_param_named(debug_logging, fc_debug_logging, int, S_IRUGO|S_IWUSR); |
35 | 35 | MODULE_PARM_DESC(debug_logging, "a bit mask of logging levels"); |
36 | + | |
37 | +/** | |
38 | + * libfc_init() - Initialize libfc.ko | |
39 | + */ | |
40 | +static int __init libfc_init(void) | |
41 | +{ | |
42 | + int rc = 0; | |
43 | + | |
44 | + rc = fc_setup_fcp(); | |
45 | + if (rc) | |
46 | + return rc; | |
47 | + | |
48 | + rc = fc_setup_exch_mgr(); | |
49 | + if (rc) | |
50 | + goto destroy_pkt_cache; | |
51 | + | |
52 | + rc = fc_setup_rport(); | |
53 | + if (rc) | |
54 | + goto destroy_em; | |
55 | + | |
56 | + return rc; | |
57 | +destroy_em: | |
58 | + fc_destroy_exch_mgr(); | |
59 | +destroy_pkt_cache: | |
60 | + fc_destroy_fcp(); | |
61 | + return rc; | |
62 | +} | |
63 | +module_init(libfc_init); | |
64 | + | |
65 | +/** | |
66 | + * libfc_exit() - Tear down libfc.ko | |
67 | + */ | |
68 | +static void __exit libfc_exit(void) | |
69 | +{ | |
70 | + fc_destroy_fcp(); | |
71 | + fc_destroy_exch_mgr(); | |
72 | + fc_destroy_rport(); | |
73 | +} | |
74 | +module_exit(libfc_exit); |
drivers/scsi/libfc/fc_libfc.h