12 Commits

Author SHA1 Message Date
Jagadeesh Krishnanjanappa 93b0d65793 iscsitarget: resolve build error with linux kernel 4.8
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-10-20 11:16:55 -04:00
Martin Jansa 870df18019 iscsitarget,netmap-moduls,vboxguestdrivers: Blacklist, not compatible with default kernel version 4.8
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2016-09-15 10:22:50 +02:00
Yi Zhao c13a7062c9 iscsitarget: fix QA warning for GNU_HASH
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-09-05 13:34:11 -04:00
Martin Jansa dc48e768f5 meta-oe: remove trailing spaces
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2016-08-22 15:56:29 +02:00
Jagadeesh Krishnanjanappa ee61becc5b iscsitarget: resolve build error with linux kernel 4.3 and above
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-04-20 15:10:45 -04:00
Jackie Huang a6abc25189 iscsitarget: split the kernel module into separate package
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-29 16:23:35 -05:00
Joe MacDonald 1159facd97 iscsitarget: blacklist
Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
2016-02-22 19:51:22 -05:00
Jagadeesh Krishnanjanappa 2f2418bb40 iscsitarget: resolve build error if CONFIG_IPV6 config is not enabled
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-05 12:43:33 -05:00
Kai Kang 40d6a19aa3 mime-construct: move from meta-networking to meta-perl
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-04 14:57:09 +01:00
Kai Kang 7a87ed81ed mime-construct: update runtime dependencies
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>
2016-01-04 14:57:09 +01:00
Jagadeesh Krishnanjanappa fa855df1a0 iscsitarget: add new recipe
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-14 16:14:04 -04:00
Jagadeesh Krishnanjanappa 4b53209020 mime-construct: add new recipe
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>
2015-09-11 10:39:00 -04:00