Commit f403f85f authored by Anton Vasilyev's avatar Anton Vasilyev Committed by Jiri Kosina
Browse files

misc: ibmasm: Return error on error path



If ibmasm_event_buffer_init() or ibmasm_heartbeat_init() fails,
then ibmasm_init_one() release all resources and return 0 on error path.

The patch adds corresponding error for fails.

Found by Linux Driver Verification project (linuxtesting.org).

Signed-off-by: default avatarAnton Vasilyev <vasilyev@ispras.ru>
Reviewed-by: default avatarAndy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
parent df47b246
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -155,7 +155,7 @@ int ibmasm_event_buffer_init(struct service_processor *sp)

	buffer = kmalloc(sizeof(struct event_buffer), GFP_KERNEL);
	if (!buffer)
		return 1;
		return -ENOMEM;

	buffer->next_index = 0;
	buffer->next_serial_number = 1;
+4 −2
Original line number Diff line number Diff line
@@ -94,12 +94,14 @@ static int ibmasm_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
	snprintf(sp->dirname, IBMASM_NAME_SIZE, "%d", sp->number);
	snprintf(sp->devname, IBMASM_NAME_SIZE, "%s%d", DRIVER_NAME, sp->number);

	if (ibmasm_event_buffer_init(sp)) {
	result = ibmasm_event_buffer_init(sp);
	if (result) {
		dev_err(sp->dev, "Failed to allocate event buffer\n");
		goto error_eventbuffer;
	}

	if (ibmasm_heartbeat_init(sp)) {
	result = ibmasm_heartbeat_init(sp);
	if (result) {
		dev_err(sp->dev, "Failed to allocate heartbeat command\n");
		goto error_heartbeat;
	}