diff --git a/meta/recipes-core/util-linux/util-linux.inc b/meta/recipes-core/util-linux/util-linux.inc
index f2f9a04..00b332a 100644
--- a/meta/recipes-core/util-linux/util-linux.inc
+++ b/meta/recipes-core/util-linux/util-linux.inc
@@ -8,16 +8,16 @@ SECTION = "base"
 LICENSE = "GPLv2+ & LGPLv2.1+ & BSD"
 
 LIC_FILES_CHKSUM = "file://README.licensing;md5=9c920d811858a74b67a36ba23cbaa95f \
-                    file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
-                    file://Documentation/licenses/COPYING.GPLv2;md5=8ca43cbc842c2336e835926c2166c28b \
-                    file://Documentation/licenses/COPYING.LGPLv2.1;md5=bbb461211a33b134d42ed5ee802b37ff \
+                    file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+                    file://Documentation/licenses/COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+                    file://Documentation/licenses/COPYING.LGPLv2.1;md5=4fbd65380cdd255951079008b364516c \
                     file://Documentation/licenses/COPYING.BSD-3;md5=58dcd8452651fc8b07d1f65ce07ca8af \
-                    file://Documentation/licenses/COPYING.UCB;md5=263860f8968d8bafa5392cab74285262 \
-                    file://getopt/COPYING;md5=c3a41733416fb80af7ba1b7e1f712551"
+                    file://Documentation/licenses/COPYING.UCB;md5=263860f8968d8bafa5392cab74285262"
 
 inherit autotools gettext pkgconfig
 DEPENDS = "zlib ncurses"
 DEPENDS_append_class-native = " lzo-native"
+DEPENDS_append_class-target = " libpam"
 
 SRC_URI = "${KERNELORG_MIRROR}/linux/utils/util-linux/v${MAJOR_VERSION}/util-linux-${PV}.tar.bz2 \
            file://MCONFIG \
@@ -31,7 +31,7 @@ PACKAGES =+ "util-linux-agetty util-linux-fdisk util-linux-cfdisk util-linux-sfd
              util-linux-mount util-linux-readprofile util-linux-libblkid \
              util-linux-libblkid-dev util-linux-libuuid util-linux-libuuid-dev \
              util-linux-uuidgen util-linux-lscpu util-linux-fsck util-linux-blkid \
-             util-linux-mkfs util-linux-mcookie"
+             util-linux-mkfs util-linux-mcookie util-linux-systemd"
 
 EXTRA_OECONF = "--libdir=${base_libdir} --disable-use-tty-group \
                 --disable-makeinstall-chown --enable-elvtune --enable-init \
@@ -42,6 +42,8 @@ EXTRA_OECONF = "--libdir=${base_libdir} --disable-use-tty-group \
 		usrsbin_execdir='${sbindir}' \
 "
 
+EXTRA_OECONF_append_class-native = " --disable-login --disable-su"
+
 FILES_${PN}-doc += "${datadir}/getopt/getopt-*.*"
 
 FILES_util-linux-agetty = "${base_sbindir}/agetty"
@@ -70,6 +72,8 @@ FILES_util-linux-blkid = "${base_sbindir}/blkid*"
 RCONFLICTS_util-linux-blkid = "e2fsprogs-blkid"
 RREPLACES_util-linux-blkid = "e2fsprogs-blkid"
 
+FILES_${PN}-systemd = "${systemd_unitdir}/system/"
+
 RDEPENDS_${PN} = "util-linux-umount util-linux-swaponoff util-linux-losetup"
 RRECOMMENDS_${PN} = "util-linux-fdisk util-linux-cfdisk util-linux-sfdisk util-linux-mount util-linux-readprofile util-linux-mkfs "
 
@@ -80,7 +84,7 @@ do_compile () {
 	set -e
 	install ${WORKDIR}/MCONFIG ${S}/MCONFIG
 	install ${WORKDIR}/make_include ${S}/make_include
-	install ${WORKDIR}/swapargs.h ${S}/mount/swapargs.h
+	install ${WORKDIR}/swapargs.h ${S}/mount-deprecated/swapargs.h
 	install ${WORKDIR}/defines.h ${S}/defines.h
 	oe_runmake ARCH=${TARGET_ARCH} CPU= CPUOPT= 'OPT=${CFLAGS}' 
 }
diff --git a/meta/recipes-core/util-linux/util-linux/add-aarch64-support.patch b/meta/recipes-core/util-linux/util-linux/add-aarch64-support.patch
index 4480f13..a3c72c9 100644
--- a/meta/recipes-core/util-linux/util-linux/add-aarch64-support.patch
+++ b/meta/recipes-core/util-linux/util-linux/add-aarch64-support.patch
@@ -2,8 +2,8 @@
  fdisk/fdiskbsdlabel.h |    1 +
  1 file changed, 1 insertion(+)
 
---- util-linux-2.21.2.orig/fdisk/fdiskbsdlabel.h
-+++ util-linux-2.21.2/fdisk/fdiskbsdlabel.h
+--- util-linux-2.21.2.orig/fdisks/fdiskbsdlabel.h
++++ util-linux-2.21.2/fdisks/fdiskbsdlabel.h
 @@ -46,10 +46,11 @@
  
  #define BSD_LINUX_BOOTDIR "/usr/ucb/mdec"
diff --git a/meta/recipes-core/util-linux/util-linux/uclibc-__progname-conflict.patch b/meta/recipes-core/util-linux/util-linux/uclibc-__progname-conflict.patch
index 45826b1..d4aeb0c 100644
--- a/meta/recipes-core/util-linux/util-linux/uclibc-__progname-conflict.patch
+++ b/meta/recipes-core/util-linux/util-linux/uclibc-__progname-conflict.patch
@@ -16,16 +16,16 @@ make[3]: *** [cache.lo] Error 1
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 
 Upstream-Status: Pending
-Index: util-linux-2.19.1/configure.ac
+Index: util-linux-2.22/configure.ac
 ===================================================================
---- util-linux-2.19.1.orig/configure.ac
-+++ util-linux-2.19.1/configure.ac
-@@ -250,7 +250,7 @@ esac
+--- util-linux-2.22.orig/configure.ac	2012-09-04 05:57:00.000000000 -0700
++++ util-linux-2.22/configure.ac	2012-09-22 22:50:50.816612998 -0700
+@@ -377,7 +377,7 @@
  
  
  AC_MSG_CHECKING(whether program_invocation_short_name is defined)
 -AC_TRY_COMPILE([#include <argp.h>],
 +AC_TRY_COMPILE([#include <errno.h>],
-                [program_invocation_short_name = "test";],
-                AC_DEFINE(HAVE_PROGRAM_INVOCATION_SHORT_NAME, 1,
-                          [Define if program_invocation_short_name is defined])
+ 	       [program_invocation_short_name = "test";],
+ 	       AC_DEFINE(HAVE_PROGRAM_INVOCATION_SHORT_NAME, 1,
+ 			 [Define if program_invocation_short_name is defined])
diff --git a/meta/recipes-core/util-linux/util-linux/util-linux-ng-replace-siginterrupt.patch b/meta/recipes-core/util-linux/util-linux/util-linux-ng-replace-siginterrupt.patch
index ef56048..a192334 100644
--- a/meta/recipes-core/util-linux/util-linux/util-linux-ng-replace-siginterrupt.patch
+++ b/meta/recipes-core/util-linux/util-linux/util-linux-ng-replace-siginterrupt.patch
@@ -1,10 +1,10 @@
 Upstream-Status: Pending
 
-Index: util-linux-2.21/login-utils/login.c
+Index: util-linux-2.22/login-utils/login.c
 ===================================================================
---- util-linux-2.21.orig/login-utils/login.c
-+++ util-linux-2.21/login-utils/login.c
-@@ -1216,6 +1216,8 @@ int main(int argc, char **argv)
+--- util-linux-2.22.orig/login-utils/login.c	2012-07-23 14:21:56.000000000 -0700
++++ util-linux-2.22/login-utils/login.c	2012-09-22 22:48:24.836621168 -0700
+@@ -1231,6 +1231,8 @@
  	char *buff;
  	int childArgc = 0;
  	int retcode;
@@ -13,14 +13,14 @@ Index: util-linux-2.21/login-utils/login.c
  
  	char *pwdbuf = NULL;
  	struct passwd *pwd = NULL, _pwd;
-@@ -1229,7 +1231,9 @@ int main(int argc, char **argv)
- 	timeout = getlogindefs_num("LOGIN_TIMEOUT", LOGIN_TIMEOUT);
+@@ -1244,7 +1246,9 @@
+ 	timeout = (unsigned int)getlogindefs_num("LOGIN_TIMEOUT", LOGIN_TIMEOUT);
  
  	signal(SIGALRM, timedout);
 -	siginterrupt(SIGALRM, 1);	/* we have to interrupt syscalls like ioclt() */
 +	(void) sigaction(SIGALRM, NULL, &act);
 +	act.sa_flags &= ~SA_RESTART;
 +	sigaction(SIGALRM, &act, NULL);
- 	alarm((unsigned int)timeout);
+ 	alarm(timeout);
  	signal(SIGQUIT, SIG_IGN);
  	signal(SIGINT, SIG_IGN);
diff --git a/meta/recipes-core/util-linux/util-linux_2.21.2.bb b/meta/recipes-core/util-linux/util-linux_2.22.bb
similarity index 88%
rename from meta/recipes-core/util-linux/util-linux_2.21.2.bb
rename to meta/recipes-core/util-linux/util-linux_2.22.bb
index 24bed27..5c26303 100644
--- a/meta/recipes-core/util-linux/util-linux_2.21.2.bb
+++ b/meta/recipes-core/util-linux/util-linux_2.22.bb
@@ -1,5 +1,4 @@
-MAJOR_VERSION = "2.21"
-PR = "r6"
+MAJOR_VERSION = "2.22"
 require util-linux.inc
 
 # note that `lscpu' is under GPLv3+
@@ -11,9 +10,8 @@ SRC_URI += "file://util-linux-ng-replace-siginterrupt.patch \
 	    file://configure-sbindir.patch \
 	    file://add-aarch64-support.patch \
 "
-
-SRC_URI[md5sum] = "b75b3cfecb943f74338382fde693c2c3"
-SRC_URI[sha256sum] = "066f9d8e51bfabd809d266edcd54eefba1cdca57725b95c074fd47fe6fba3d30"
+SRC_URI[md5sum] = "dff0d1a9e54fdfe72ab0b1beb9972a77"
+SRC_URI[sha256sum] = "ecfc889dd8cbdb7c82ba56747ae7a394682b4b8623c4e6205a8da2d93fd08aec"
 
 # Only lscpu part is gplv3; rest of the code is not, 
 # so take out the lscpu parts while running non-gplv3 build.
