aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64/sn/kernel/tiocx.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-03-23 17:19:37 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2012-03-23 17:19:37 -0700
commit0e65ae099ca6a70a7a521e0358c57d43ec95dce5 (patch)
treeab4b11ec028229530ad1f616b80e6ea1057d0e71 /arch/ia64/sn/kernel/tiocx.c
parentMerge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip (diff)
parentDocumentation/kernel-parameters: remove inttest parameter (diff)
downloadlinux-dev-0e65ae099ca6a70a7a521e0358c57d43ec95dce5.tar.xz
linux-dev-0e65ae099ca6a70a7a521e0358c57d43ec95dce5.zip
Merge tag 'ia64-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux
Pull miscellaneous Itanium patches from Tony Luck. The conflicts in arch/ia64/hp/sim/simserial.c were due to patches to simserial that had alredy been included (with lots of further cleanups) in the serial tree. * tag 'ia64-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux: Documentation/kernel-parameters: remove inttest parameter [IA64] Fix ISA IRQ trigger model and polarity setting [IA64] Fix a couple of warnings for EXPORT_SYMBOL [IA64] Check return from device_register() in cx_device_register() [IA64] Fix warning from machine_kexec.c [IA64] simserial, bail out when request_irq fails [IA64] hpsim, initialize chip for assigned irqs [IA64] simserial, include some headers [IA64] hpsim, fix SAL handling in fw-emu [IA64] genirq fixup for SGI/SN [IA64] disable interrupts when exiting from ia64_mca_cmc_int_handler()
Diffstat (limited to 'arch/ia64/sn/kernel/tiocx.c')
-rw-r--r--arch/ia64/sn/kernel/tiocx.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/arch/ia64/sn/kernel/tiocx.c b/arch/ia64/sn/kernel/tiocx.c
index c1bd1cfda327..2f406f509d44 100644
--- a/arch/ia64/sn/kernel/tiocx.c
+++ b/arch/ia64/sn/kernel/tiocx.c
@@ -191,6 +191,7 @@ cx_device_register(nasid_t nasid, int part_num, int mfg_num,
struct hubdev_info *hubdev, int bt)
{
struct cx_dev *cx_dev;
+ int r;
cx_dev = kzalloc(sizeof(struct cx_dev), GFP_KERNEL);
DBG("cx_dev= 0x%p\n", cx_dev);
@@ -207,7 +208,11 @@ cx_device_register(nasid_t nasid, int part_num, int mfg_num,
cx_dev->dev.bus = &tiocx_bus_type;
cx_dev->dev.release = tiocx_bus_release;
dev_set_name(&cx_dev->dev, "%d", cx_dev->cx_id.nasid);
- device_register(&cx_dev->dev);
+ r = device_register(&cx_dev->dev);
+ if (r) {
+ kfree(cx_dev);
+ return r;
+ }
get_device(&cx_dev->dev);
device_create_file(&cx_dev->dev, &dev_attr_cxdev_control);