mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-27 01:11:14 +00:00
055e9dfb58
The kernel unconditionally pulls in a header file that defines 'current', which conflicts with the lua extension code. Signed-off-by: Felix Fietkau <nbd@nbd.name>
119 lines
2.9 KiB
Diff
119 lines
2.9 KiB
Diff
--- a/extensions/LUA/xt_LUA_target.c
|
|
+++ b/extensions/LUA/xt_LUA_target.c
|
|
@@ -64,10 +64,10 @@ uint32_t lua_state_refs[LUA_STATE_ARRAY
|
|
* XT_CONTINUE inside the *register_lua_packet_lib* function.
|
|
*/
|
|
|
|
-spinlock_t lock = SPIN_LOCK_UNLOCKED;
|
|
+DEFINE_SPINLOCK(lock);
|
|
|
|
static uint32_t
|
|
-lua_tg(struct sk_buff *pskb, const struct xt_target_param *par)
|
|
+lua_tg(struct sk_buff *pskb, const struct xt_action_param *par)
|
|
{
|
|
uint32_t verdict;
|
|
lua_packet_segment *p;
|
|
@@ -88,11 +88,11 @@ lua_tg(struct sk_buff *pskb, const struc
|
|
/* push the lua_packet_segment as a parameter */
|
|
p = (lua_packet_segment *)lua_newuserdata(L, sizeof(lua_packet_segment));
|
|
if (pskb->mac_header)
|
|
- p->start = pskb->mac_header;
|
|
+ p->start = skb_mac_header(pskb);
|
|
else if (pskb->network_header)
|
|
- p->start = pskb->network_header;
|
|
+ p->start = skb_network_header(pskb);
|
|
else if (pskb->transport_header)
|
|
- p->start = pskb->transport_header;
|
|
+ p->start = skb_transport_header(pskb);
|
|
p->offset = 0;
|
|
p->length = (unsigned long)pskb->tail - (unsigned long)p->start;
|
|
p->changes = NULL;
|
|
@@ -208,16 +208,16 @@ static bool load_script_into_state(uint3
|
|
* some workqueue initialization. So far this is done each time this function
|
|
* is called, subject to change.
|
|
*/
|
|
-static bool
|
|
+static int
|
|
lua_tg_checkentry(const struct xt_tgchk_param *par)
|
|
{
|
|
const struct xt_lua_tginfo *info = par->targinfo;
|
|
|
|
if (load_script_into_state(info->state_id, info->script_size, (char *)info->buf)) {
|
|
lua_state_refs[info->state_id]++;
|
|
- return true;
|
|
+ return 0;
|
|
}
|
|
- return false;
|
|
+ return -EINVAL;
|
|
}
|
|
|
|
/*::*
|
|
--- a/extensions/LUA/lua/llimits.h
|
|
+++ b/extensions/LUA/lua/llimits.h
|
|
@@ -8,7 +8,6 @@
|
|
#define llimits_h
|
|
|
|
#include <stddef.h>
|
|
-#include <limits.h>
|
|
|
|
#include "lua.h"
|
|
|
|
--- a/extensions/LUA/lua/lapi.c
|
|
+++ b/extensions/LUA/lua/lapi.c
|
|
@@ -4,9 +4,6 @@
|
|
** See Copyright Notice in lua.h
|
|
*/
|
|
|
|
-#include <stdarg.h>
|
|
-#include <math.h>
|
|
-#include <assert.h>
|
|
#include <string.h>
|
|
|
|
#define lapi_c
|
|
--- a/extensions/LUA/lua/ltable.c
|
|
+++ b/extensions/LUA/lua/ltable.c
|
|
@@ -18,7 +18,6 @@
|
|
** Hence even when the load factor reaches 100%, performance remains good.
|
|
*/
|
|
|
|
-#include <math.h>
|
|
#include <string.h>
|
|
|
|
#define ltable_c
|
|
--- a/extensions/LUA/lua/luaconf.h
|
|
+++ b/extensions/LUA/lua/luaconf.h
|
|
@@ -13,8 +13,12 @@
|
|
#if !defined(__KERNEL__)
|
|
#include <limits.h>
|
|
#else
|
|
+#include <linux/kernel.h>
|
|
+
|
|
+#undef UCHAR_MAX
|
|
+#undef BUFSIZ
|
|
+#undef NO_FPU
|
|
#define UCHAR_MAX 255
|
|
-#define SHRT_MAX 32767
|
|
#define BUFSIZ 8192
|
|
#define NO_FPU
|
|
#endif
|
|
@@ -637,6 +641,8 @@ union luai_Cast { double l_d; long l_l;
|
|
*/
|
|
#if defined(__KERNEL__)
|
|
#undef LUA_USE_ULONGJMP
|
|
+#define setjmp __builtin_setjmp
|
|
+#define longjmp __builtin_longjmp
|
|
#endif
|
|
|
|
#if defined(__cplusplus)
|
|
--- a/extensions/LUA/lua/llex.h
|
|
+++ b/extensions/LUA/lua/llex.h
|
|
@@ -10,6 +10,8 @@
|
|
#include "lobject.h"
|
|
#include "lzio.h"
|
|
|
|
+/* prevent conflict with definition from asm/current.h */
|
|
+#undef current
|
|
|
|
#define FIRST_RESERVED 257
|
|
|