Loading drivers/scsi/scsicam.c +11 −13 Original line number Diff line number Diff line Loading @@ -35,19 +35,17 @@ static int setsize(unsigned long capacity, unsigned int *cyls, unsigned int *hds */ unsigned char *scsi_bios_ptable(struct block_device *dev) { unsigned char *res = kmalloc(66, GFP_KERNEL); if (res) { struct block_device *bdev = dev->bd_contains; Sector sect; void *data = read_dev_sector(bdev, 0, §); if (data) { memcpy(res, data + 0x1be, 66); put_dev_sector(sect); } else { kfree(res); res = NULL; } } struct address_space *mapping = dev->bd_contains->bd_inode->i_mapping; unsigned char *res = NULL; struct page *page; page = read_mapping_page(mapping, 0, NULL); if (IS_ERR(page)) return NULL; if (!PageError(page)) res = kmemdup(page_address(page) + 0x1be, 66, GFP_KERNEL); put_page(page); return res; } EXPORT_SYMBOL(scsi_bios_ptable); Loading Loading
drivers/scsi/scsicam.c +11 −13 Original line number Diff line number Diff line Loading @@ -35,19 +35,17 @@ static int setsize(unsigned long capacity, unsigned int *cyls, unsigned int *hds */ unsigned char *scsi_bios_ptable(struct block_device *dev) { unsigned char *res = kmalloc(66, GFP_KERNEL); if (res) { struct block_device *bdev = dev->bd_contains; Sector sect; void *data = read_dev_sector(bdev, 0, §); if (data) { memcpy(res, data + 0x1be, 66); put_dev_sector(sect); } else { kfree(res); res = NULL; } } struct address_space *mapping = dev->bd_contains->bd_inode->i_mapping; unsigned char *res = NULL; struct page *page; page = read_mapping_page(mapping, 0, NULL); if (IS_ERR(page)) return NULL; if (!PageError(page)) res = kmemdup(page_address(page) + 0x1be, 66, GFP_KERNEL); put_page(page); return res; } EXPORT_SYMBOL(scsi_bios_ptable); Loading