From: Jens Axboe Date: Wed, 14 Jan 2015 04:58:45 +0000 (-0700) Subject: Merge branch 'for-3.20/core' into for-3.20/drivers X-Git-Tag: v4.14-rc1~5956^2~15 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d4119ee0e1aa2b74e5e367cbc915e79db7b9e271;p=platform%2Fkernel%2Flinux-rpi.git Merge branch 'for-3.20/core' into for-3.20/drivers --- d4119ee0e1aa2b74e5e367cbc915e79db7b9e271 diff --cc arch/powerpc/sysdev/axonram.c index 367533b,20f8afe..ee90db1 --- a/arch/powerpc/sysdev/axonram.c +++ b/arch/powerpc/sysdev/axonram.c @@@ -139,26 -139,17 +139,17 @@@ axon_ram_make_request(struct request_qu * axon_ram_direct_access - direct_access() method for block device * @device, @sector, @data: see block_device_operations method */ - static int + static long axon_ram_direct_access(struct block_device *device, sector_t sector, - void **kaddr, unsigned long *pfn) + void **kaddr, unsigned long *pfn, long size) { struct axon_ram_bank *bank = device->bd_disk->private_data; - loff_t offset; - - offset = sector; - if (device->bd_part != NULL) - offset += device->bd_part->start_sect; - offset <<= AXON_RAM_SECTOR_SHIFT; - if (offset >= bank->size) { - dev_err(&bank->device->dev, "Access outside of address space\n"); - return -ERANGE; - } + loff_t offset = (loff_t)sector << AXON_RAM_SECTOR_SHIFT; *kaddr = (void *)(bank->ph_addr + offset); - *pfn = virt_to_phys(kaddr) >> PAGE_SHIFT; + *pfn = virt_to_phys(*kaddr) >> PAGE_SHIFT; - return 0; + return bank->size - offset; } static const struct block_device_operations axon_ram_devops = {