Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 36405e96 authored by Bjorn Helgaas's avatar Bjorn Helgaas Committed by Linus Torvalds
Browse files

PNP: simplify PNPBIOS insert_device



Hoist the struct pnp_dev alloc up into the function where it's used.

Signed-off-by: default avatarBjorn Helgaas <bjorn.helgaas@hp.com>
Cc: Adam Belay <ambx1@neo.rr.com>
Cc: Len Brown <lenb@kernel.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent b933e19d
Loading
Loading
Loading
Loading
+14 −14
Original line number Diff line number Diff line
@@ -315,25 +315,31 @@ struct pnp_protocol pnpbios_protocol = {
	.disable = pnpbios_disable_resources,
};

static int insert_device(struct pnp_dev *dev, struct pnp_bios_node *node)
static int insert_device(struct pnp_bios_node *node)
{
	struct list_head *pos;
	struct pnp_dev *pnp_dev;
	struct pnp_dev *dev;
	struct pnp_id *dev_id;
	char id[8];

	/* check if the device is already added */
	dev->number = node->handle;
	list_for_each(pos, &pnpbios_protocol.devices) {
		pnp_dev = list_entry(pos, struct pnp_dev, protocol_list);
		if (dev->number == pnp_dev->number)
		dev = list_entry(pos, struct pnp_dev, protocol_list);
		if (dev->number == node->handle)
			return -1;
	}

	/* set the initial values for the PnP device */
	dev = kzalloc(sizeof(struct pnp_dev), GFP_KERNEL);
	if (!dev)
		return -1;

	dev_id = kzalloc(sizeof(struct pnp_id), GFP_KERNEL);
	if (!dev_id)
	if (!dev_id) {
		kfree(dev);
		return -1;
	}

	dev->number = node->handle;
	pnpid32_to_pnpid(node->eisa_id, id);
	memcpy(dev_id->id, id, 7);
	pnp_add_id(dev_id, dev);
@@ -367,7 +373,6 @@ static void __init build_devlist(void)
	unsigned int nodes_got = 0;
	unsigned int devs = 0;
	struct pnp_bios_node *node;
	struct pnp_dev *dev;

	node = kzalloc(node_info.max_node_size, GFP_KERNEL);
	if (!node)
@@ -388,12 +393,7 @@ static void __init build_devlist(void)
				break;
		}
		nodes_got++;
		dev = kzalloc(sizeof(struct pnp_dev), GFP_KERNEL);
		if (!dev)
			break;
		if (insert_device(dev, node) < 0)
			kfree(dev);
		else
		if (insert_device(node) == 0)
			devs++;
		if (nodenum <= thisnodenum) {
			printk(KERN_ERR