aboutsummaryrefslogtreecommitdiffstats
path: root/meta-networking/recipes-extended
AgeCommit message (Collapse)Author
2017-02-22iscsitarget: update patch to contain changes required to build with only ↵Jagadeesh Krishnanjanappa
linux v4.8 and above 1. Removes lines related "LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0)", as they are included in recent build_with_updated_bio_struct_of_linux_v4.3_and_above.patch. 2. Updated incorrect "#if 0//LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)" line. 3. Updated patch to have in compliance with recent build_with_updated_bio_struct_of_linux_v4.3_and_above.patch. Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
2017-02-22iscsitarget: use upstream to build with linux kernel >= 4.3Jagadeesh Krishnanjanappa
1. The original patch is at http://launchpadlibrarian.net/227478885/iscsitarget_1.4.20.3+svn502-2ubuntu2_1.4.20.3+svn502-2ubuntu3.diff.gz, those changes were taken using #ifs to allow compilation of iscsitarget package with kernel versions < 4.3. 2. It helps to maintain the patches in future, when iscsitarget is updated. Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
2017-02-22iscsitarget: fix inconsistent crash while login to iscsi target from initiatorJagadeesh Krishnanjanappa
This patch fixes below inconsistent crash when trying to login to iSCSI target server, observed with linux kernel v4.1. -- snip -- CPU: 1 PID: 29883 Comm: istd1 Tainted: G O 4.1.35-rt40-yocto-standard #1 Hardware name: To be filled by O.E.M. To be filled by O.E.M./Larne CRB, BIOS 4.6.5.4 09/18/2014 task: ffff88020f1f30c0 ti: ffff8800d7f3c000 task.ti: ffff8800d7f3c000 RIP: 0010:[<ffffffff8140d1ae>] [<ffffffff8140d1ae>] copy_to_iter+0x3e/0x280 RSP: 0018:ffff8800d7f3f728 EFLAGS: 00010246 RAX: 00000000d7f3f928 RBX: 0000000000000030 RCX: 0000000000000030 RDX: ffff8800d7f3f900 RSI: 0000000000000030 RDI: ffff8800d1501e82 RBP: ffff8800d7f3f768 R08: 00000000c127d467 R09: 0000000000000000 R10: ffff88020f29e118 R11: 0000000000000004 R12: ffff8800d7f3f900 R13: 0000000000000030 R14: 0000000000000001 R15: 0000000000000246 FS: 00007f86f9c4c700(0000) GS:ffff88021ec80000(0000) knlGS:00000000f7733700 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 000000000000024e CR3: 00000000d38b0000 CR4: 00000000000406e0 Stack: ffff880214f14ec0 ffff8800d1501e82 ffff8800d7f3f748 0000000000000030 ffff88020f122500 0000000000000030 0000000000000000 0000000000000030 ffff8800d7f3f7c8 ffffffff81806981 ffff8800d7f3f798 ffffffff8105d72a Call Trace: [<ffffffff81806981>] skb_copy_datagram_iter+0x71/0x2b0 [<ffffffff8105d72a>] ? __local_bh_enable_ip+0x4a/0xb0 [<ffffffff8186c9c0>] tcp_recvmsg+0x5e0/0xbb0 [<ffffffff81898ded>] inet_recvmsg+0x8d/0xb0 [<ffffffff817f49f3>] sock_recvmsg+0x13/0x20 [<ffffffffa01655c3>] do_recv+0xe3/0x1f0 [iscsi_trgt] [<ffffffff81153097>] ? __mod_zone_page_state+0x77/0xb0 [<ffffffff81417613>] ? __this_cpu_preempt_check+0x13/0x20 [<ffffffff81153097>] ? __mod_zone_page_state+0x77/0xb0 [<ffffffff8140fed5>] ? find_next_bit+0x15/0x30 [<ffffffff813fa8e0>] ? cpumask_next_and+0x30/0x50 [<ffffffff8113f785>] ? __alloc_pages_nodemask+0x165/0x980 [<ffffffff8107e370>] ? preempt_count_add+0xd0/0xf0 [<ffffffff8195da8b>] ? _raw_spin_lock+0x1b/0x60 [<ffffffff8109cfa8>] ? cpuacct_charge+0x58/0x70 [<ffffffff81089039>] ? update_curr+0xb9/0x190 [<ffffffff81417613>] ? __this_cpu_preempt_check+0x13/0x20 [<ffffffff8112b43f>] ? __perf_event_task_sched_in+0x4f/0x90 [<ffffffff8195dbbd>] ? _raw_spin_unlock_irq+0x1d/0x40 [<ffffffff8107e223>] ? finish_task_switch+0x63/0xe0 [<ffffffff81959e3b>] ? __schedule+0x38b/0x980 [<ffffffff8107e370>] ? preempt_count_add+0xd0/0xf0 [<ffffffffa0165c65>] istd+0x4d5/0x1390 [iscsi_trgt] [<ffffffff81959e3b>] ? __schedule+0x38b/0x980 [<ffffffffa0165790>] ? nthread_wakeup+0x40/0x40 [iscsi_trgt] [<ffffffffa0165790>] ? nthread_wakeup+0x40/0x40 [iscsi_trgt] [<ffffffff8107748b>] kthread+0xbb/0xe0 [<ffffffff81950000>] ? wireless_dev_seq_show+0x100/0x180 [<ffffffff810773d0>] ? kthread_worker_fn+0x170/0x170 [<ffffffff8195e7a2>] ret_from_fork+0x42/0x70 [<ffffffff810773d0>] ? kthread_worker_fn+0x170/0x170 Code: 5a 10 48 89 7d c8 48 39 f3 48 0f 47 de 48 85 db 0f 84 6f 01 00 00 8b 02 49 89 d4 4c 8b 72 08 4c 8b 7a 18 a8 04 0f 85 a2 00 00 00 <4d> 8b 6f 08 4d 29 f5 49 39 dd 4c 0f 47 eb a8 02 0f 85 5c 01 00 RSP <ffff8800d7f3f728> CR2: 000000000000024e ------------[ cut here ]------------ -- snip -- The original patch is at http://launchpadlibrarian.net/218100509/iscsitarget_1.4.20.3+svn499-0ubuntu2_1.4.20.3+svn499-0ubuntu2.1.diff.gz, those changes were taken using #ifs, inorder to allow compilation of iscsitarget package with linux kernels < 3.19. Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
2017-02-22iscsitarget: Fix call trace of ahash API callingHe Zhe
The previous build_with_updated_interfaces_of_linux_v4.8_and_above.patch does not alloc struct ahash_request before using it. This will cause the kernel call trace below when calling gen_scsiid on kernel 4.8 or later version. This patch normalizes the calling of ahash API according to the example in kernel doc Documentation/crypto/api-intro.txt. BUG: unable to handle kernel NULL pointer dereference at 0000000000000020 IP: [<ffffffffa0008d45>] volume_add+0x625/0x7f0 [iscsi_trgt] PGD dd77067 PUD dd7c067 PMD 0 Oops: 0000 [#1] PREEMPT SMP Modules linked in: iscsi_trgt(O) CPU: 0 PID: 350 Comm: ietd Tainted: G O 4.8.12-yocto-standard #1 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.9.3-0-ge2fc41e-prebuilt.qemu-project.org 04/01/2014 task: ffff88000dfe2c00 task.stack: ffff88000de88000 RIP: 0010:[<ffffffffa0008d45>] [<ffffffffa0008d45>] volume_add+0x625/0x7f0 [iscsi_trgt] RSP: 0018:ffff88000de8bd90 EFLAGS: 00000206 RAX: 000000000000ddfa RBX: ffff88000ddd1d78 RCX: ffffea0000000000 RDX: 0000000000000600 RSI: 0000000000000000 RDI: ffff88000ddd1c14 RBP: ffff88000de8be38 R08: ffff88000de44180 R09: ffff88000de8bdd0 R10: 000000000000002c R11: 0000000000000000 R12: ffff88000ddfa600 R13: 0000000000000000 R14: 0000000000000000 R15: ffff88000de92200 FS: 00007f767548b700(0000) GS:ffff88000fc00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000020 CR3: 000000000dd2d000 CR4: 00000000000006f0 Stack: ffff88000de8bdd0 ffff88000dc1b3d0 ffff88000ddfa650 ffff88000ddfa660 ffff88000df8f000 ffff88000ddd1c00 ffff88000de44180 0000000000000000 ffffea0000377440 0000000f00000c14 0000000000000000 0000000000000000 Call Trace: [<ffffffffa0006547>] ioctl+0x217/0x390 [iscsi_trgt] [<ffffffff81192574>] do_vfs_ioctl+0x94/0x5c0 [<ffffffff8117ff73>] ? vfs_read+0xf3/0x120 [<ffffffff81192b19>] SyS_ioctl+0x79/0x90 [<ffffffff8191a45b>] entry_SYSCALL_64_fastpath+0x13/0x8f Code: 4c 01 e0 0f 82 a2 01 00 00 48 b9 00 00 00 80 ff 77 00 00 48 01 c8 45 31 f6 48 b9 00 00 00 00 00 ea ff ff 89 54 24 68 48 c1 e8 0c <49> 8b 56 20 4c 89 44 24 20 4c 89 f7 48 c1 e0 06 c7 44 24 6c 04 RIP [<ffffffffa0008d45>] volume_add+0x625/0x7f0 [iscsi_trgt] RSP <ffff88000de8bd90> CR2: 0000000000000020 end trace cd2016297df21635 ] ietd_response_recv 200 0 -5 Input/output error. Signed-off-by: He Zhe <zhe.he@windriver.com> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
2016-10-20iscsitarget: resolve build error with linux kernel 4.8Jagadeesh Krishnanjanappa
The below changes in kernel source, triggered iscsitarget build fail with linux kernel v4.8. 1. An extra 'flags' argument has been passed to vfs_readv/vfs_writev syscalls in v4.8. So, set this argument to "0" for now (as there is no real need for that). Ref: https://github.com/torvalds/linux/commit/793b80ef14af56d20c998265287648ad34239b6f Solves: -- snip -- TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/nthread.c: In function 'write_data': TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/nthread.c:350:9: error: too few arguments to function 'vfs_writev' res = vfs_writev(file, (struct iovec __user *) iop, count, &off); ^~~~~~~~~~ -- snip -- 2. Redefine dropped PAGE_CACHE_* and page_cache_{get,release} definitions, as they have been dropped with v4.8 Ref: https://github.com/torvalds/linux/commit/1fa64f198b9f8d6ec0f7aec7c18dc94684391140 Solves: -- snip -- TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/param.c: In function 'sess_param_check': TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/param.c:48:41: error: 'PAGE_CACHE_SIZE' undeclared (first use in this function) (u32) ((ISCSI_CONN_IOV_MAX - 1) * PAGE_CACHE_SIZE)); ^ -- snip -- 3. Replace crypto_hash interfaces with crypto_ahash interfaces, Ref: https://github.com/torvalds/linux/commit/896545098777564212b9e91af4c973f094649aa7 Ref: https://www.redhat.com/archives/dm-devel/2016-January/msg00244.html Solves: -- snip -- TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/digest.c: In function 'digest_init': TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/digest.c:42:23: error: implicit declaration of function 'crypto_alloc_hash' [-Werror=implicit-function-declaration] conn->rx_hash.tfm = crypto_alloc_hash("crc32c", 0, ^~~~~~~~~~~~~~~~~ TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/digest.c: In function 'digest_cleanup': TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/digest.c:77:3: error: implicit declaration of function 'crypto_free_hash' [-Werror=implicit-function-declaration] crypto_free_hash(conn->tx_hash.tfm); ^~~~~~~~~~~~~~~~ -- snip -- 4. The earlier "rw" parameter has been set in "bi_rw" within bio structure, hence remove "rw" argument. Ref: https://github.com/torvalds/linux/commit/4e49ea4a3d276365bf7396c9b77b4d1d5923835a Solves: -- snip -- TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/block-io.c:140:14: warning: passing argument 1 of 'submit_bio' makes pointer from integer without a cast [-Wint-conversion] submit_bio(rw, bio); ^~ -- snip -- 5. The 'len' argument from sk_data_ready() callback has been removed in linux kernel v4.3 and above. Ref: https://github.com/torvalds/linux/commit/676d23690fb62b5d51ba5d659935e9f7d9da9f8e Solves: -- snip -- TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/conn.c: In function 'iet_socket_bind': TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/conn.c:143:38: error: assignment from incompatible pointer type [-Werror=incompatible-pointer-types] target->nthread_info.old_data_ready = conn->sock->sk->sk_data_ready; ^ TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/conn.c:144:32: error: assignment from incompatible pointer type [-Werror=incompatible-pointer-types] conn->sock->sk->sk_data_ready = iet_data_ready; ^ -- snip -- 6. A. The "size" argument has been dropped from sock_recvmsg syscall in v4.8, as all callers have it equal to msg_data_left(msg). B. 'struct user_msghdr' is being used for userland-side msghdr instead of 'struct msghdr', which is used for kernel-side msghdr in linux v3.19 and above, so typecase it while calling sock_recvmsg syscall. Ref: https://github.com/torvalds/linux/commit/2da62906b1e298695e1bb725927041cd59942c98 https://github.com/torvalds/linux/commit/666547ff591cebdedc4679bf6b1b3f3383a8dea3 Solves: -- snip -- TOPDIR/tmp-glibc/work-shared/qemux86/kernel-source/include/linux/net.h:222:5: note: expected 'struct msghdr *' but argument is of type 'struct user_msghdr *' int sock_recvmsg(struct socket *sock, struct msghdr *msg, int flags); ^~~~~~~~~~~~ TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/nthread.c:129:8: error: too many arguments to function 'sock_recvmsg' res = sock_recvmsg(conn->sock, &msg, len, MSG_DONTWAIT | MSG_NOSIGNAL); ^~~~~~~~~~~~ -- snip -- Detailed error log is at: http://errors.yoctoproject.org/Errors/Details/83334/ Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
2016-09-15iscsitarget,netmap-moduls,vboxguestdrivers: Blacklist, not compatible with ↵Martin Jansa
default kernel version 4.8 Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2016-09-05iscsitarget: fix QA warning for GNU_HASHYi Zhao
Split kernel module and user space build. Ensure the LDFLAGS is passed when build user space code. Signed-off-by: Yi Zhao <yi.zhao@windriver.com> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
2016-08-22meta-oe: remove trailing spacesMartin Jansa
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2016-04-20iscsitarget: resolve build error with linux kernel 4.3 and aboveJagadeesh Krishnanjanappa
1. test_bit was used to return true boolean value, if BIO_UPTODATE bit of bio->bi_flags is set. But the same job can be done by checking bio->bi_error, implemented in linux kernel 4.3 and above. If bio->bi_error is set, then it denotes error. Ref: https://github.com/torvalds/linux/commit/4246a0b63bd8f56a1469b12eafeb875b1041a451 It solves below build error: -- snip -- iscsitarget-1.4.20.3+svn502/kernel/block-io.c:40:19: error: 'BIO_UPTODATE' undeclared (first use in this function) error = test_bit(BIO_UPTODATE, &bio->bi_flags) ? error : -EIO; -- CUT -- 2. bio can always be filled to a maximum value of BIO_MAX_PAGES, so no need to check for min value for linux kernel 4.3 and above. Ref: https://github.com/torvalds/linux/commit/b54ffb73cadcdcff9cc1ae0e11f502407e3e2e4c It solves below build error: -- snip -- iscsitarget-1.4.20.3+svn502/kernel/block-io.c:80:15: error: implicit declaration of function 'bio_get_nr_vecs' [-Werror=implicit-function-declaration] max_pages = bio_get_nr_vecs(bio_data->bdev); -- CUT -- 3. Remove unwanted explicit setting of CFLAGS and CC flags. Setting them in oe_runmake command, will override CFLAGS mentioned in iscsitarget Makefile and resulting in a below error: -- snip -- In file included from iscsid.c:38:0: iscsid.h:38:19: fatal error: iet_u.h: No such file or directory compilation terminated. In file included from conn.c:15:0: iscsid.h:38:19: fatal error: iet_u.h: No such file or directory compilation terminated. -- CUT -- Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
2016-02-29iscsitarget: split the kernel module into separate packageJackie Huang
inherit module instead of module-base, so the module is split into kernel-module-iscsi-trgt and make PN rdepends on it. Signed-off-by: Jackie Huang <jackie.huang@windriver.com> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
2016-02-22iscsitarget: blacklistJoe MacDonald
Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
2016-01-05iscsitarget: resolve build error if CONFIG_IPV6 config is not enabledJagadeesh Krishnanjanappa
The element skc_v6_daddr (in struct sock_common) is defined in kernel source only when CONFIG_IPV6 is enabled. Hence, access sk_v6_daddr element (i.e __sk_common.skc_v6_daddr) only when CONFIG_IPV6 is defined; to fix below error in world build: -- snip -- /home/jenkins/oe/world/shr-core/tmp-glibc/work-shared/qemux86/kernel-source/include/net/sock.h:330:33: error: 'struct sock_common' has no member named 'skc_v6_daddr' -- CUT -- Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
2016-01-04mime-construct: move from meta-networking to meta-perlKai Kang
mime-construct only provides a perl script and depends on many perl modules that cause layer meta-networking depends on meta-perl. Move mime-construct from meta-networking to meta-perl to avoid the layer dependency. Signed-off-by: Kai Kang <kai.kang@windriver.com> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2016-01-04mime-construct: update runtime dependenciesKai Kang
Update runtime dependencies of mime-construct: * drop WaitStat.pm and Signal.pm which are from libproc-waitstat-perl and its dependency libipc-signal-perl * add patch to return 0 for option '--help' * replace postfix with msmtp which is more lightweight * add perl modules which are required for mime-construct to run Signed-off-by: Kai Kang <kai.kang@windriver.com> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2015-09-14iscsitarget: add new recipeJagadeesh Krishnanjanappa
iSCSI Enterprise Target is aimed to develop an open source iSCSI target with professional features, that works well in enterprise environment under real workload, and is scalable and versatile enough to meet the challenge of future storage needs and developments. Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
2015-09-11mime-construct: add new recipeJagadeesh Krishnanjanappa
mime-construct constructs and (by default) mails MIME messages. It is entirely driven from the command line, it is designed to be used by other programs, or people who act like programs." Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>