summaryrefslogtreecommitdiffstats
path: root/recipes-kernel
diff options
context:
space:
mode:
authorBogdan Oprescu <bogdan.oprescu@enea.com>2023-10-26 15:04:48 +0300
committerBogdan Oprescu <bogdan.oprescu@enea.com>2023-10-26 15:28:16 +0300
commitf877a1524b36f0e157f2208f58fc5ff04e3670f7 (patch)
tree0a4bc099641efaa616ff9a3b5ab2da96c1dc13bf /recipes-kernel
downloadmeta-fsl-ppc-daisy-enea-231026.tar.gz
Adding the source code from EneaLinux 4.0_6daisy-enea-231026
Signed-off-by: Bogdan Oprescu <bogdan.oprescu@enea.com>
Diffstat (limited to 'recipes-kernel')
-rw-r--r--recipes-kernel/asf/asf_git.bb48
-rw-r--r--recipes-kernel/cryptodev/cryptodev_1.5.bb51
-rw-r--r--recipes-kernel/cryptodev/files/Add-the-compile-and-install-rules-for-cryptodev-test.patch69
-rw-r--r--recipes-kernel/cryptodev/files/makefile_fixup.patch26
-rw-r--r--recipes-kernel/linux/files/Fix-CVE-2014-5077-sctp-inherit-auth-capable-on-INIT-collisions.patch41
-rw-r--r--recipes-kernel/linux/files/Fix-CVE-2014-5471_CVE-2014-5472.patch212
-rw-r--r--recipes-kernel/linux/files/Fix-for-CVE-2014-5045-fs-umount-on-symlink-leak.patch47
-rw-r--r--recipes-kernel/linux/files/libtraceevent-Remove-hard-coded-include-to-usr-local-include-in-Makefile.patch36
-rw-r--r--recipes-kernel/linux/files/powerpc-Fix-64-bit-builds-with-binutils-2.24.patch80
-rw-r--r--recipes-kernel/linux/linux-qoriq-sdk-prt.bb37
-rw-r--r--recipes-kernel/linux/linux-qoriq-sdk.bb37
-rw-r--r--recipes-kernel/linux/linux-qoriq-sdk.inc37
-rw-r--r--recipes-kernel/linux/linux-qoriq.inc46
-rw-r--r--recipes-kernel/linux/linux-qoriq_3.12.bb10
-rw-r--r--recipes-kernel/lttng/lttng-modules_%.bbappend18
-rw-r--r--recipes-kernel/qoriq-debug/qoriq-debug_git.bb35
-rwxr-xr-xrecipes-kernel/uio-seville/uio-seville_0.1.bb12
17 files changed, 842 insertions, 0 deletions
diff --git a/recipes-kernel/asf/asf_git.bb b/recipes-kernel/asf/asf_git.bb
new file mode 100644
index 0000000..c9948ee
--- /dev/null
+++ b/recipes-kernel/asf/asf_git.bb
@@ -0,0 +1,48 @@
1DESCRIPTION = "Non-DPAA software Application Specific Fast-path"
2SECTION = "asf"
3LICENSE = "GPLv2 & GPLv2+ & BSD"
4LIC_FILES_CHKSUM = "file://COPYING;md5=b5881ecf398da8a03a3f4c501e29d287"
5
6SRC_URI = "git://git.freescale.com/ppc/sdk/asf.git;nobranch=1"
7SRCREV = "c262d7701af325b50cae54279a021ae7b5081e24"
8SRCREV_t2080qds = "6af9df06e2747bdee91c21d1626b5b53b97849c5"
9SRCREV_t2080qds-64b = "6af9df06e2747bdee91c21d1626b5b53b97849c5"
10
11DEPENDS="virtual/kernel"
12RDEPENDS_${PN} += "ipsec-tools"
13
14inherit module
15
16S = "${WORKDIR}/git/asfmodule"
17
18EXTRA_OEMAKE = "CROSS_COMPILE=${TARGET_PREFIX}"
19export KERNEL_PATH = "${STAGING_KERNEL_DIR}"
20
21python () {
22 ma = d.getVar("DISTRO_FEATURES", True)
23 arch = d.getVar("OVERRIDES", True)
24
25 # the : after the arch is to skip the message on 64b
26 if not "multiarch" in ma and "e6500:" in arch:
27 raise bb.parse.SkipPackage("Building the kernel for this arch requires multiarch to be in DISTRO_FEATURES")
28
29 promote_kernel = d.getVar('BUILD_64BIT_KERNEL')
30
31 if promote_kernel == "1":
32 d.setVar('KERNEL_CC_append', ' -m64')
33 d.setVar('KERNEL_LD_append', ' -melf64ppc')
34
35 error_qa = d.getVar('ERROR_QA', True)
36 if 'arch' in error_qa:
37 d.setVar('ERROR_QA', error_qa.replace(' arch', ''))
38}
39
40do_install(){
41 mkdir -p ${D}/usr/driver/asf
42 cp -rf ${S}/bin/full ${D}/usr/driver/asf
43 cp -rf ${S}/bin/min ${D}/usr/driver/asf
44 cp -rf ${S}/../scripts ${D}/usr/driver/asf/.
45}
46
47FILES_${PN} += "/usr/driver/asf"
48INHIBIT_PACKAGE_STRIP = "1"
diff --git a/recipes-kernel/cryptodev/cryptodev_1.5.bb b/recipes-kernel/cryptodev/cryptodev_1.5.bb
new file mode 100644
index 0000000..4c1dade
--- /dev/null
+++ b/recipes-kernel/cryptodev/cryptodev_1.5.bb
@@ -0,0 +1,51 @@
1SECTION = "devel"
2SUMMARY = "Linux Cryptodev KERNEL MODULE"
3DESCRIPTION = "The Cryptodev package contains the kernel /dev/crypto module"
4LICENSE = "GPLv2"
5LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
6RCONFLICTS_${PN} = "ocf-linux"
7
8inherit module
9
10PR = "r1"
11DEPENDS += "openssl"
12
13SRCREV = "1c24a0aa996630518d47826a2e3fea129ea094c7"
14
15SRC_URI = "git://repo.or.cz/cryptodev-linux.git;protocol=git \
16 file://makefile_fixup.patch \
17 file://Add-the-compile-and-install-rules-for-cryptodev-test.patch"
18
19EXTRA_OEMAKE='KERNEL_DIR="${STAGING_KERNEL_DIR}" PREFIX="${D}"'
20
21S = "${WORKDIR}/git"
22python () {
23 ma = d.getVar("DISTRO_FEATURES", True)
24 arch = d.getVar("OVERRIDES", True)
25
26 # the : after the arch is to skip the message on 64b
27 if not "multiarch" in ma and ("e5500:" in arch or "e6500:" in arch):
28 raise bb.parse.SkipPackage("Building the kernel for this arch requires multiarch to be in DISTRO_FEATURES")
29
30 promote_kernel = d.getVar('BUILD_64BIT_KERNEL')
31
32 if promote_kernel == "1":
33 d.setVar('KERNEL_CC_append', ' -m64')
34 d.setVar('KERNEL_LD_append', ' -melf64ppc')
35
36 error_qa = d.getVar('ERROR_QA', True)
37 if 'arch' in error_qa:
38 d.setVar('ERROR_QA', error_qa.replace(' arch', ''))
39}
40
41do_compile_append() {
42 oe_runmake testprogs
43}
44
45do_install_append() {
46 oe_runmake install_tests
47}
48
49PACKAGES += "${PN}-tests"
50FILES_${PN}-dbg += "${bindir}/tests_cryptodev/.debug"
51FILES_${PN}-tests = "${bindir}/tests_cryptodev/*"
diff --git a/recipes-kernel/cryptodev/files/Add-the-compile-and-install-rules-for-cryptodev-test.patch b/recipes-kernel/cryptodev/files/Add-the-compile-and-install-rules-for-cryptodev-test.patch
new file mode 100644
index 0000000..cb871f6
--- /dev/null
+++ b/recipes-kernel/cryptodev/files/Add-the-compile-and-install-rules-for-cryptodev-test.patch
@@ -0,0 +1,69 @@
1From 1980a8f4779a955e73285e7a0d86549b69bea5c8 Mon Sep 17 00:00:00 2001
2From: Yu Zongchun <b40527@freescale.com>
3Date: Sun, 28 Apr 2013 14:39:22 +0800
4Subject: [PATCH] Add the compile and install rules for cryptodev tests folder
5
6This is required to install the cryptodev tests folder to rootfs
7
8Signed-off-by: Yu Zongchun <b40527@freescale.com>
9
10Upstream-Status: Pending
11
12---
13 Makefile | 6 ++++++
14 tests/Makefile | 8 ++++++++
15 2 files changed, 14 insertions(+), 0 deletions(-)
16
17diff --git a/Makefile b/Makefile
18index 2be8825..4cbb865 100644
19--- a/Makefile
20+++ b/Makefile
21@@ -17,6 +17,9 @@ install:
22 @echo "Installing cryptodev.h in /usr/include/crypto ..."
23 @install -D crypto/cryptodev.h /usr/include/crypto/cryptodev.h
24
25+install_tests:
26+ make -C tests install DESTDIR=$(PREFIX)
27+
28 clean:
29 make -C $(KERNEL_DIR) SUBDIRS=`pwd` clean
30 rm -f $(hostprogs) *~
31@@ -25,6 +28,9 @@ clean:
32 check:
33 KERNEL_DIR=$(KERNEL_DIR) make -C tests check
34
35+testprogs:
36+ KERNEL_DIR=$(KERNEL_DIR) make -C tests testprogs
37+
38 FILEBASE = cryptodev-linux-$(VERSION)
39 TMPDIR ?= /tmp
40 OUTPUT = $(FILEBASE).tar.gz
41diff --git a/tests/Makefile b/tests/Makefile
42index 87ca3c7..0488cf6 100644
43--- a/tests/Makefile
44+++ b/tests/Makefile
45@@ -19,6 +19,12 @@ example-async-hmac-objs := async_hmac.o
46 example-async-speed-objs := async_speed.o
47 example-hashcrypt-speed-objs := hashcrypt_speed.c
48
49+install:
50+ install -d $(DESTDIR)/usr/bin/tests_cryptodev
51+ for bin in $(hostprogs); do \
52+ install -m 755 $${bin} $(DESTDIR)/usr/bin/tests_cryptodev/; \
53+ done
54+
55 check: $(hostprogs)
56 ./cipher
57 ./hmac
58@@ -28,6 +34,8 @@ check: $(hostprogs)
59 ./cipher-gcm
60 ./cipher-aead
61
62+testprogs: $(hostprogs)
63+
64 clean:
65 rm -f *.o *~ $(hostprogs)
66
67--
681.7.5.4
69
diff --git a/recipes-kernel/cryptodev/files/makefile_fixup.patch b/recipes-kernel/cryptodev/files/makefile_fixup.patch
new file mode 100644
index 0000000..323aacd
--- /dev/null
+++ b/recipes-kernel/cryptodev/files/makefile_fixup.patch
@@ -0,0 +1,26 @@
1diff --git a/Makefile b/Makefile
2index 2be8825..b36d68c 100644
3--- a/Makefile
4+++ b/Makefile
5@@ -1,6 +1,7 @@
6 KBUILD_CFLAGS += -I$(src)
7 KERNEL_DIR = /lib/modules/$(shell uname -r)/build
8 VERSION = 1.5
9+PREFIX =
10
11 cryptodev-objs = ioctl.o main.o cryptlib.o authenc.o zc.o util.o
12
13@@ -12,10 +13,10 @@ build: version.h
14 version.h: Makefile
15 @echo "#define VERSION \"$(VERSION)\"" > version.h
16
17-install:
18+modules_install:
19 make -C $(KERNEL_DIR) SUBDIRS=`pwd` modules_install
20- @echo "Installing cryptodev.h in /usr/include/crypto ..."
21- @install -D crypto/cryptodev.h /usr/include/crypto/cryptodev.h
22+ @echo "Installing cryptodev.h in $(PREFIX)/usr/include/crypto ..."
23+ @install -D crypto/cryptodev.h $(PREFIX)/usr/include/crypto/cryptodev.h
24
25 clean:
26 make -C $(KERNEL_DIR) SUBDIRS=`pwd` clean
diff --git a/recipes-kernel/linux/files/Fix-CVE-2014-5077-sctp-inherit-auth-capable-on-INIT-collisions.patch b/recipes-kernel/linux/files/Fix-CVE-2014-5077-sctp-inherit-auth-capable-on-INIT-collisions.patch
new file mode 100644
index 0000000..7d16535
--- /dev/null
+++ b/recipes-kernel/linux/files/Fix-CVE-2014-5077-sctp-inherit-auth-capable-on-INIT-collisions.patch
@@ -0,0 +1,41 @@
1CVE-2014-5077 Kernel/SCTP: fix a NULL pointer dereference
2
3A NULL pointer dereference flaw was found in the way the
4Linux kernel's Stream Control Transmission Protocol
5(SCTP) implementation handled simultaneous connections
6between the same hosts. A remote attacker could use this
7flaw to crash the system.
8
9Upstream-Status: Backport (from v3.16, commit 1be9a950c646c)
10
11References:
12 - https://access.redhat.com/security/cve/CVE-2014-5077
13 - http://patchwork.ozlabs.org/patch/372475/
14
15Fixes: 730fc3d05cd4 ("[SCTP]: Implete SCTP-AUTH parameter processing")
16Reported-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
17Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
18Tested-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
19Cc: Vlad Yasevich <vyasevich@gmail.com>
20Acked-by: Vlad Yasevich <vyasevich@gmail.com>
21Signed-off-by: David S. Miller <davem@davemloft.net>
22Signed-off-by: Liviu Gheorghisan <liviu.gheorghisan@enea.com>
23---
24 net/sctp/associola.c | 1 +
25 1 file changed, 1 insertion(+)
26
27diff --git a/net/sctp/associola.c b/net/sctp/associola.c
28index 9de23a2..06a9ee6 100644
29--- a/net/sctp/associola.c
30+++ b/net/sctp/associola.c
31@@ -1097,6 +1097,7 @@ void sctp_assoc_update(struct sctp_association *asoc,
32 asoc->c = new->c;
33 asoc->peer.rwnd = new->peer.rwnd;
34 asoc->peer.sack_needed = new->peer.sack_needed;
35+ asoc->peer.auth_capable = new->peer.auth_capable;
36 asoc->peer.i = new->peer.i;
37 sctp_tsnmap_init(&asoc->peer.tsn_map, SCTP_TSN_MAP_INITIAL,
38 asoc->peer.i.initial_tsn, GFP_ATOMIC);
39--
401.9.1
41
diff --git a/recipes-kernel/linux/files/Fix-CVE-2014-5471_CVE-2014-5472.patch b/recipes-kernel/linux/files/Fix-CVE-2014-5471_CVE-2014-5472.patch
new file mode 100644
index 0000000..65107d6
--- /dev/null
+++ b/recipes-kernel/linux/files/Fix-CVE-2014-5471_CVE-2014-5472.patch
@@ -0,0 +1,212 @@
1From 4488e1f5ef40441c9846b1d0a29152c208a05e66 Mon Sep 17 00:00:00 2001
2From: Jan Kara <jack@suse.cz>
3Date: Sun, 17 Aug 2014 11:49:57 +0200
4Subject: [PATCH] isofs: Fix unbounded recursion when processing relocated
5 directories
6
7commit 410dd3cf4c9b36f27ed4542ee18b1af5e68645a4 upstream.
8
9We did not check relocated directory in any way when processing Rock
10Ridge 'CL' tag. Thus a corrupted isofs image can possibly have a CL
11entry pointing to another CL entry leading to possibly unbounded
12recursion in kernel code and thus stack overflow or deadlocks (if there
13is a loop created from CL entries).
14
15Fix the problem by not allowing CL entry to point to a directory entry
16with CL entry (such use makes no good sense anyway) and by checking
17whether CL entry doesn't point to itself.
18
19Upstream status: backported (from v3.12 e4ca8b780c82c04ec0)
20
21Reported-by: Chris Evans <cevans@google.com>
22Signed-off-by: Jan Kara <jack@suse.cz>
23Signed-off-by: Jiri Slaby <jslaby@suse.cz>
24Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com>
25---
26 fs/isofs/inode.c | 15 ++++++++-------
27 fs/isofs/isofs.h | 23 +++++++++++++++++++----
28 fs/isofs/rock.c | 39 ++++++++++++++++++++++++++++-----------
29 3 files changed, 55 insertions(+), 22 deletions(-)
30
31diff --git a/fs/isofs/inode.c b/fs/isofs/inode.c
32index e5d408a..2e2af97 100644
33--- a/fs/isofs/inode.c
34+++ b/fs/isofs/inode.c
35@@ -61,7 +61,7 @@ static void isofs_put_super(struct super_block *sb)
36 return;
37 }
38
39-static int isofs_read_inode(struct inode *);
40+static int isofs_read_inode(struct inode *, int relocated);
41 static int isofs_statfs (struct dentry *, struct kstatfs *);
42
43 static struct kmem_cache *isofs_inode_cachep;
44@@ -1258,7 +1258,7 @@ out_toomany:
45 goto out;
46 }
47
48-static int isofs_read_inode(struct inode *inode)
49+static int isofs_read_inode(struct inode *inode, int relocated)
50 {
51 struct super_block *sb = inode->i_sb;
52 struct isofs_sb_info *sbi = ISOFS_SB(sb);
53@@ -1403,7 +1403,7 @@ static int isofs_read_inode(struct inode *inode)
54 */
55
56 if (!high_sierra) {
57- parse_rock_ridge_inode(de, inode);
58+ parse_rock_ridge_inode(de, inode, relocated);
59 /* if we want uid/gid set, override the rock ridge setting */
60 if (sbi->s_uid_set)
61 inode->i_uid = sbi->s_uid;
62@@ -1482,9 +1482,10 @@ static int isofs_iget5_set(struct inode *ino, void *data)
63 * offset that point to the underlying meta-data for the inode. The
64 * code below is otherwise similar to the iget() code in
65 * include/linux/fs.h */
66-struct inode *isofs_iget(struct super_block *sb,
67- unsigned long block,
68- unsigned long offset)
69+struct inode *__isofs_iget(struct super_block *sb,
70+ unsigned long block,
71+ unsigned long offset,
72+ int relocated)
73 {
74 unsigned long hashval;
75 struct inode *inode;
76@@ -1506,7 +1507,7 @@ struct inode *isofs_iget(struct super_block *sb,
77 return ERR_PTR(-ENOMEM);
78
79 if (inode->i_state & I_NEW) {
80- ret = isofs_read_inode(inode);
81+ ret = isofs_read_inode(inode, relocated);
82 if (ret < 0) {
83 iget_failed(inode);
84 inode = ERR_PTR(ret);
85diff --git a/fs/isofs/isofs.h b/fs/isofs/isofs.h
86index 9916723..0ac4c1f 100644
87--- a/fs/isofs/isofs.h
88+++ b/fs/isofs/isofs.h
89@@ -107,7 +107,7 @@ extern int iso_date(char *, int);
90
91 struct inode; /* To make gcc happy */
92
93-extern int parse_rock_ridge_inode(struct iso_directory_record *, struct inode *);
94+extern int parse_rock_ridge_inode(struct iso_directory_record *, struct inode *, int relocated);
95 extern int get_rock_ridge_filename(struct iso_directory_record *, char *, struct inode *);
96 extern int isofs_name_translate(struct iso_directory_record *, char *, struct inode *);
97
98@@ -118,9 +118,24 @@ extern struct dentry *isofs_lookup(struct inode *, struct dentry *, unsigned int
99 extern struct buffer_head *isofs_bread(struct inode *, sector_t);
100 extern int isofs_get_blocks(struct inode *, sector_t, struct buffer_head **, unsigned long);
101
102-extern struct inode *isofs_iget(struct super_block *sb,
103- unsigned long block,
104- unsigned long offset);
105+struct inode *__isofs_iget(struct super_block *sb,
106+ unsigned long block,
107+ unsigned long offset,
108+ int relocated);
109+
110+static inline struct inode *isofs_iget(struct super_block *sb,
111+ unsigned long block,
112+ unsigned long offset)
113+{
114+ return __isofs_iget(sb, block, offset, 0);
115+}
116+
117+static inline struct inode *isofs_iget_reloc(struct super_block *sb,
118+ unsigned long block,
119+ unsigned long offset)
120+{
121+ return __isofs_iget(sb, block, offset, 1);
122+}
123
124 /* Because the inode number is no longer relevant to finding the
125 * underlying meta-data for an inode, we are free to choose a more
126diff --git a/fs/isofs/rock.c b/fs/isofs/rock.c
127index c0bf424..f488bba 100644
128--- a/fs/isofs/rock.c
129+++ b/fs/isofs/rock.c
130@@ -288,12 +288,16 @@ eio:
131 goto out;
132 }
133
134+#define RR_REGARD_XA 1
135+#define RR_RELOC_DE 2
136+
137 static int
138 parse_rock_ridge_inode_internal(struct iso_directory_record *de,
139- struct inode *inode, int regard_xa)
140+ struct inode *inode, int flags)
141 {
142 int symlink_len = 0;
143 int cnt, sig;
144+ unsigned int reloc_block;
145 struct inode *reloc;
146 struct rock_ridge *rr;
147 int rootflag;
148@@ -305,7 +309,7 @@ parse_rock_ridge_inode_internal(struct iso_directory_record *de,
149
150 init_rock_state(&rs, inode);
151 setup_rock_ridge(de, inode, &rs);
152- if (regard_xa) {
153+ if (flags & RR_REGARD_XA) {
154 rs.chr += 14;
155 rs.len -= 14;
156 if (rs.len < 0)
157@@ -485,12 +489,22 @@ repeat:
158 "relocated directory\n");
159 goto out;
160 case SIG('C', 'L'):
161- ISOFS_I(inode)->i_first_extent =
162- isonum_733(rr->u.CL.location);
163- reloc =
164- isofs_iget(inode->i_sb,
165- ISOFS_I(inode)->i_first_extent,
166- 0);
167+ if (flags & RR_RELOC_DE) {
168+ printk(KERN_ERR
169+ "ISOFS: Recursive directory relocation "
170+ "is not supported\n");
171+ goto eio;
172+ }
173+ reloc_block = isonum_733(rr->u.CL.location);
174+ if (reloc_block == ISOFS_I(inode)->i_iget5_block &&
175+ ISOFS_I(inode)->i_iget5_offset == 0) {
176+ printk(KERN_ERR
177+ "ISOFS: Directory relocation points to "
178+ "itself\n");
179+ goto eio;
180+ }
181+ ISOFS_I(inode)->i_first_extent = reloc_block;
182+ reloc = isofs_iget_reloc(inode->i_sb, reloc_block, 0);
183 if (IS_ERR(reloc)) {
184 ret = PTR_ERR(reloc);
185 goto out;
186@@ -637,9 +651,11 @@ static char *get_symlink_chunk(char *rpnt, struct rock_ridge *rr, char *plimit)
187 return rpnt;
188 }
189
190-int parse_rock_ridge_inode(struct iso_directory_record *de, struct inode *inode)
191+int parse_rock_ridge_inode(struct iso_directory_record *de, struct inode *inode,
192+ int relocated)
193 {
194- int result = parse_rock_ridge_inode_internal(de, inode, 0);
195+ int flags = relocated ? RR_RELOC_DE : 0;
196+ int result = parse_rock_ridge_inode_internal(de, inode, flags);
197
198 /*
199 * if rockridge flag was reset and we didn't look for attributes
200@@ -647,7 +663,8 @@ int parse_rock_ridge_inode(struct iso_directory_record *de, struct inode *inode)
201 */
202 if ((ISOFS_SB(inode->i_sb)->s_rock_offset == -1)
203 && (ISOFS_SB(inode->i_sb)->s_rock == 2)) {
204- result = parse_rock_ridge_inode_internal(de, inode, 14);
205+ result = parse_rock_ridge_inode_internal(de, inode,
206+ flags | RR_REGARD_XA);
207 }
208 return result;
209 }
210--
2111.9.1
212
diff --git a/recipes-kernel/linux/files/Fix-for-CVE-2014-5045-fs-umount-on-symlink-leak.patch b/recipes-kernel/linux/files/Fix-for-CVE-2014-5045-fs-umount-on-symlink-leak.patch
new file mode 100644
index 0000000..1ae600f
--- /dev/null
+++ b/recipes-kernel/linux/files/Fix-for-CVE-2014-5045-fs-umount-on-symlink-leak.patch
@@ -0,0 +1,47 @@
1fs: umount on symlink leaks mnt count
2
3commit 295dc39d941dc2ae53d5c170365af4c9d5c16212 upstream.
4
5Currently umount on symlink blocks following umount:
6
7/vz is separate mount
8
9drwxr-xr-x. 2 root root 4096 Jul 19 01:14 testdir
10lrwxrwxrwx. 1 root root 11 Jul 19 01:16 testlink -> /vz/testdir
11umount: /vz/testlink: not mounted (expected)
12
13umount: /vz: device is busy. (unexpected)
14
15In this case mountpoint_last() gets an extra refcount on path->mnt
16
17Upstream-Status: Backport
18
19Signed-off-by: Vasily Averin <vvs@openvz.org>
20Acked-by: Ian Kent <raven@themaw.net>
21Acked-by: Jeff Layton <jlayton@primarydata.com>
22Cc: stable@vger.kernel.org
23Signed-off-by: Christoph Hellwig <hch@lst.de>
24Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com>
25---
26 fs/namei.c | 3 ++-
27 1 file changed, 2 insertions(+), 1 deletion(-)
28
29diff --git a/fs/namei.c b/fs/namei.c
30index 187cacf..c199dcc 100644
31--- a/fs/namei.c
32+++ b/fs/namei.c
33@@ -2280,9 +2280,10 @@ done:
34 goto out;
35 }
36 path->dentry = dentry;
37- path->mnt = mntget(nd->path.mnt);
38+ path->mnt = nd->path.mnt;
39 if (should_follow_link(dentry->d_inode, nd->flags & LOOKUP_FOLLOW))
40 return 1;
41+ mntget(path->mnt);
42 follow_mount(path);
43 error = 0;
44 out:
45--
461.9.1
47
diff --git a/recipes-kernel/linux/files/libtraceevent-Remove-hard-coded-include-to-usr-local-include-in-Makefile.patch b/recipes-kernel/linux/files/libtraceevent-Remove-hard-coded-include-to-usr-local-include-in-Makefile.patch
new file mode 100644
index 0000000..15c397d
--- /dev/null
+++ b/recipes-kernel/linux/files/libtraceevent-Remove-hard-coded-include-to-usr-local-include-in-Makefile.patch
@@ -0,0 +1,36 @@
1Upstream-Status: Backport
2
3From b9e8c37220c80e78289a1e87b50c09418eb59a7e Mon Sep 17 00:00:00 2001
4From: Jack Mitchell <jack.mitchell@dbbroadcast.co.uk>
5Date: Fri, 08 Mar 2013 11:21:52 +0000
6Subject: libtraceevent: Remove hard coded include to /usr/local/include in Makefile
7
8having /usr/local/include hardcoded into the makefile is not necessary
9as this is automatically included by GCC. It also infects cross-compile
10builds with the host systems includes.
11
12Signed-off-by: Jack Mitchell <jack.mitchell@dbbroadcast.co.uk>
13Acked-by: Namhyung Kim <namhyung@kernel.org>
14Cc: Ingo Molnar <mingo@redhat.com>
15Cc: Paul Mackerras <paulus@samba.org>
16Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
17Link: http://lkml.kernel.org/r/1362741712-21308-1-git-send-email-ml@communistcode.co.uk
18Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
19---
20(limited to 'tools/lib/traceevent/Makefile')
21
22diff --git a/tools/lib/traceevent/Makefile b/tools/lib/traceevent/Makefile
23index a20e320..0b0a907 100644
24--- a/tools/lib/traceevent/Makefile
25+++ b/tools/lib/traceevent/Makefile
26@@ -122,7 +122,7 @@ export Q VERBOSE
27
28 EVENT_PARSE_VERSION = $(EP_VERSION).$(EP_PATCHLEVEL).$(EP_EXTRAVERSION)
29
30-INCLUDES = -I. -I/usr/local/include $(CONFIG_INCLUDES)
31+INCLUDES = -I. $(CONFIG_INCLUDES)
32
33 # Set compile option CFLAGS if not set elsewhere
34 CFLAGS ?= -g -Wall
35--
36cgit v0.9.2
diff --git a/recipes-kernel/linux/files/powerpc-Fix-64-bit-builds-with-binutils-2.24.patch b/recipes-kernel/linux/files/powerpc-Fix-64-bit-builds-with-binutils-2.24.patch
new file mode 100644
index 0000000..2fdcc9f
--- /dev/null
+++ b/recipes-kernel/linux/files/powerpc-Fix-64-bit-builds-with-binutils-2.24.patch
@@ -0,0 +1,80 @@
1From 7998eb3dc700aaf499f93f50b3d77da834ef9e1d Mon Sep 17 00:00:00 2001
2From: Guenter Roeck <linux@roeck-us.net>
3Date: Thu, 15 May 2014 09:33:42 -0700
4Subject: powerpc: Fix 64 bit builds with binutils 2.24
5
6Upstream-Status: Backport
7
8With binutils 2.24, various 64 bit builds fail with relocation errors
9such as
10
11arch/powerpc/kernel/built-in.o: In function `exc_debug_crit_book3e':
12 (.text+0x165ee): relocation truncated to fit: R_PPC64_ADDR16_HI
13 against symbol `interrupt_base_book3e' defined in .text section
14 in arch/powerpc/kernel/built-in.o
15arch/powerpc/kernel/built-in.o: In function `exc_debug_crit_book3e':
16 (.text+0x16602): relocation truncated to fit: R_PPC64_ADDR16_HI
17 against symbol `interrupt_end_book3e' defined in .text section
18 in arch/powerpc/kernel/built-in.o
19
20The assembler maintainer says:
21
22 I changed the ABI, something that had to be done but unfortunately
23 happens to break the booke kernel code. When building up a 64-bit
24 value with lis, ori, shl, oris, ori or similar sequences, you now
25 should use @high and @higha in place of @h and @ha. @h and @ha
26 (and their associated relocs R_PPC64_ADDR16_HI and R_PPC64_ADDR16_HA)
27 now report overflow if the value is out of 32-bit signed range.
28 ie. @h and @ha assume you're building a 32-bit value. This is needed
29 to report out-of-range -mcmodel=medium toc pointer offsets in @toc@h
30 and @toc@ha expressions, and for consistency I did the same for all
31 other @h and @ha relocs.
32
33Replacing @h with @high in one strategic location fixes the relocation
34errors. This has to be done conditionally since the assembler either
35supports @h or @high but not both.
36
37Cc: <stable@vger.kernel.org>
38Signed-off-by: Guenter Roeck <linux@roeck-us.net>
39Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
40
41diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
42index 4c0cedf..ce4c68a 100644
43--- a/arch/powerpc/Makefile
44+++ b/arch/powerpc/Makefile
45@@ -150,7 +150,9 @@ endif
46
47 CFLAGS-$(CONFIG_TUNE_CELL) += $(call cc-option,-mtune=cell)
48
49-KBUILD_CPPFLAGS += -Iarch/$(ARCH)
50+asinstr := $(call as-instr,lis 9$(comma)foo@high,-DHAVE_AS_ATHIGH=1)
51+
52+KBUILD_CPPFLAGS += -Iarch/$(ARCH) $(asinstr)
53 KBUILD_AFLAGS += -Iarch/$(ARCH)
54 KBUILD_CFLAGS += -msoft-float -pipe -Iarch/$(ARCH) $(CFLAGS-y)
55 CPP = $(CC) -E $(KBUILD_CFLAGS)
56diff --git a/arch/powerpc/include/asm/ppc_asm.h b/arch/powerpc/include/asm/ppc_asm.h
57index 6586a40..cded7c1 100644
58--- a/arch/powerpc/include/asm/ppc_asm.h
59+++ b/arch/powerpc/include/asm/ppc_asm.h
60@@ -318,11 +318,16 @@ n:
61 addi reg,reg,(name - 0b)@l;
62
63 #ifdef __powerpc64__
64+#ifdef HAVE_AS_ATHIGH
65+#define __AS_ATHIGH high
66+#else
67+#define __AS_ATHIGH h
68+#endif
69 #define LOAD_REG_IMMEDIATE(reg,expr) \
70 lis reg,(expr)@highest; \
71 ori reg,reg,(expr)@higher; \
72 rldicr reg,reg,32,31; \
73- oris reg,reg,(expr)@h; \
74+ oris reg,reg,(expr)@__AS_ATHIGH; \
75 ori reg,reg,(expr)@l;
76
77 #define LOAD_REG_ADDR(reg,name) \
78--
79cgit v0.10.1
80
diff --git a/recipes-kernel/linux/linux-qoriq-sdk-prt.bb b/recipes-kernel/linux/linux-qoriq-sdk-prt.bb
new file mode 100644
index 0000000..275691a
--- /dev/null
+++ b/recipes-kernel/linux/linux-qoriq-sdk-prt.bb
@@ -0,0 +1,37 @@
1inherit kernel
2require recipes-kernel/linux/linux-dtb.inc
3
4DESCRIPTION = "Linux kernel for Freescale platforms"
5SECTION = "kernel"
6LICENSE = "GPLv2"
7
8require recipes-kernel/linux/linux-qoriq-sdk.inc
9
10PR = "${INC_PR}.1"
11
12SCMVERSION ?= "y"
13
14DEPENDS_append = " libgcc"
15KERNEL_CC_append = " ${TOOLCHAIN_OPTIONS}"
16KERNEL_LD_append = " ${TOOLCHAIN_OPTIONS}"
17
18do_configure_prepend() {
19 # copy desired defconfig so we pick it up for the real kernel_do_configure
20 cp ${KERNEL_DEFCONFIG} ${B}/.config
21
22 # add config fragments
23 if [ -f "${DELTA_KERNEL_DEFCONFIG}" ]; then
24 ${S}/scripts/kconfig/merge_config.sh -m .config ${DELTA_KERNEL_DEFCONFIG}
25 fi
26
27 # append sdk version in kernel version if SDK_VERSION is defined
28 if [ -n "${SDK_VERSION}" ]; then
29 echo "CONFIG_LOCALVERSION=\"-${SDK_VERSION}\"" >> ${S}/.config
30 fi
31
32 # Add GIT revision to the local version
33 if [ "${SCMVERSION}" = "y" ]; then
34 head=`git rev-parse --verify --short HEAD 2> /dev/null`
35 printf "%s%s" +g $head > ${S}/.scmversion
36 fi
37}
diff --git a/recipes-kernel/linux/linux-qoriq-sdk.bb b/recipes-kernel/linux/linux-qoriq-sdk.bb
new file mode 100644
index 0000000..275691a
--- /dev/null
+++ b/recipes-kernel/linux/linux-qoriq-sdk.bb
@@ -0,0 +1,37 @@
1inherit kernel
2require recipes-kernel/linux/linux-dtb.inc
3
4DESCRIPTION = "Linux kernel for Freescale platforms"
5SECTION = "kernel"
6LICENSE = "GPLv2"
7
8require recipes-kernel/linux/linux-qoriq-sdk.inc
9
10PR = "${INC_PR}.1"
11
12SCMVERSION ?= "y"
13
14DEPENDS_append = " libgcc"
15KERNEL_CC_append = " ${TOOLCHAIN_OPTIONS}"
16KERNEL_LD_append = " ${TOOLCHAIN_OPTIONS}"
17
18do_configure_prepend() {
19 # copy desired defconfig so we pick it up for the real kernel_do_configure
20 cp ${KERNEL_DEFCONFIG} ${B}/.config
21
22 # add config fragments
23 if [ -f "${DELTA_KERNEL_DEFCONFIG}" ]; then
24 ${S}/scripts/kconfig/merge_config.sh -m .config ${DELTA_KERNEL_DEFCONFIG}
25 fi
26
27 # append sdk version in kernel version if SDK_VERSION is defined
28 if [ -n "${SDK_VERSION}" ]; then
29 echo "CONFIG_LOCALVERSION=\"-${SDK_VERSION}\"" >> ${S}/.config
30 fi
31
32 # Add GIT revision to the local version
33 if [ "${SCMVERSION}" = "y" ]; then
34 head=`git rev-parse --verify --short HEAD 2> /dev/null`
35 printf "%s%s" +g $head > ${S}/.scmversion
36 fi
37}
diff --git a/recipes-kernel/linux/linux-qoriq-sdk.inc b/recipes-kernel/linux/linux-qoriq-sdk.inc
new file mode 100644
index 0000000..83c632e
--- /dev/null
+++ b/recipes-kernel/linux/linux-qoriq-sdk.inc
@@ -0,0 +1,37 @@
1LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
2
3PV = "3.8"
4INC_PR = "r11"
5
6SRC_URI = "git://git.freescale.com/ppc/sdk/linux.git;nobranch=1"
7SRCREV = "3edd71eeb4e4ae27baf539e0a5f0c8e8261bf65b"
8SRCREV_t2080qds = "47914f6cf77197921c648c6ea8977974fa54d03a"
9SRCREV_t2080qds-64b = "47914f6cf77197921c648c6ea8977974fa54d03a"
10
11KSRC ?= ""
12S = '${@base_conditional("KSRC", "", "${WORKDIR}/git", "${KSRC}", d)}'
13# make everything compatible for the time being
14COMPATIBLE_MACHINE_$MACHINE = "$MACHINE"
15
16python () {
17 ma = d.getVar("DISTRO_FEATURES", True)
18 arch = d.getVar("OVERRIDES", True)
19
20 # the : after the arch is to skip the message on 64b
21 if not "multiarch" in ma and ("e5500:" in arch or "e6500:" in arch):
22 raise bb.parse.SkipPackage("Building the kernel for this arch requires multiarch to be in DISTRO_FEATURES")
23
24 promote_kernel = d.getVar('BUILD_64BIT_KERNEL')
25
26 if promote_kernel == "1":
27 d.setVar('KERNEL_CC_append', ' -m64')
28 d.setVar('KERNEL_LD_append', ' -melf64ppc')
29
30 error_qa = d.getVar('ERROR_QA', True)
31 if 'arch' in error_qa:
32 d.setVar('ERROR_QA', error_qa.replace(' arch', ''))
33
34 all_qa = d.getVar('ALL_QA', True)
35 if 'arch' in all_qa:
36 d.setVar('ALL_QA', all_qa.replace(' arch', ''))
37}
diff --git a/recipes-kernel/linux/linux-qoriq.inc b/recipes-kernel/linux/linux-qoriq.inc
new file mode 100644
index 0000000..642db77
--- /dev/null
+++ b/recipes-kernel/linux/linux-qoriq.inc
@@ -0,0 +1,46 @@
1inherit kernel qoriq_build_64bit_kernel
2require recipes-kernel/linux/linux-dtb.inc
3
4DESCRIPTION = "Linux kernel for Freescale platforms"
5SECTION = "kernel"
6LICENSE = "GPLv2"
7LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
8
9KSRC ?= ""
10S = '${@base_conditional("KSRC", "", "${WORKDIR}/git", "${KSRC}", d)}'
11
12DEPENDS_append = " libgcc"
13KERNEL_CC_append = " ${TOOLCHAIN_OPTIONS}"
14KERNEL_LD_append = " ${TOOLCHAIN_OPTIONS}"
15
16SCMVERSION ?= "y"
17DELTA_KERNEL_DEFCONFIG ?= ""
18do_configure_prepend() {
19 # copy desired defconfig so we pick it up for the real kernel_do_configure
20 cp ${KERNEL_DEFCONFIG} ${B}/.config
21
22 # add config fragments
23 for deltacfg in ${DELTA_KERNEL_DEFCONFIG}; do
24 if [ -f "${WORKDIR}/${deltacfg}" ]; then
25 ${S}/scripts/kconfig/merge_config.sh -m .config ${WORKDIR}/${deltacfg}
26 elif [ -f "${S}/arch/powerpc/configs/${deltacfg}" ]; then
27 ${S}/scripts/kconfig/merge_config.sh -m .config \
28 ${S}/arch/powerpc/configs/${deltacfg}
29 fi
30 done
31
32 #add git revision to the local version
33 if [ "${SCMVERSION}" = "y" ]; then
34 # append sdk version if SDK_VERSION is defined
35 sdkversion=''
36 if [ -n "${SDK_VERSION}" ]; then
37 sdkversion="-${SDK_VERSION}"
38 fi
39 head=`git rev-parse --verify --short HEAD 2> /dev/null`
40 printf "%s%s%s" $sdkversion +g $head > ${S}/.scmversion
41 fi
42}
43
44# make everything compatible for the time being
45COMPATIBLE_MACHINE_$MACHINE = "$MACHINE"
46
diff --git a/recipes-kernel/linux/linux-qoriq_3.12.bb b/recipes-kernel/linux/linux-qoriq_3.12.bb
new file mode 100644
index 0000000..39270d4
--- /dev/null
+++ b/recipes-kernel/linux/linux-qoriq_3.12.bb
@@ -0,0 +1,10 @@
1require recipes-kernel/linux/linux-qoriq.inc
2
3SRC_URI = "git://git.freescale.com/ppc/sdk/linux.git;nobranch=1 \
4 file://powerpc-Fix-64-bit-builds-with-binutils-2.24.patch \
5 file://Fix-for-CVE-2014-5045-fs-umount-on-symlink-leak.patch \
6 file://Fix-CVE-2014-5077-sctp-inherit-auth-capable-on-INIT-collisions.patch \
7 file://Fix-CVE-2014-5471_CVE-2014-5472.patch \
8"
9SRCREV = "c29fe1a733308cbe592b3af054a97be1b91cf2dd"
10
diff --git a/recipes-kernel/lttng/lttng-modules_%.bbappend b/recipes-kernel/lttng/lttng-modules_%.bbappend
new file mode 100644
index 0000000..5415f16
--- /dev/null
+++ b/recipes-kernel/lttng/lttng-modules_%.bbappend
@@ -0,0 +1,18 @@
1inherit distro_features_check
2
3REQUIRED_DISTRO_FEATURES_append_e6500 ?= "multiarch"
4
5python () {
6
7 promote_kernel = d.getVar('BUILD_64BIT_KERNEL')
8
9 if promote_kernel == "1":
10 d.appendVar('KERNEL_CC', ' -m64')
11 d.appendVar('KERNEL_LD', ' -melf64ppc')
12
13
14 error_qa = d.getVar('ERROR_QA', True)
15 if 'arch' in error_qa:
16 d.setVar('ERROR_QA', error_qa.replace(' arch', ''))
17
18}
diff --git a/recipes-kernel/qoriq-debug/qoriq-debug_git.bb b/recipes-kernel/qoriq-debug/qoriq-debug_git.bb
new file mode 100644
index 0000000..5b0256f
--- /dev/null
+++ b/recipes-kernel/qoriq-debug/qoriq-debug_git.bb
@@ -0,0 +1,35 @@
1DESCRIPTION = "QorIQ Debug File System Module"
2SECTION = "qoriq-debug"
3LICENSE = "GPLv2+"
4LIC_FILES_CHKSUM = "file://COPYING;md5=e29234dd5d40dc352cc60cc0c93437ba"
5
6inherit module autotools
7
8SRCBRANCH = "sdk-v1.4.x"
9SRC_URI = "git://git.freescale.com/ppc/sdk/qoriq-debug.git;branch=${SRCBRANCH}"
10SRCREV = "08de2902af9a79ba9e436a284b8d7754b351f608"
11
12S = "${WORKDIR}/git"
13
14EXTRA_OECONF += "--with-linux=${STAGING_KERNEL_DIR}"
15EXTRA_OEMAKE += 'SYSROOT="${D}"'
16
17python () {
18 ma = d.getVar("DISTRO_FEATURES", True)
19 arch = d.getVar("OVERRIDES", True)
20
21 # the : after the arch is to skip the message on 64b
22 if not "multiarch" in ma and ("e5500:" in arch or "e6500:" in arch):
23 raise bb.parse.SkipPackage("Building the kernel for this arch requires multiarch to be in DISTRO_FEATURES")
24
25 promote_kernel = d.getVar('BUILD_64BIT_KERNEL')
26
27 if promote_kernel == "1":
28 d.setVar('KERNEL_CC_append', ' -m64')
29 d.setVar('KERNEL_LD_append', ' -melf64ppc')
30
31 error_qa = d.getVar('ERROR_QA', True)
32 if 'arch' in error_qa:
33 d.setVar('ERROR_QA', error_qa.replace(' arch', ''))
34}
35
diff --git a/recipes-kernel/uio-seville/uio-seville_0.1.bb b/recipes-kernel/uio-seville/uio-seville_0.1.bb
new file mode 100755
index 0000000..0307a6d
--- /dev/null
+++ b/recipes-kernel/uio-seville/uio-seville_0.1.bb
@@ -0,0 +1,12 @@
1DESCRIPTION = "UIO driver for T1040 L2 Switch"
2LICENSE = "GPLv2"
3LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e"
4
5SRC_URI = "git://git.freescale.com/ppc/sdk/l2switch-uio.git"
6SRCREV = "1077880ff3557d44dc5dd9fe5e2f4ee1474fb25f"
7
8inherit module
9
10S = "${WORKDIR}/git/uio-driver"
11
12COMPATIBLE_MACHINE = "(t1040qds|t1040rdb|t1040rdb-64b)"