diff options
Diffstat (limited to 'drivers/infiniband/hw/ehca/ehca_main.c')
-rw-r--r-- | drivers/infiniband/hw/ehca/ehca_main.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/drivers/infiniband/hw/ehca/ehca_main.c b/drivers/infiniband/hw/ehca/ehca_main.c index bb104b7f73e3..99036b65bb84 100644 --- a/drivers/infiniband/hw/ehca/ehca_main.c +++ b/drivers/infiniband/hw/ehca/ehca_main.c | |||
@@ -181,6 +181,12 @@ static int ehca_create_slab_caches(void) | |||
181 | goto create_slab_caches5; | 181 | goto create_slab_caches5; |
182 | } | 182 | } |
183 | 183 | ||
184 | ret = ehca_init_small_qp_cache(); | ||
185 | if (ret) { | ||
186 | ehca_gen_err("Cannot create small queue SLAB cache."); | ||
187 | goto create_slab_caches6; | ||
188 | } | ||
189 | |||
184 | #ifdef CONFIG_PPC_64K_PAGES | 190 | #ifdef CONFIG_PPC_64K_PAGES |
185 | ctblk_cache = kmem_cache_create("ehca_cache_ctblk", | 191 | ctblk_cache = kmem_cache_create("ehca_cache_ctblk", |
186 | EHCA_PAGESIZE, H_CB_ALIGNMENT, | 192 | EHCA_PAGESIZE, H_CB_ALIGNMENT, |
@@ -188,12 +194,15 @@ static int ehca_create_slab_caches(void) | |||
188 | NULL); | 194 | NULL); |
189 | if (!ctblk_cache) { | 195 | if (!ctblk_cache) { |
190 | ehca_gen_err("Cannot create ctblk SLAB cache."); | 196 | ehca_gen_err("Cannot create ctblk SLAB cache."); |
191 | ehca_cleanup_mrmw_cache(); | 197 | ehca_cleanup_small_qp_cache(); |
192 | goto create_slab_caches5; | 198 | goto create_slab_caches6; |
193 | } | 199 | } |
194 | #endif | 200 | #endif |
195 | return 0; | 201 | return 0; |
196 | 202 | ||
203 | create_slab_caches6: | ||
204 | ehca_cleanup_mrmw_cache(); | ||
205 | |||
197 | create_slab_caches5: | 206 | create_slab_caches5: |
198 | ehca_cleanup_av_cache(); | 207 | ehca_cleanup_av_cache(); |
199 | 208 | ||
@@ -211,6 +220,7 @@ create_slab_caches2: | |||
211 | 220 | ||
212 | static void ehca_destroy_slab_caches(void) | 221 | static void ehca_destroy_slab_caches(void) |
213 | { | 222 | { |
223 | ehca_cleanup_small_qp_cache(); | ||
214 | ehca_cleanup_mrmw_cache(); | 224 | ehca_cleanup_mrmw_cache(); |
215 | ehca_cleanup_av_cache(); | 225 | ehca_cleanup_av_cache(); |
216 | ehca_cleanup_qp_cache(); | 226 | ehca_cleanup_qp_cache(); |