@@ -97,8 +97,8 @@ static int pktdev_major;
97
97
static int write_congestion_on = PKT_WRITE_CONGESTION_ON ;
98
98
static int write_congestion_off = PKT_WRITE_CONGESTION_OFF ;
99
99
static struct mutex ctl_mutex ; /* Serialize open/close/setup/teardown */
100
- static mempool_t * psd_pool ;
101
- static struct bio_set * pkt_bio_set ;
100
+ static mempool_t psd_pool ;
101
+ static struct bio_set pkt_bio_set ;
102
102
103
103
static struct class * class_pktcdvd = NULL ; /* /sys/class/pktcdvd */
104
104
static struct dentry * pkt_debugfs_root = NULL ; /* /sys/kernel/debug/pktcdvd */
@@ -631,7 +631,7 @@ static inline struct pkt_rb_node *pkt_rbtree_next(struct pkt_rb_node *node)
631
631
static void pkt_rbtree_erase (struct pktcdvd_device * pd , struct pkt_rb_node * node )
632
632
{
633
633
rb_erase (& node -> rb_node , & pd -> bio_queue );
634
- mempool_free (node , pd -> rb_pool );
634
+ mempool_free (node , & pd -> rb_pool );
635
635
pd -> bio_queue_size -- ;
636
636
BUG_ON (pd -> bio_queue_size < 0 );
637
637
}
@@ -2303,14 +2303,14 @@ static void pkt_end_io_read_cloned(struct bio *bio)
2303
2303
psd -> bio -> bi_status = bio -> bi_status ;
2304
2304
bio_put (bio );
2305
2305
bio_endio (psd -> bio );
2306
- mempool_free (psd , psd_pool );
2306
+ mempool_free (psd , & psd_pool );
2307
2307
pkt_bio_finished (pd );
2308
2308
}
2309
2309
2310
2310
static void pkt_make_request_read (struct pktcdvd_device * pd , struct bio * bio )
2311
2311
{
2312
- struct bio * cloned_bio = bio_clone_fast (bio , GFP_NOIO , pkt_bio_set );
2313
- struct packet_stacked_data * psd = mempool_alloc (psd_pool , GFP_NOIO );
2312
+ struct bio * cloned_bio = bio_clone_fast (bio , GFP_NOIO , & pkt_bio_set );
2313
+ struct packet_stacked_data * psd = mempool_alloc (& psd_pool , GFP_NOIO );
2314
2314
2315
2315
psd -> pd = pd ;
2316
2316
psd -> bio = bio ;
@@ -2381,7 +2381,7 @@ static void pkt_make_request_write(struct request_queue *q, struct bio *bio)
2381
2381
/*
2382
2382
* No matching packet found. Store the bio in the work queue.
2383
2383
*/
2384
- node = mempool_alloc (pd -> rb_pool , GFP_NOIO );
2384
+ node = mempool_alloc (& pd -> rb_pool , GFP_NOIO );
2385
2385
node -> bio = bio ;
2386
2386
spin_lock (& pd -> lock );
2387
2387
BUG_ON (pd -> bio_queue_size < 0 );
@@ -2451,7 +2451,7 @@ static blk_qc_t pkt_make_request(struct request_queue *q, struct bio *bio)
2451
2451
2452
2452
split = bio_split (bio , last_zone -
2453
2453
bio -> bi_iter .bi_sector ,
2454
- GFP_NOIO , pkt_bio_set );
2454
+ GFP_NOIO , & pkt_bio_set );
2455
2455
bio_chain (split , bio );
2456
2456
} else {
2457
2457
split = bio ;
@@ -2707,9 +2707,9 @@ static int pkt_setup_dev(dev_t dev, dev_t* pkt_dev)
2707
2707
if (!pd )
2708
2708
goto out_mutex ;
2709
2709
2710
- pd -> rb_pool = mempool_create_kmalloc_pool ( PKT_RB_POOL_SIZE ,
2711
- sizeof (struct pkt_rb_node ));
2712
- if (! pd -> rb_pool )
2710
+ ret = mempool_init_kmalloc_pool ( & pd -> rb_pool , PKT_RB_POOL_SIZE ,
2711
+ sizeof (struct pkt_rb_node ));
2712
+ if (ret )
2713
2713
goto out_mem ;
2714
2714
2715
2715
INIT_LIST_HEAD (& pd -> cdrw .pkt_free_list );
@@ -2766,7 +2766,7 @@ static int pkt_setup_dev(dev_t dev, dev_t* pkt_dev)
2766
2766
out_mem2 :
2767
2767
put_disk (disk );
2768
2768
out_mem :
2769
- mempool_destroy ( pd -> rb_pool );
2769
+ mempool_exit ( & pd -> rb_pool );
2770
2770
kfree (pd );
2771
2771
out_mutex :
2772
2772
mutex_unlock (& ctl_mutex );
@@ -2817,7 +2817,7 @@ static int pkt_remove_dev(dev_t pkt_dev)
2817
2817
blk_cleanup_queue (pd -> disk -> queue );
2818
2818
put_disk (pd -> disk );
2819
2819
2820
- mempool_destroy ( pd -> rb_pool );
2820
+ mempool_exit ( & pd -> rb_pool );
2821
2821
kfree (pd );
2822
2822
2823
2823
/* This is safe: open() is still holding a reference. */
@@ -2914,14 +2914,14 @@ static int __init pkt_init(void)
2914
2914
2915
2915
mutex_init (& ctl_mutex );
2916
2916
2917
- psd_pool = mempool_create_kmalloc_pool ( PSD_POOL_SIZE ,
2918
- sizeof (struct packet_stacked_data ));
2919
- if (! psd_pool )
2920
- return - ENOMEM ;
2921
- pkt_bio_set = bioset_create ( BIO_POOL_SIZE , 0 , 0 );
2922
- if (! pkt_bio_set ) {
2923
- mempool_destroy ( psd_pool );
2924
- return - ENOMEM ;
2917
+ ret = mempool_init_kmalloc_pool ( & psd_pool , PSD_POOL_SIZE ,
2918
+ sizeof (struct packet_stacked_data ));
2919
+ if (ret )
2920
+ return ret ;
2921
+ ret = bioset_init ( & pkt_bio_set , BIO_POOL_SIZE , 0 , 0 );
2922
+ if (ret ) {
2923
+ mempool_exit ( & psd_pool );
2924
+ return ret ;
2925
2925
}
2926
2926
2927
2927
ret = register_blkdev (pktdev_major , DRIVER_NAME );
@@ -2954,8 +2954,8 @@ static int __init pkt_init(void)
2954
2954
out :
2955
2955
unregister_blkdev (pktdev_major , DRIVER_NAME );
2956
2956
out2 :
2957
- mempool_destroy ( psd_pool );
2958
- bioset_free ( pkt_bio_set );
2957
+ mempool_exit ( & psd_pool );
2958
+ bioset_exit ( & pkt_bio_set );
2959
2959
return ret ;
2960
2960
}
2961
2961
@@ -2968,8 +2968,8 @@ static void __exit pkt_exit(void)
2968
2968
pkt_sysfs_cleanup ();
2969
2969
2970
2970
unregister_blkdev (pktdev_major , DRIVER_NAME );
2971
- mempool_destroy ( psd_pool );
2972
- bioset_free ( pkt_bio_set );
2971
+ mempool_exit ( & psd_pool );
2972
+ bioset_exit ( & pkt_bio_set );
2973
2973
}
2974
2974
2975
2975
MODULE_DESCRIPTION ("Packet writing layer for CD/DVD drives" );
0 commit comments