mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	PCI: hv: Allocate a named fwnode instead of an address-based one
To allocate its fwnode that is then used to allocate an irqdomain, the driver uses irq_domain_alloc_fwnode(), passing it a VA as an identifier. This is a rather bad idea, as this address ends up published in debugfs (and we want to move away from VAs there anyway). Instead, let's allocate a named fwnode by using the device GUID as an identifier. It is allegedly unique, and can be traced back to the original device. Acked-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Marc Zyngier <maz@kernel.org>
This commit is contained in:
		
							parent
							
								
									daa19fe5b0
								
							
						
					
					
						commit
						467a3bb974
					
				
					 1 changed files with 9 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -2521,6 +2521,7 @@ static int hv_pci_probe(struct hv_device *hdev,
 | 
			
		|||
			const struct hv_vmbus_device_id *dev_id)
 | 
			
		||||
{
 | 
			
		||||
	struct hv_pcibus_device *hbus;
 | 
			
		||||
	char *name;
 | 
			
		||||
	int ret;
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
| 
						 | 
				
			
			@ -2589,7 +2590,14 @@ static int hv_pci_probe(struct hv_device *hdev,
 | 
			
		|||
		goto free_config;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	hbus->sysdata.fwnode = irq_domain_alloc_fwnode(hbus);
 | 
			
		||||
	name = kasprintf(GFP_KERNEL, "%pUL", &hdev->dev_instance);
 | 
			
		||||
	if (!name) {
 | 
			
		||||
		ret = -ENOMEM;
 | 
			
		||||
		goto unmap;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	hbus->sysdata.fwnode = irq_domain_alloc_named_fwnode(name);
 | 
			
		||||
	kfree(name);
 | 
			
		||||
	if (!hbus->sysdata.fwnode) {
 | 
			
		||||
		ret = -ENOMEM;
 | 
			
		||||
		goto unmap;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue