summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO12
-rw-r--r--PKGBUILD11
-rw-r--r--openonload-201606-bug64486-63982-ilog2-no_KALLSYMS_ALL.patch135
3 files changed, 9 insertions, 149 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 4a055975721d..47615fe2eeb5 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,9 +1,9 @@
# Generated by mksrcinfo v8
-# Mon Aug 15 16:11:50 UTC 2016
+# Wed Nov 9 15:08:21 UTC 2016
pkgbase = openonload
pkgdesc = A high performance network stack from Solarflare.
- pkgver = 201606
- pkgrel = 2
+ pkgver = 201606.u1
+ pkgrel = 1
url = http://www.openonload.org/
install = openonload.install
arch = i686
@@ -17,18 +17,16 @@ pkgbase = openonload
options = !makeflags
options = !buildflags
options = staticlibs
- source = http://www.openonload.org/download/openonload-201606.tgz
+ source = http://www.openonload.org/download/openonload-201606-u1.tgz
source = openonload.install
source = openonload.service
source = openonload-201310-cpp11-space-literal-fix.patch
source = openonload-201606-archlinux.patch
- source = openonload-201606-bug64486-63982-ilog2-no_KALLSYMS_ALL.patch
- sha512sums = 23207e9c701ccf85cdc70229390dfdf5b351d362509a1fd8d8666231f1061fe4054a95dc1d4968ce8c43be490abaf405f252f07a07eec72771b015cf9ff01b16
+ sha512sums = 0bf6eeffbd9c1c3275c8bef6f53f8bcab7fc59677da65a26d40125048916da974c9bff7d37f6bdf6d106464e18ff0264a997ff850e91ee1163bd87a254ec72cd
sha512sums = ac464250f2fb96d13e8ae129bac80c03f8cca62e450fdd765f24ccd064e28e9942e4a16ebc693e75c71fc1eb86c3a1b08337b2e39c6c618e129d8ec87d872bdb
sha512sums = b7e4529e37c64f99c660ca9b58f388cdd8f0d2f250ba875eb210f4909bb1f1c985a065aae64c048ca6f824adc6e3176c6eae1f582c049631326db73e939edd7b
sha512sums = a1d23b60b699c04caee93eb18d855dbe2e65d2115f10eb3771d1a2f04eea8d3b8042550152a5f96140aca759db10c3fbebdde85dbebcf46505c15f2ba7934bdb
sha512sums = c368ce3ed7987d1b374f1e671eb21bc80af4b927e4db4a229712f334ee4843f5921fb64c7ac83df214a9cc37134f8a3360273e9ba9496ff56c329476d26d050a
- sha512sums = e38384d05987729e56ef293a8f25469ed22733e2513a02a91d1c70d6fd924884078fe27d10cea6b1b5a9b1a76f94906f633b3856730089f9cfde76ba381d1e36
pkgname = openonload
diff --git a/PKGBUILD b/PKGBUILD
index fc94d217087d..5e6bab12a97e 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -18,8 +18,8 @@
pkgname='openonload'
pkgdesc="A high performance network stack from Solarflare."
-pkgver='201606'
-pkgrel=2
+pkgver='201606.u1'
+pkgrel=1
arch=('i686' 'x86_64')
url='http://www.openonload.org/'
license=('custom')
@@ -31,14 +31,12 @@ source=("http://www.openonload.org/download/openonload-${pkgver//\./-}.tgz"
'openonload.service'
'openonload-201310-cpp11-space-literal-fix.patch'
'openonload-201606-archlinux.patch'
- 'openonload-201606-bug64486-63982-ilog2-no_KALLSYMS_ALL.patch'
)
-sha512sums=('23207e9c701ccf85cdc70229390dfdf5b351d362509a1fd8d8666231f1061fe4054a95dc1d4968ce8c43be490abaf405f252f07a07eec72771b015cf9ff01b16'
+sha512sums=('0bf6eeffbd9c1c3275c8bef6f53f8bcab7fc59677da65a26d40125048916da974c9bff7d37f6bdf6d106464e18ff0264a997ff850e91ee1163bd87a254ec72cd'
'ac464250f2fb96d13e8ae129bac80c03f8cca62e450fdd765f24ccd064e28e9942e4a16ebc693e75c71fc1eb86c3a1b08337b2e39c6c618e129d8ec87d872bdb'
'b7e4529e37c64f99c660ca9b58f388cdd8f0d2f250ba875eb210f4909bb1f1c985a065aae64c048ca6f824adc6e3176c6eae1f582c049631326db73e939edd7b'
'a1d23b60b699c04caee93eb18d855dbe2e65d2115f10eb3771d1a2f04eea8d3b8042550152a5f96140aca759db10c3fbebdde85dbebcf46505c15f2ba7934bdb'
- 'c368ce3ed7987d1b374f1e671eb21bc80af4b927e4db4a229712f334ee4843f5921fb64c7ac83df214a9cc37134f8a3360273e9ba9496ff56c329476d26d050a'
- 'e38384d05987729e56ef293a8f25469ed22733e2513a02a91d1c70d6fd924884078fe27d10cea6b1b5a9b1a76f94906f633b3856730089f9cfde76ba381d1e36')
+ 'c368ce3ed7987d1b374f1e671eb21bc80af4b927e4db4a229712f334ee4843f5921fb64c7ac83df214a9cc37134f8a3360273e9ba9496ff56c329476d26d050a')
install="openonload.install"
@@ -53,7 +51,6 @@ prepare() {
patch -p1 < "${srcdir}/openonload-201310-cpp11-space-literal-fix.patch"
patch -p1 < "${srcdir}/openonload-201606-archlinux.patch"
- patch -p1 < "${srcdir}/openonload-201606-bug64486-63982-ilog2-no_KALLSYMS_ALL.patch"
}
build() {
diff --git a/openonload-201606-bug64486-63982-ilog2-no_KALLSYMS_ALL.patch b/openonload-201606-bug64486-63982-ilog2-no_KALLSYMS_ALL.patch
deleted file mode 100644
index 9015aab27489..000000000000
--- a/openonload-201606-bug64486-63982-ilog2-no_KALLSYMS_ALL.patch
+++ /dev/null
@@ -1,135 +0,0 @@
-diff -ur openonload-201606/src/driver/linux_onload/x86_linux_trampoline.c openonload-201606_patched/src/driver/linux_onload/x86_linux_trampoline.c
---- openonload-201606/src/driver/linux_onload/x86_linux_trampoline.c 2016-06-30 11:42:18.000000000 +0100
-+++ openonload-201606_patched/src/driver/linux_onload/x86_linux_trampoline.c 2016-08-15 16:24:49.526866000 +0100
-@@ -290,19 +290,22 @@
- */
- static void **find_syscall_table(void)
- {
-- unsigned long *idtbase = NULL;
-- unsigned char *p, *end, idt[6];
-+ unsigned char *p = NULL;
-+ unsigned char *end;
- void **result = NULL;
-
- #ifdef ERFM_HAVE_NEW_KALLSYMS
- /* Linux-4.4 & 4.5: */
-- idtbase = efrm_find_ksym("do_syscall_32_irqs_on");
-+ p = efrm_find_ksym("do_syscall_32_irqs_on");
- /* Linux-4.6: */
-- if( idtbase == NULL )
-- idtbase = efrm_find_ksym("do_int80_syscall_32");
-+ if( p == NULL )
-+ p = efrm_find_ksym("do_int80_syscall_32");
- #endif
-
-- if( idtbase == NULL ) {
-+ if( p == NULL ) {
-+ unsigned long *idtbase;
-+ unsigned char idt[6];
-+
- __asm__("sidt %0" : "=m"(idt));
- idtbase = (unsigned long *)(idt[2] | (idt[3] << 8) | (idt[4] << 16)
- | (idt[5] << 24));
-@@ -311,9 +314,6 @@
- p = (unsigned char *)((idtbase[0x80*2] & 0xffff)
- | (idtbase[0x80*2+1] & 0xffff0000));
- }
-- else {
-- p = (void *)idtbase;
-- }
- TRAMP_DEBUG("int 0x80 entry point at %p", p);
- end = p + 1024 - 7;
- while (p < end) {
-@@ -366,30 +366,45 @@
- static void **find_ia32_syscall_table(void)
- {
- unsigned long result = 0;
-- unsigned char *p, *pend;
-- unsigned int *idtbase;
-- unsigned char idt[10];
-+ unsigned char *p = NULL;
-+ unsigned char *pend;
-
- #ifdef ERFM_HAVE_NEW_KALLSYMS
-- void *addr;
--
-+#if 0
-+ /* It works with CONFIG_KALLSYMS_ALL=y only. */
- /* Linux>=4.2: ia32_sys_call_table is not a local variable any more, so
-- * we can use kallsyms to find it. */
-+ * we can use kallsyms to find it if CONFIG_KALLSYMS_ALL=y. */
-+ void *addr;
- addr = efrm_find_ksym("ia32_sys_call_table");
- if( addr != NULL )
- return addr;
- #endif
-
-- /* linux<4.4: ia32_sys_call_table is an internal variable in
-- * linux/arch/x86/entry/entry_64_compat.S, and we can parse this asm
-- * code. */
-- __asm__("sidt %0" : "=m"(idt));
-- idtbase = *(unsigned int **)(&idt[2]);
-- TRAMP_DEBUG("idt base=%p, entry 0x80=%08x,%08x,%08x", idtbase,
-- idtbase[0x80*4], idtbase[0x80*4+1], idtbase[0x80*4+2]);
-- result = (idtbase[0x80*4] & 0xffff) | (idtbase[0x80*4+1] & 0xffff0000)
-- | ((unsigned long)idtbase[0x80*4+2] << 32);
-- p = (unsigned char *)result;
-+ /* Linux-4.4 & 4.5: do_syscall_32_irqs_off is a function, so it does not
-+ * require CONFIG_KALLSYMS_ALL=y. */
-+ p = efrm_find_ksym("do_syscall_32_irqs_off");
-+ /* Linux-4.6: */
-+ if( p == NULL )
-+ p = efrm_find_ksym("do_int80_syscall_32");
-+#endif
-+
-+ if( p == NULL ) {
-+ /* linux<4.4: get ia32_sys_call_table variable from asm code at
-+ * linux/arch/x86/entry/entry_64_compat.S. */
-+ unsigned int *idtbase;
-+ unsigned char idt[10];
-+
-+ __asm__("sidt %0" : "=m"(idt));
-+ idtbase = *(unsigned int **)(&idt[2]);
-+ TRAMP_DEBUG("idt base=%p, entry 0x80=%08x,%08x,%08x", idtbase,
-+ idtbase[0x80*4], idtbase[0x80*4+1], idtbase[0x80*4+2]);
-+ result = (idtbase[0x80*4] & 0xffff) | (idtbase[0x80*4+1] & 0xffff0000)
-+ | ((unsigned long)idtbase[0x80*4+2] << 32);
-+ p = (unsigned char *)result;
-+ }
-+ else {
-+ result = (unsigned long)p;
-+ }
- TRAMP_DEBUG("int 0x80 entry point at %p", p);
- pend = p + 1024 - 7;
- while (p < pend) {
-diff -ur openonload-201606/src/include/onload/version.h openonload-201606_patched/src/include/onload/version.h
---- openonload-201606/src/include/onload/version.h 2016-06-30 11:42:26.000000000 +0100
-+++ openonload-201606_patched/src/include/onload/version.h 2016-08-15 16:28:05.299169000 +0100
-@@ -29,7 +29,7 @@
-
-
- #ifndef ONLOAD_VERSION
--# define ONLOAD_VERSION "201606"
-+# define ONLOAD_VERSION "201606-p63982-p64486"
- #endif
-
- #define ONLOAD_PRODUCT "OpenOnload"
-diff -ur openonload-201606/src/lib/efrm/vi_resource_alloc.c openonload-201606_patched/src/lib/efrm/vi_resource_alloc.c
---- openonload-201606/src/lib/efrm/vi_resource_alloc.c 2016-06-30 11:42:13.000000000 +0100
-+++ openonload-201606_patched/src/lib/efrm/vi_resource_alloc.c 2016-08-15 16:27:44.743189000 +0100
-@@ -1432,6 +1432,15 @@
-
- qso->q_len_entries = n_q_entries;
- qso->q_len_bytes = efrm_vi_q_bytes(virs, q_type, n_q_entries);
-+
-+ /* This value should always be positive, but if we don't check for this
-+ * explicitly, some compilers will assume that undefined logarithms
-+ * can be taken in get_order() and will generate code that won't link.
-+ * See bug63982. */
-+ EFRM_ASSERT(qso->q_len_bytes > 0);
-+ if (qso->q_len_bytes <= 0)
-+ return -EINVAL;
-+
- qso->q_len_page_order = get_order(qso->q_len_bytes);
- return 0;
- }