mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	ipmi_si: Remove hacks for adding a dummy platform devices
All the IPMI address sources now supply a real device. This cheap hack is no longer necessary. Signed-off-by: Corey Minyard <cminyard@mvista.com>
This commit is contained in:
		
							parent
							
								
									e17c657100
								
							
						
					
					
						commit
						90b2d4f15f
					
				
					 1 changed files with 3 additions and 42 deletions
				
			
		| 
						 | 
					@ -229,15 +229,9 @@ struct smi_info {
 | 
				
			||||||
	/* From the get device id response... */
 | 
						/* From the get device id response... */
 | 
				
			||||||
	struct ipmi_device_id device_id;
 | 
						struct ipmi_device_id device_id;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* Default driver model device. */
 | 
					 | 
				
			||||||
	struct platform_device *pdev;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	/* Have we added the device group to the device? */
 | 
						/* Have we added the device group to the device? */
 | 
				
			||||||
	bool dev_group_added;
 | 
						bool dev_group_added;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* Have we added the platform device? */
 | 
					 | 
				
			||||||
	bool pdev_registered;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	/* Counters and things for the proc filesystem. */
 | 
						/* Counters and things for the proc filesystem. */
 | 
				
			||||||
	atomic_t stats[SI_NUM_STATS];
 | 
						atomic_t stats[SI_NUM_STATS];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1969,25 +1963,10 @@ static int try_smi_init(struct smi_info *new_smi)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* Do this early so it's available for logs. */
 | 
						/* Do this early so it's available for logs. */
 | 
				
			||||||
	if (!new_smi->io.dev) {
 | 
						if (!new_smi->io.dev) {
 | 
				
			||||||
		init_name = kasprintf(GFP_KERNEL, "ipmi_si.%d",
 | 
							pr_err("IPMI interface added with no device\n");
 | 
				
			||||||
				      new_smi->si_num);
 | 
							rv = EIO;
 | 
				
			||||||
 | 
					 | 
				
			||||||
		/*
 | 
					 | 
				
			||||||
		 * If we don't already have a device from something
 | 
					 | 
				
			||||||
		 * else (like PCI), then register a new one.
 | 
					 | 
				
			||||||
		 */
 | 
					 | 
				
			||||||
		new_smi->pdev = platform_device_alloc("ipmi_si",
 | 
					 | 
				
			||||||
						      new_smi->si_num);
 | 
					 | 
				
			||||||
		if (!new_smi->pdev) {
 | 
					 | 
				
			||||||
			pr_err("Unable to allocate platform device\n");
 | 
					 | 
				
			||||||
			rv = -ENOMEM;
 | 
					 | 
				
			||||||
		goto out_err;
 | 
							goto out_err;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
		new_smi->io.dev = &new_smi->pdev->dev;
 | 
					 | 
				
			||||||
		new_smi->io.dev->driver = &ipmi_platform_driver.driver;
 | 
					 | 
				
			||||||
		/* Nulled by device_add() */
 | 
					 | 
				
			||||||
		new_smi->io.dev->init_name = init_name;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* Allocate the state machine's data and initialize it. */
 | 
						/* Allocate the state machine's data and initialize it. */
 | 
				
			||||||
	new_smi->si_sm = kmalloc(new_smi->handlers->size(), GFP_KERNEL);
 | 
						new_smi->si_sm = kmalloc(new_smi->handlers->size(), GFP_KERNEL);
 | 
				
			||||||
| 
						 | 
					@ -2059,17 +2038,6 @@ static int try_smi_init(struct smi_info *new_smi)
 | 
				
			||||||
		atomic_set(&new_smi->req_events, 1);
 | 
							atomic_set(&new_smi->req_events, 1);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (new_smi->pdev && !new_smi->pdev_registered) {
 | 
					 | 
				
			||||||
		rv = platform_device_add(new_smi->pdev);
 | 
					 | 
				
			||||||
		if (rv) {
 | 
					 | 
				
			||||||
			dev_err(new_smi->io.dev,
 | 
					 | 
				
			||||||
				"Unable to register system interface device: %d\n",
 | 
					 | 
				
			||||||
				rv);
 | 
					 | 
				
			||||||
			goto out_err;
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		new_smi->pdev_registered = true;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	dev_set_drvdata(new_smi->io.dev, new_smi);
 | 
						dev_set_drvdata(new_smi->io.dev, new_smi);
 | 
				
			||||||
	rv = device_add_group(new_smi->io.dev, &ipmi_si_dev_attr_group);
 | 
						rv = device_add_group(new_smi->io.dev, &ipmi_si_dev_attr_group);
 | 
				
			||||||
	if (rv) {
 | 
						if (rv) {
 | 
				
			||||||
| 
						 | 
					@ -2253,13 +2221,6 @@ static void cleanup_one_si(struct smi_info *smi_info)
 | 
				
			||||||
	if (smi_info->intf)
 | 
						if (smi_info->intf)
 | 
				
			||||||
		ipmi_unregister_smi(smi_info->intf);
 | 
							ipmi_unregister_smi(smi_info->intf);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (smi_info->pdev) {
 | 
					 | 
				
			||||||
		if (smi_info->pdev_registered)
 | 
					 | 
				
			||||||
			platform_device_unregister(smi_info->pdev);
 | 
					 | 
				
			||||||
		else
 | 
					 | 
				
			||||||
			platform_device_put(smi_info->pdev);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	kfree(smi_info);
 | 
						kfree(smi_info);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue