#define MIN_ALIGNMENT          8
 
 static u32 __iomem *reg_base;
-static struct device *dev;
 
 static unsigned int start;
 module_param(start, uint, 0);
 {
        struct bio_vec bvec;
        struct bvec_iter iter;
+       struct device *dev = bio->bi_disk->private_data;
        u32 pos = bio->bi_iter.bi_sector << SECTOR_SHIFT;
 
        bio_for_each_segment(bvec, bio, iter) {
        if (!disk->queue)
                return -ENOMEM;
 
-       dev = &pdev->dev;
-
        disk->first_minor = 0;
        disk->flags = GENHD_FL_NO_PART_SCAN | GENHD_FL_EXT_DEVT;
        disk->fops = &n64cart_fops;
+       disk->private_data = &pdev->dev;
        strcpy(disk->disk_name, "n64cart");
 
        set_capacity(disk, size >> SECTOR_SHIFT);