diff --git a/package/xfsprogs/0003-libxfs-stop-overriding-MAP_SYNC-in-publicly-exported.patch b/package/xfsprogs/0003-libxfs-stop-overriding-MAP_SYNC-in-publicly-exported.patch
deleted file mode 100644
index 510ed5b642..0000000000
--- a/package/xfsprogs/0003-libxfs-stop-overriding-MAP_SYNC-in-publicly-exported.patch
+++ /dev/null
@@ -1,187 +0,0 @@
-From b82bd75c80aadcc2890b23f63eec9ba2c560b2e5 Mon Sep 17 00:00:00 2001
-From: "Darrick J. Wong" <djwong@kernel.org>
-Date: Thu, 4 Aug 2022 21:26:43 -0500
-Subject: [PATCH] libxfs: stop overriding MAP_SYNC in publicly exported header
- files
-
-Florian Fainelli most recently reported that xfsprogs doesn't build with
-musl on mips:
-
-"MIPS platforms building with recent kernel headers and the musl-libc
-toolchain will expose the following build failure:
-
-mmap.c: In function 'mmap_f':
-mmap.c:196:12: error: 'MAP_SYNC' undeclared (first use in this function); did you mean 'MS_SYNC'?
-  196 |    flags = MAP_SYNC | MAP_SHARED_VALIDATE;
-      |            ^~~~~~~~
-      |            MS_SYNC
-mmap.c:196:12: note: each undeclared identifier is reported only once for each function it appears in
-make[4]: *** [../include/buildrules:81: mmap.o] Error 1"
-
-At first glance, the build failure here is caused by the fact that:
-
-1. The configure script doesn't detect MAP_SYNC support
-2. The build system doesn't set HAVE_MAP_SYNC
-2. io/mmap.c includes input.h -> projects.h -> xfs.h and later sys/mman.h
-3. include/linux.h #define's MAP_SYNC to 0 if HAVE_MAP_SYNC is not set
-4. musl's sys/mman.h #undef MAP_SYNC on platforms that don't support it
-5. io/mmap.c tries to use MAP_SYNC, not realizing that libc undefined it
-
-Normally, xfs_io only exports functionality that is defined by the libc
-and/or kernel headers on the build system.  We often make exceptions for
-new functionality so that we have a way to test them before the header
-file packages catch up, hence this '#ifndef HAVE_FOO #define FOO'
-paradigm.
-
-MAP_SYNC is a gross and horribly broken example of this.  These support
-crutches are supposed to be *private* to xfsprogs for benefit of early
-testing, but they were instead added to include/linux.h, which we
-provide to user programs in the xfslibs-dev package.  IOWs, we've been
-
-Worst yet, gcc 11.3 doesn't even warn about overriding a #define to 0:
-
-int main(int argc, char *argv[]) {
-	printf("MAP_SYNC 0x%x\n", MAP_SYNC);
-}
-
-$ gcc -o a a.c -Wall
-$ ./a
-MAP_SYNC 0x80000
-$ gcc -DSTUPID -o a a.c -Wall
-$ ./a
-MAP_SYNC 0x0
-
-Four years have gone by since the introduction of MAP_SYNC, so let's get
-rid of the override code entirely -- any platform that supports MAP_SYNC
-has had plenty of chances to ensure their header files have the right
-bits.  While we're at it, fix AC_HAVE_MAP_SYNC to look for MAP_SYNC in
-the same header file that the one user (io/mmap.c) uses -- sys/mman.h.
-
-Annoyingly, I had to test this by hand because the sole fstest that
-exercises MAP_SYNC (generic/470) requires dm-logwrites and dm-thinp,
-neither of which support fsdax on current kernels.
-
-Reported-by: info@mobile-stream.com
-Reported-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
-Reported-by: Florian Fainelli <f.fainelli@gmail.com>
-Signed-off-by: Darrick J. Wong <djwong@kernel.org>
-Tested-by: Florian Fainelli <f.fainelli@gmail.com>
-Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>
-Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
----
- include/linux.h       |  8 --------
- io/io.h               |  2 +-
- io/mmap.c             | 25 +++++++++++++------------
- m4/package_libcdev.m4 |  3 +--
- 4 files changed, 15 insertions(+), 23 deletions(-)
-
-diff --git a/include/linux.h b/include/linux.h
-index de8a71221146..052facc15db5 100644
---- a/include/linux.h
-+++ b/include/linux.h
-@@ -356,14 +356,6 @@ fsmap_advance(
- #define HAVE_GETFSMAP
- #endif /* HAVE_GETFSMAP */
- 
--#ifndef HAVE_MAP_SYNC
--#define MAP_SYNC 0
--#define MAP_SHARED_VALIDATE 0
--#else
--#include <asm-generic/mman.h>
--#include <asm-generic/mman-common.h>
--#endif /* HAVE_MAP_SYNC */
--
- /*
-  * Reminder: anything added to this file will be compiled into downstream
-  * userspace projects!
-diff --git a/io/io.h b/io/io.h
-index 49db902fc44f..64b7a663a8cf 100644
---- a/io/io.h
-+++ b/io/io.h
-@@ -55,7 +55,7 @@ typedef struct mmap_region {
- 	size_t		length;		/* length of mapping */
- 	off64_t		offset;		/* start offset into backing file */
- 	int		prot;		/* protection mode of the mapping */
--	bool		map_sync;	/* is this a MAP_SYNC mapping? */
-+	int		flags;		/* MAP_* flags passed to mmap() */
- 	char		*name;		/* name of backing file */
- } mmap_region_t;
- 
-diff --git a/io/mmap.c b/io/mmap.c
-index 8c048a0ab6d0..425957d4b487 100644
---- a/io/mmap.c
-+++ b/io/mmap.c
-@@ -46,8 +46,11 @@ print_mapping(
- 	for (i = 0, p = pflags; p->prot != PROT_NONE; i++, p++)
- 		buffer[i] = (map->prot & p->prot) ? p->mode : '-';
- 
--	if (map->map_sync)
-+#ifdef HAVE_MAP_SYNC
-+	if ((map->flags & (MAP_SYNC | MAP_SHARED_VALIDATE)) ==
-+			  (MAP_SYNC | MAP_SHARED_VALIDATE))
- 		sprintf(&buffer[i], " S");
-+#endif
- 
- 	printf("%c%03d%c 0x%lx - 0x%lx %s  %14s (%lld : %ld)\n",
- 		braces? '[' : ' ', index, braces? ']' : ' ',
-@@ -139,7 +142,9 @@ mmap_help(void)
- " -r -- map with PROT_READ protection\n"
- " -w -- map with PROT_WRITE protection\n"
- " -x -- map with PROT_EXEC protection\n"
-+#ifdef HAVE_MAP_SYNC
- " -S -- map with MAP_SYNC and MAP_SHARED_VALIDATE flags\n"
-+#endif
- " -s <size> -- first do mmap(size)/munmap(size), try to reserve some free space\n"
- " If no protection mode is specified, all are used by default.\n"
- "\n"));
-@@ -193,18 +198,14 @@ mmap_f(
- 			prot |= PROT_EXEC;
- 			break;
- 		case 'S':
-+#ifdef HAVE_MAP_SYNC
- 			flags = MAP_SYNC | MAP_SHARED_VALIDATE;
--
--			/*
--			 * If MAP_SYNC and MAP_SHARED_VALIDATE aren't defined
--			 * in the system headers we will have defined them
--			 * both as 0.
--			 */
--			if (!flags) {
--				printf("MAP_SYNC not supported\n");
--				return 0;
--			}
- 			break;
-+#else
-+			printf("MAP_SYNC not supported\n");
-+			exitcode = 1;
-+			return command_usage(&mmap_cmd);
-+#endif
- 		case 's':
- 			length2 = cvtnum(blocksize, sectsize, optarg);
- 			break;
-@@ -281,7 +282,7 @@ mmap_f(
- 	mapping->offset = offset;
- 	mapping->name = filename;
- 	mapping->prot = prot;
--	mapping->map_sync = (flags == (MAP_SYNC | MAP_SHARED_VALIDATE));
-+	mapping->flags = flags;
- 	return 0;
- }
- 
-diff --git a/m4/package_libcdev.m4 b/m4/package_libcdev.m4
-index adab9bb9773a..3a0c23453176 100644
---- a/m4/package_libcdev.m4
-+++ b/m4/package_libcdev.m4
-@@ -339,8 +339,7 @@ AC_DEFUN([AC_HAVE_STATFS_FLAGS],
- AC_DEFUN([AC_HAVE_MAP_SYNC],
-   [ AC_MSG_CHECKING([for MAP_SYNC])
-     AC_TRY_COMPILE([
--#include <asm-generic/mman.h>
--#include <asm-generic/mman-common.h>
-+#include <sys/mman.h>
-     ], [
-         int flags = MAP_SYNC | MAP_SHARED_VALIDATE;
-     ], have_map_sync=yes
--- 
-2.25.1
-
diff --git a/package/xfsprogs/xfsprogs.hash b/package/xfsprogs/xfsprogs.hash
index bb546601dc..8c73e14905 100644
--- a/package/xfsprogs/xfsprogs.hash
+++ b/package/xfsprogs/xfsprogs.hash
@@ -1,5 +1,5 @@
 # From https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/sha256sums.asc
-sha256  01ccd3ef9df2837753a5d876b8da84ea957d13d7a461b8c46e8afa4eb09aabc8  xfsprogs-5.14.2.tar.xz
+sha256  c31868418bfbf49a3a9c47fc70cdffde9d96f4ff0051bd04a0881e6654648104  xfsprogs-6.4.0.tar.xz
 
 # Hash for license files
 sha256  f6b78c087c3ebdf0f3c13415070dd480a3f35d8fc76f3d02180a407c1c812f79  LICENSES/GPL-2.0
diff --git a/package/xfsprogs/xfsprogs.mk b/package/xfsprogs/xfsprogs.mk
index 09f59a76f4..e657c8086d 100644
--- a/package/xfsprogs/xfsprogs.mk
+++ b/package/xfsprogs/xfsprogs.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-XFSPROGS_VERSION = 5.14.2
+XFSPROGS_VERSION = 6.4.0
 XFSPROGS_SITE = $(BR2_KERNEL_MIRROR)/linux/utils/fs/xfs/xfsprogs
 XFSPROGS_SOURCE = xfsprogs-$(XFSPROGS_VERSION).tar.xz
 XFSPROGS_LICENSE = GPL-2.0, GPL-2.0+, LGPL-2.1 (libhandle, few headers)
