aboutsummaryrefslogtreecommitdiff
path: root/sys/contrib/openzfs/module/lua
diff options
context:
space:
mode:
authorMartin Matuska <mm@FreeBSD.org>2022-11-16 20:25:24 +0000
committerMartin Matuska <mm@FreeBSD.org>2022-11-16 20:27:42 +0000
commitdbd5678dca91abcefe8d046aa2f9b66497a95ffb (patch)
tree23c7cf5ccced42596b6f6da3c8450e86124f5248 /sys/contrib/openzfs/module/lua
parent61b146ba43cd3886c81e79b37fdc665d6e1d74b8 (diff)
parent2163cde450d0898b5f7bac16afb4e238485411ff (diff)
Diffstat (limited to 'sys/contrib/openzfs/module/lua')
-rw-r--r--sys/contrib/openzfs/module/lua/lapi.c4
-rw-r--r--sys/contrib/openzfs/module/lua/ldo.c2
-rw-r--r--sys/contrib/openzfs/module/lua/setjmp/setjmp_x86_64.S15
3 files changed, 12 insertions, 9 deletions
diff --git a/sys/contrib/openzfs/module/lua/lapi.c b/sys/contrib/openzfs/module/lua/lapi.c
index 726e5c2ad4bb..703cf4cc2a36 100644
--- a/sys/contrib/openzfs/module/lua/lapi.c
+++ b/sys/contrib/openzfs/module/lua/lapi.c
@@ -250,6 +250,8 @@ LUA_API int lua_type (lua_State *L, int idx) {
LUA_API const char *lua_typename (lua_State *L, int t) {
UNUSED(L);
+ if (t > 8 || t < 0)
+ return "internal_type_error";
return ttypename(t);
}
@@ -442,7 +444,7 @@ LUA_API const void *lua_topointer (lua_State *L, int idx) {
case LUA_TTABLE: return hvalue(o);
case LUA_TLCL: return clLvalue(o);
case LUA_TCCL: return clCvalue(o);
- case LUA_TLCF: return cast(void *, cast(size_t, fvalue(o)));
+ case LUA_TLCF: return cast(void *, cast(uintptr_t, fvalue(o)));
case LUA_TTHREAD: return thvalue(o);
case LUA_TUSERDATA:
case LUA_TLIGHTUSERDATA:
diff --git a/sys/contrib/openzfs/module/lua/ldo.c b/sys/contrib/openzfs/module/lua/ldo.c
index 24677596de12..6bef80514ce2 100644
--- a/sys/contrib/openzfs/module/lua/ldo.c
+++ b/sys/contrib/openzfs/module/lua/ldo.c
@@ -452,7 +452,7 @@ int luaD_poscall (lua_State *L, StkId firstResult) {
}
res = ci->func; /* res == final position of 1st result */
wanted = ci->nresults;
- L->ci = ci = ci->previous; /* back to caller */
+ L->ci = ci->previous; /* back to caller */
/* move results to correct place */
for (i = wanted; i != 0 && firstResult < L->top; i--)
setobjs2s(L, res++, firstResult++);
diff --git a/sys/contrib/openzfs/module/lua/setjmp/setjmp_x86_64.S b/sys/contrib/openzfs/module/lua/setjmp/setjmp_x86_64.S
index fd661d72eedf..7e13fea05dda 100644
--- a/sys/contrib/openzfs/module/lua/setjmp/setjmp_x86_64.S
+++ b/sys/contrib/openzfs/module/lua/setjmp/setjmp_x86_64.S
@@ -23,7 +23,15 @@
* Copyright (c) 1992, 2010, Oracle and/or its affiliates. All rights reserved.
*/
+#if defined(_KERNEL) && defined(__linux__)
+#include <linux/linkage.h>
+#endif
+
+#ifndef RET
+#define RET ret
+#endif
+#undef ENTRY
#define ENTRY(x) \
.text; \
.align 8; \
@@ -34,13 +42,6 @@ x:
#define SET_SIZE(x) \
.size x, [.-x]
-
-#if defined(__linux__) && defined(CONFIG_SLS)
-#define RET ret; int3
-#else
-#define RET ret
-#endif
-
/*
* Setjmp and longjmp implement non-local gotos using state vectors
* type label_t.