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

Commit c43ef174 authored by Jonathan Corbet's avatar Jonathan Corbet
Browse files

snsc: cdev lock_kernel() pushdown



Signed-off-by: default avatarJonathan Corbet <corbet@lwn.net>
parent 78a3c3d7
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@
#include <linux/poll.h>
#include <linux/module.h>
#include <linux/slab.h>
#include <linux/smp_lock.h>
#include <asm/sn/io.h>
#include <asm/sn/sn_sal.h>
#include <asm/sn/module.h>
@@ -104,6 +105,7 @@ scdrv_open(struct inode *inode, struct file *file)
	file->private_data = sd;

	/* hook this subchannel up to the system controller interrupt */
	lock_kernel();
	rv = request_irq(SGI_UART_VECTOR, scdrv_interrupt,
			 IRQF_SHARED | IRQF_DISABLED,
			 SYSCTL_BASENAME, sd);
@@ -111,9 +113,10 @@ scdrv_open(struct inode *inode, struct file *file)
		ia64_sn_irtr_close(sd->sd_nasid, sd->sd_subch);
		kfree(sd);
		printk("%s: irq request failed (%d)\n", __func__, rv);
		unlock_kernel();
		return -EBUSY;
	}

	unlock_kernel();
	return 0;
}