Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6
* 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6: firewire: ohci: fix DMA unmapping in an error path firewire: cdev: fix 32 bit userland on 64 bit kernel compat corner cases
This commit is contained in:
		
						commit
						6f02bfc404
					
				| @ -216,15 +216,33 @@ struct inbound_phy_packet_event { | ||||
| 	struct fw_cdev_event_phy_packet phy_packet; | ||||
| }; | ||||
| 
 | ||||
| static inline void __user *u64_to_uptr(__u64 value) | ||||
| #ifdef CONFIG_COMPAT | ||||
| static void __user *u64_to_uptr(u64 value) | ||||
| { | ||||
| 	if (is_compat_task()) | ||||
| 		return compat_ptr(value); | ||||
| 	else | ||||
| 		return (void __user *)(unsigned long)value; | ||||
| } | ||||
| 
 | ||||
| static u64 uptr_to_u64(void __user *ptr) | ||||
| { | ||||
| 	if (is_compat_task()) | ||||
| 		return ptr_to_compat(ptr); | ||||
| 	else | ||||
| 		return (u64)(unsigned long)ptr; | ||||
| } | ||||
| #else | ||||
| static inline void __user *u64_to_uptr(u64 value) | ||||
| { | ||||
| 	return (void __user *)(unsigned long)value; | ||||
| } | ||||
| 
 | ||||
| static inline __u64 uptr_to_u64(void __user *ptr) | ||||
| static inline u64 uptr_to_u64(void __user *ptr) | ||||
| { | ||||
| 	return (__u64)(unsigned long)ptr; | ||||
| 	return (u64)(unsigned long)ptr; | ||||
| } | ||||
| #endif /* CONFIG_COMPAT */ | ||||
| 
 | ||||
| static int fw_device_op_open(struct inode *inode, struct file *file) | ||||
| { | ||||
|  | ||||
| @ -2179,8 +2179,13 @@ static int ohci_enable(struct fw_card *card, | ||||
| 			ohci_driver_name, ohci)) { | ||||
| 		fw_error("Failed to allocate interrupt %d.\n", dev->irq); | ||||
| 		pci_disable_msi(dev); | ||||
| 		dma_free_coherent(ohci->card.device, CONFIG_ROM_SIZE, | ||||
| 				  ohci->config_rom, ohci->config_rom_bus); | ||||
| 
 | ||||
| 		if (config_rom) { | ||||
| 			dma_free_coherent(ohci->card.device, CONFIG_ROM_SIZE, | ||||
| 					  ohci->next_config_rom, | ||||
| 					  ohci->next_config_rom_bus); | ||||
| 			ohci->next_config_rom = NULL; | ||||
| 		} | ||||
| 		return -EIO; | ||||
| 	} | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user