From 80993719d219ff087b24142cd9b294bfc6a5429b Mon Sep 17 00:00:00 2001 From: rumble Date: Thu, 17 Jan 2008 22:32:49 +0000 Subject: [PATCH] Before bailing on ENOENT, try one more time with an appended ".o". This lets us load dependencies by module name and makes 'modload foo' work when 'foo.o' is the file. --- sys/kern/subr_kobj.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/sys/kern/subr_kobj.c b/sys/kern/subr_kobj.c index 35018523224c..f65f7133e973 100644 --- a/sys/kern/subr_kobj.c +++ b/sys/kern/subr_kobj.c @@ -1,4 +1,4 @@ -/* $NetBSD: subr_kobj.c,v 1.8 2008/01/12 23:35:58 ad Exp $ */ +/* $NetBSD: subr_kobj.c,v 1.9 2008/01/17 22:32:49 rumble Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -69,7 +69,7 @@ #include "opt_modular.h" #include -__KERNEL_RCSID(0, "$NetBSD: subr_kobj.c,v 1.8 2008/01/12 23:35:58 ad Exp $"); +__KERNEL_RCSID(0, "$NetBSD: subr_kobj.c,v 1.9 2008/01/17 22:32:49 rumble Exp $"); #define ELFSIZE ARCH_ELFSIZE @@ -187,6 +187,11 @@ kobj_open_file(kobj_t *kop, const char *filename) filename); NDINIT(&nd, LOOKUP, FOLLOW, UIO_SYSSPACE, path); error = vn_open(&nd, FREAD, 0); + if (error != 0) { + strlcat(path, ".o", MAXPATHLEN); + NDINIT(&nd, LOOKUP, FOLLOW, UIO_SYSSPACE, path); + error = vn_open(&nd, FREAD, 0); + } PNBUF_PUT(path); if (error != 0) { goto out;