fa7d0f0b1e
FreeIPMI is a collection of Intelligent Platform Management IPMI system software. It provides in-band and out-of-band software and a development library conforming to the Intelligent Platform Management Interface (IPMI v1.5 and v2.0) standards.
28 lines
895 B
Plaintext
28 lines
895 B
Plaintext
$OpenBSD: patch-libfreeipmi_src_ipmi-kcs-api_c,v 1.1.1.1 2007/10/25 18:17:02 wilfried Exp $
|
|
--- libfreeipmi/src/ipmi-kcs-api.c.orig Sat Jun 2 20:18:29 2007
|
|
+++ libfreeipmi/src/ipmi-kcs-api.c Tue Oct 23 18:55:45 2007
|
|
@@ -350,7 +350,22 @@ ipmi_kcs_ctx_io_init(ipmi_kcs_ctx_t ctx)
|
|
if (!(ctx && ctx->magic == IPMI_KCS_CTX_MAGIC))
|
|
return (-1);
|
|
|
|
-#ifdef __FreeBSD__
|
|
+#ifdef __OpenBSD__
|
|
+# if defined(__amd64__)
|
|
+ if (amd64_iopl (3) < 0)
|
|
+# elif defined(__i386__)
|
|
+ if (i386_iopl (3) < 0)
|
|
+# else
|
|
+ if (0)
|
|
+# endif
|
|
+ {
|
|
+ if (errno == EPERM || errno == EACCES)
|
|
+ ctx->errnum = IPMI_KCS_CTX_ERR_PERMISSION;
|
|
+ else
|
|
+ ERR_LOG(ctx->errnum = IPMI_KCS_CTX_ERR_INTERNAL);
|
|
+ return (-1);
|
|
+ }
|
|
+#elif __FreeBSD__
|
|
#ifdef USE_IOPERM
|
|
/* i386_set_ioperm has known problems on FBSD 5.x (bus errors). */
|
|
if (i386_set_ioperm (ctx->driver_address, 0x02, 0x01) != 0)
|