diff options
Diffstat (limited to 'arch/powerpc/sysdev/axonram.c')
| -rw-r--r-- | arch/powerpc/sysdev/axonram.c | 47 | 
1 files changed, 21 insertions, 26 deletions
diff --git a/arch/powerpc/sysdev/axonram.c b/arch/powerpc/sysdev/axonram.c index 2659a60bd7b..47b6b9f81d4 100644 --- a/arch/powerpc/sysdev/axonram.c +++ b/arch/powerpc/sysdev/axonram.c @@ -25,7 +25,6 @@  #include <linux/bio.h>  #include <linux/blkdev.h> -#include <linux/buffer_head.h>  #include <linux/device.h>  #include <linux/errno.h>  #include <linux/fs.h> @@ -95,7 +94,7 @@ axon_ram_irq_handler(int irq, void *dev)  	BUG_ON(!bank); -	dev_err(&device->dev, "Correctable memory error occured\n"); +	dev_err(&device->dev, "Correctable memory error occurred\n");  	bank->ecc_counter++;  	return IRQ_HANDLED;  } @@ -104,39 +103,36 @@ axon_ram_irq_handler(int irq, void *dev)   * axon_ram_make_request - make_request() method for block device   * @queue, @bio: see blk_queue_make_request()   */ -static int +static void  axon_ram_make_request(struct request_queue *queue, struct bio *bio)  {  	struct axon_ram_bank *bank = bio->bi_bdev->bd_disk->private_data;  	unsigned long phys_mem, phys_end;  	void *user_mem; -	struct bio_vec *vec; +	struct bio_vec vec;  	unsigned int transfered; -	unsigned short idx; -	int rc = 0; +	struct bvec_iter iter; -	phys_mem = bank->io_addr + (bio->bi_sector << AXON_RAM_SECTOR_SHIFT); +	phys_mem = bank->io_addr + (bio->bi_iter.bi_sector << +				    AXON_RAM_SECTOR_SHIFT);  	phys_end = bank->io_addr + bank->size;  	transfered = 0; -	bio_for_each_segment(vec, bio, idx) { -		if (unlikely(phys_mem + vec->bv_len > phys_end)) { +	bio_for_each_segment(vec, bio, iter) { +		if (unlikely(phys_mem + vec.bv_len > phys_end)) {  			bio_io_error(bio); -			rc = -ERANGE; -			break; +			return;  		} -		user_mem = page_address(vec->bv_page) + vec->bv_offset; +		user_mem = page_address(vec.bv_page) + vec.bv_offset;  		if (bio_data_dir(bio) == READ) -			memcpy(user_mem, (void *) phys_mem, vec->bv_len); +			memcpy(user_mem, (void *) phys_mem, vec.bv_len);  		else -			memcpy((void *) phys_mem, user_mem, vec->bv_len); +			memcpy((void *) phys_mem, user_mem, vec.bv_len); -		phys_mem += vec->bv_len; -		transfered += vec->bv_len; +		phys_mem += vec.bv_len; +		transfered += vec.bv_len;  	}  	bio_endio(bio, 0); - -	return rc;  }  /** @@ -172,10 +168,9 @@ static const struct block_device_operations axon_ram_devops = {  /**   * axon_ram_probe - probe() method for platform driver - * @device, @device_id: see of_platform_driver method + * @device: see platform_driver method   */ -static int axon_ram_probe(struct platform_device *device, -			  const struct of_device_id *device_id) +static int axon_ram_probe(struct platform_device *device)  {  	static int axon_ram_bank_id = -1;  	struct axon_ram_bank *bank; @@ -204,7 +199,7 @@ static int axon_ram_probe(struct platform_device *device,  		goto failed;  	} -	bank->size = resource.end - resource.start + 1; +	bank->size = resource_size(&resource);  	if (bank->size == 0) {  		dev_err(&device->dev, "No DDR2 memory found for %s%d\n", @@ -217,7 +212,7 @@ static int axon_ram_probe(struct platform_device *device,  			AXON_RAM_DEVICE_NAME, axon_ram_bank_id, bank->size >> 20);  	bank->ph_addr = resource.start; -	bank->io_addr = (unsigned long) ioremap_flags( +	bank->io_addr = (unsigned long) ioremap_prot(  			bank->ph_addr, bank->size, _PAGE_NO_CACHE);  	if (bank->io_addr == 0) {  		dev_err(&device->dev, "ioremap() failed\n"); @@ -326,7 +321,7 @@ static struct of_device_id axon_ram_device_id[] = {  	{}  }; -static struct of_platform_driver axon_ram_driver = { +static struct platform_driver axon_ram_driver = {  	.probe		= axon_ram_probe,  	.remove		= axon_ram_remove,  	.driver = { @@ -350,7 +345,7 @@ axon_ram_init(void)  	}  	azfs_minor = 0; -	return of_register_platform_driver(&axon_ram_driver); +	return platform_driver_register(&axon_ram_driver);  }  /** @@ -359,7 +354,7 @@ axon_ram_init(void)  static void __exit  axon_ram_exit(void)  { -	of_unregister_platform_driver(&axon_ram_driver); +	platform_driver_unregister(&axon_ram_driver);  	unregister_blkdev(azfs_major, AXON_RAM_DEVICE_NAME);  }  | 
