public inbox for stable@vger.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	patches@lists.linux.dev,
	"Paulo Alcantara (SUSE)" <pc@manguebit.com>,
	Steve French <stfrench@microsoft.com>,
	Sasha Levin <sashal@kernel.org>
Subject: [PATCH 6.6 122/166] smb: client: set correct file type from NFS reparse points
Date: Mon, 18 Dec 2023 14:51:28 +0100	[thread overview]
Message-ID: <20231218135110.513996029@linuxfoundation.org> (raw)
In-Reply-To: <20231218135104.927894164@linuxfoundation.org>

6.6-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Paulo Alcantara <pc@manguebit.com>

[ Upstream commit 45e724022e2704b5a5193fd96f378822b0448e07 ]

Handle all file types in NFS reparse points as specified in MS-FSCC
2.1.2.6 Network File System (NFS) Reparse Data Buffer.

The client is now able to set all file types based on the parsed NFS
reparse point, which used to support only symlinks.  This works for
SMB1+.

Before patch:

$ mount.cifs //srv/share /mnt -o ...
$ ls -l /mnt
ls: cannot access 'block': Operation not supported
ls: cannot access 'char': Operation not supported
ls: cannot access 'fifo': Operation not supported
ls: cannot access 'sock': Operation not supported
total 1
l????????? ? ?    ?    ?            ? block
l????????? ? ?    ?    ?            ? char
-rwxr-xr-x 1 root root 5 Nov 18 23:22 f0
l????????? ? ?    ?    ?            ? fifo
l--------- 1 root root 0 Nov 18 23:23 link -> f0
l????????? ? ?    ?    ?            ? sock

After patch:

$ mount.cifs //srv/share /mnt -o ...
$ ls -l /mnt
total 1
brwxr-xr-x 1 root root  123,  123 Nov 18 00:34 block
crwxr-xr-x 1 root root 1234, 1234 Nov 18 00:33 char
-rwxr-xr-x 1 root root          5 Nov 18 23:22 f0
prwxr-xr-x 1 root root          0 Nov 18 23:23 fifo
lrwxr-xr-x 1 root root          0 Nov 18 23:23 link -> f0
srwxr-xr-x 1 root root          0 Nov 19  2023 sock

Signed-off-by: Paulo Alcantara (SUSE) <pc@manguebit.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 fs/smb/client/cifsglob.h  |   8 ++-
 fs/smb/client/cifspdu.h   |   2 +-
 fs/smb/client/cifsproto.h |   4 +-
 fs/smb/client/inode.c     |  51 +++++++++++++++++--
 fs/smb/client/readdir.c   |   6 ++-
 fs/smb/client/smb1ops.c   |   3 +-
 fs/smb/client/smb2inode.c |   2 +-
 fs/smb/client/smb2ops.c   | 101 ++++++++++++++++++++------------------
 8 files changed, 116 insertions(+), 61 deletions(-)

diff --git a/fs/smb/client/cifsglob.h b/fs/smb/client/cifsglob.h
index 7180b5713bea6..bd7fc20c49de4 100644
--- a/fs/smb/client/cifsglob.h
+++ b/fs/smb/client/cifsglob.h
@@ -191,7 +191,13 @@ struct cifs_open_info_data {
 		bool reparse_point;
 		bool symlink;
 	};
-	__u32 reparse_tag;
+	struct {
+		__u32 tag;
+		union {
+			struct reparse_data_buffer *buf;
+			struct reparse_posix_data *posix;
+		};
+	} reparse;
 	char *symlink_target;
 	union {
 		struct smb2_file_all_info fi;
diff --git a/fs/smb/client/cifspdu.h b/fs/smb/client/cifspdu.h
index 2a90134331a48..83ccc51a54d03 100644
--- a/fs/smb/client/cifspdu.h
+++ b/fs/smb/client/cifspdu.h
@@ -1509,7 +1509,7 @@ struct reparse_posix_data {
 	__le16	ReparseDataLength;
 	__u16	Reserved;
 	__le64	InodeType; /* LNK, FIFO, CHR etc. */
-	char	PathBuffer[];
+	__u8	DataBuffer[];
 } __attribute__((packed));
 
 struct cifs_quota_data {
diff --git a/fs/smb/client/cifsproto.h b/fs/smb/client/cifsproto.h
index dc2c43dd6a910..c858feaf4f926 100644
--- a/fs/smb/client/cifsproto.h
+++ b/fs/smb/client/cifsproto.h
@@ -209,7 +209,7 @@ int cifs_get_inode_info(struct inode **inode, const char *full_path,
 			const struct cifs_fid *fid);
 bool cifs_reparse_point_to_fattr(struct cifs_sb_info *cifs_sb,
 				 struct cifs_fattr *fattr,
-				 u32 tag);
+				 struct cifs_open_info_data *data);
 extern int smb311_posix_get_inode_info(struct inode **pinode, const char *search_path,
 			struct super_block *sb, unsigned int xid);
 extern int cifs_get_inode_info_unix(struct inode **pinode,
@@ -664,7 +664,7 @@ char *extract_hostname(const char *unc);
 char *extract_sharename(const char *unc);
 int parse_reparse_point(struct reparse_data_buffer *buf,
 			u32 plen, struct cifs_sb_info *cifs_sb,
-			bool unicode, char **target_path);
+			bool unicode, struct cifs_open_info_data *data);
 
 #ifdef CONFIG_CIFS_DFS_UPCALL
 static inline int get_dfs_path(const unsigned int xid, struct cifs_ses *ses,
diff --git a/fs/smb/client/inode.c b/fs/smb/client/inode.c
index 7a2a013bb05ef..6a856945f2b42 100644
--- a/fs/smb/client/inode.c
+++ b/fs/smb/client/inode.c
@@ -719,10 +719,51 @@ static void smb311_posix_info_to_fattr(struct cifs_fattr *fattr,
 		fattr->cf_mode, fattr->cf_uniqueid, fattr->cf_nlink);
 }
 
+static inline dev_t nfs_mkdev(struct reparse_posix_data *buf)
+{
+	u64 v = le64_to_cpu(*(__le64 *)buf->DataBuffer);
+
+	return MKDEV(v >> 32, v & 0xffffffff);
+}
+
 bool cifs_reparse_point_to_fattr(struct cifs_sb_info *cifs_sb,
 				 struct cifs_fattr *fattr,
-				 u32 tag)
+				 struct cifs_open_info_data *data)
 {
+	struct reparse_posix_data *buf = data->reparse.posix;
+	u32 tag = data->reparse.tag;
+
+	if (tag == IO_REPARSE_TAG_NFS && buf) {
+		switch (le64_to_cpu(buf->InodeType)) {
+		case NFS_SPECFILE_CHR:
+			fattr->cf_mode |= S_IFCHR | cifs_sb->ctx->file_mode;
+			fattr->cf_dtype = DT_CHR;
+			fattr->cf_rdev = nfs_mkdev(buf);
+			break;
+		case NFS_SPECFILE_BLK:
+			fattr->cf_mode |= S_IFBLK | cifs_sb->ctx->file_mode;
+			fattr->cf_dtype = DT_BLK;
+			fattr->cf_rdev = nfs_mkdev(buf);
+			break;
+		case NFS_SPECFILE_FIFO:
+			fattr->cf_mode |= S_IFIFO | cifs_sb->ctx->file_mode;
+			fattr->cf_dtype = DT_FIFO;
+			break;
+		case NFS_SPECFILE_SOCK:
+			fattr->cf_mode |= S_IFSOCK | cifs_sb->ctx->file_mode;
+			fattr->cf_dtype = DT_SOCK;
+			break;
+		case NFS_SPECFILE_LNK:
+			fattr->cf_mode = S_IFLNK | cifs_sb->ctx->file_mode;
+			fattr->cf_dtype = DT_LNK;
+			break;
+		default:
+			WARN_ON_ONCE(1);
+			return false;
+		}
+		return true;
+	}
+
 	switch (tag) {
 	case IO_REPARSE_TAG_LX_SYMLINK:
 		fattr->cf_mode |= S_IFLNK | cifs_sb->ctx->file_mode;
@@ -788,7 +829,7 @@ static void cifs_open_info_to_fattr(struct cifs_fattr *fattr,
 	fattr->cf_nlink = le32_to_cpu(info->NumberOfLinks);
 
 	if (cifs_open_data_reparse(data) &&
-	    cifs_reparse_point_to_fattr(cifs_sb, fattr, data->reparse_tag))
+	    cifs_reparse_point_to_fattr(cifs_sb, fattr, data))
 		goto out_reparse;
 
 	if (fattr->cf_cifsattrs & ATTR_DIRECTORY) {
@@ -855,7 +896,7 @@ cifs_get_file_info(struct file *filp)
 		data.adjust_tz = false;
 		if (data.symlink_target) {
 			data.symlink = true;
-			data.reparse_tag = IO_REPARSE_TAG_SYMLINK;
+			data.reparse.tag = IO_REPARSE_TAG_SYMLINK;
 		}
 		cifs_open_info_to_fattr(&fattr, &data, inode->i_sb);
 		break;
@@ -1024,7 +1065,7 @@ static int reparse_info_to_fattr(struct cifs_open_info_data *data,
 	struct cifs_sb_info *cifs_sb = CIFS_SB(sb);
 	struct kvec rsp_iov, *iov = NULL;
 	int rsp_buftype = CIFS_NO_BUFFER;
-	u32 tag = data->reparse_tag;
+	u32 tag = data->reparse.tag;
 	int rc = 0;
 
 	if (!tag && server->ops->query_reparse_point) {
@@ -1036,7 +1077,7 @@ static int reparse_info_to_fattr(struct cifs_open_info_data *data,
 	}
 
 	rc = -EOPNOTSUPP;
-	switch ((data->reparse_tag = tag)) {
+	switch ((data->reparse.tag = tag)) {
 	case 0: /* SMB1 symlink */
 		if (server->ops->query_symlink) {
 			rc = server->ops->query_symlink(xid, tcon,
diff --git a/fs/smb/client/readdir.c b/fs/smb/client/readdir.c
index 47fc22de8d20c..d30ea2005eb36 100644
--- a/fs/smb/client/readdir.c
+++ b/fs/smb/client/readdir.c
@@ -153,6 +153,10 @@ static bool reparse_file_needs_reval(const struct cifs_fattr *fattr)
 static void
 cifs_fill_common_info(struct cifs_fattr *fattr, struct cifs_sb_info *cifs_sb)
 {
+	struct cifs_open_info_data data = {
+		.reparse = { .tag = fattr->cf_cifstag, },
+	};
+
 	fattr->cf_uid = cifs_sb->ctx->linux_uid;
 	fattr->cf_gid = cifs_sb->ctx->linux_gid;
 
@@ -165,7 +169,7 @@ cifs_fill_common_info(struct cifs_fattr *fattr, struct cifs_sb_info *cifs_sb)
 	 * reasonably map some of them to directories vs. files vs. symlinks
 	 */
 	if ((fattr->cf_cifsattrs & ATTR_REPARSE) &&
-	    cifs_reparse_point_to_fattr(cifs_sb, fattr, fattr->cf_cifstag))
+	    cifs_reparse_point_to_fattr(cifs_sb, fattr, &data))
 		goto out_reparse;
 
 	if (fattr->cf_cifsattrs & ATTR_DIRECTORY) {
diff --git a/fs/smb/client/smb1ops.c b/fs/smb/client/smb1ops.c
index 0dd599004e042..64e25233e85de 100644
--- a/fs/smb/client/smb1ops.c
+++ b/fs/smb/client/smb1ops.c
@@ -1004,8 +1004,7 @@ static int cifs_parse_reparse_point(struct cifs_sb_info *cifs_sb,
 
 	buf = (struct reparse_data_buffer *)((__u8 *)&io->hdr.Protocol +
 					     le32_to_cpu(io->DataOffset));
-	return parse_reparse_point(buf, plen, cifs_sb, unicode,
-				   &data->symlink_target);
+	return parse_reparse_point(buf, plen, cifs_sb, unicode, data);
 }
 
 static bool
diff --git a/fs/smb/client/smb2inode.c b/fs/smb/client/smb2inode.c
index 0b89f7008ac0f..c94940af5d4b8 100644
--- a/fs/smb/client/smb2inode.c
+++ b/fs/smb/client/smb2inode.c
@@ -555,7 +555,7 @@ static int parse_create_response(struct cifs_open_info_data *data,
 		break;
 	}
 	data->reparse_point = reparse_point;
-	data->reparse_tag = tag;
+	data->reparse.tag = tag;
 	return rc;
 }
 
diff --git a/fs/smb/client/smb2ops.c b/fs/smb/client/smb2ops.c
index 0390d7a801d18..0ca6dcf20261f 100644
--- a/fs/smb/client/smb2ops.c
+++ b/fs/smb/client/smb2ops.c
@@ -2866,89 +2866,95 @@ smb2_get_dfs_refer(const unsigned int xid, struct cifs_ses *ses,
 	return rc;
 }
 
-static int
-parse_reparse_posix(struct reparse_posix_data *symlink_buf,
-		      u32 plen, char **target_path,
-		      struct cifs_sb_info *cifs_sb)
+/* See MS-FSCC 2.1.2.6 for the 'NFS' style reparse tags */
+static int parse_reparse_posix(struct reparse_posix_data *buf,
+			       struct cifs_sb_info *cifs_sb,
+			       struct cifs_open_info_data *data)
 {
 	unsigned int len;
-
-	/* See MS-FSCC 2.1.2.6 for the 'NFS' style reparse tags */
-	len = le16_to_cpu(symlink_buf->ReparseDataLength);
-
-	if (le64_to_cpu(symlink_buf->InodeType) != NFS_SPECFILE_LNK) {
-		cifs_dbg(VFS, "%lld not a supported symlink type\n",
-			le64_to_cpu(symlink_buf->InodeType));
+	u64 type;
+
+	switch ((type = le64_to_cpu(buf->InodeType))) {
+	case NFS_SPECFILE_LNK:
+		len = le16_to_cpu(buf->ReparseDataLength);
+		data->symlink_target = cifs_strndup_from_utf16(buf->DataBuffer,
+							       len, true,
+							       cifs_sb->local_nls);
+		if (!data->symlink_target)
+			return -ENOMEM;
+		convert_delimiter(data->symlink_target, '/');
+		cifs_dbg(FYI, "%s: target path: %s\n",
+			 __func__, data->symlink_target);
+		break;
+	case NFS_SPECFILE_CHR:
+	case NFS_SPECFILE_BLK:
+	case NFS_SPECFILE_FIFO:
+	case NFS_SPECFILE_SOCK:
+		break;
+	default:
+		cifs_dbg(VFS, "%s: unhandled inode type: 0x%llx\n",
+			 __func__, type);
 		return -EOPNOTSUPP;
 	}
-
-	*target_path = cifs_strndup_from_utf16(
-				symlink_buf->PathBuffer,
-				len, true, cifs_sb->local_nls);
-	if (!(*target_path))
-		return -ENOMEM;
-
-	convert_delimiter(*target_path, '/');
-	cifs_dbg(FYI, "%s: target path: %s\n", __func__, *target_path);
-
 	return 0;
 }
 
 static int parse_reparse_symlink(struct reparse_symlink_data_buffer *sym,
-				 u32 plen, bool unicode, char **target_path,
-				 struct cifs_sb_info *cifs_sb)
+				 u32 plen, bool unicode,
+				 struct cifs_sb_info *cifs_sb,
+				 struct cifs_open_info_data *data)
 {
-	unsigned int sub_len;
-	unsigned int sub_offset;
+	unsigned int len;
+	unsigned int offs;
 
 	/* We handle Symbolic Link reparse tag here. See: MS-FSCC 2.1.2.4 */
 
-	sub_offset = le16_to_cpu(sym->SubstituteNameOffset);
-	sub_len = le16_to_cpu(sym->SubstituteNameLength);
-	if (sub_offset + 20 > plen ||
-	    sub_offset + sub_len + 20 > plen) {
+	offs = le16_to_cpu(sym->SubstituteNameOffset);
+	len = le16_to_cpu(sym->SubstituteNameLength);
+	if (offs + 20 > plen || offs + len + 20 > plen) {
 		cifs_dbg(VFS, "srv returned malformed symlink buffer\n");
 		return -EIO;
 	}
 
-	*target_path = cifs_strndup_from_utf16(sym->PathBuffer + sub_offset,
-					       sub_len, unicode,
-					       cifs_sb->local_nls);
-	if (!(*target_path))
+	data->symlink_target = cifs_strndup_from_utf16(sym->PathBuffer + offs,
+						       len, unicode,
+						       cifs_sb->local_nls);
+	if (!data->symlink_target)
 		return -ENOMEM;
 
-	convert_delimiter(*target_path, '/');
-	cifs_dbg(FYI, "%s: target path: %s\n", __func__, *target_path);
+	convert_delimiter(data->symlink_target, '/');
+	cifs_dbg(FYI, "%s: target path: %s\n", __func__, data->symlink_target);
 
 	return 0;
 }
 
 int parse_reparse_point(struct reparse_data_buffer *buf,
 			u32 plen, struct cifs_sb_info *cifs_sb,
-			bool unicode, char **target_path)
+			bool unicode, struct cifs_open_info_data *data)
 {
 	if (plen < sizeof(*buf)) {
-		cifs_dbg(VFS, "reparse buffer is too small. Must be at least 8 bytes but was %d\n",
-			 plen);
+		cifs_dbg(VFS, "%s: reparse buffer is too small. Must be at least 8 bytes but was %d\n",
+			 __func__, plen);
 		return -EIO;
 	}
 
 	if (plen < le16_to_cpu(buf->ReparseDataLength) + sizeof(*buf)) {
-		cifs_dbg(VFS, "srv returned invalid reparse buf length: %d\n",
-			 plen);
+		cifs_dbg(VFS, "%s: invalid reparse buf length: %d\n",
+			 __func__, plen);
 		return -EIO;
 	}
 
+	data->reparse.buf = buf;
+
 	/* See MS-FSCC 2.1.2 */
 	switch (le32_to_cpu(buf->ReparseTag)) {
 	case IO_REPARSE_TAG_NFS:
-		return parse_reparse_posix(
-			(struct reparse_posix_data *)buf,
-			plen, target_path, cifs_sb);
+		return parse_reparse_posix((struct reparse_posix_data *)buf,
+					   cifs_sb, data);
 	case IO_REPARSE_TAG_SYMLINK:
 		return parse_reparse_symlink(
 			(struct reparse_symlink_data_buffer *)buf,
-			plen, unicode, target_path, cifs_sb);
+			plen, unicode, cifs_sb, data);
 	case IO_REPARSE_TAG_LX_SYMLINK:
 	case IO_REPARSE_TAG_AF_UNIX:
 	case IO_REPARSE_TAG_LX_FIFO:
@@ -2956,8 +2962,8 @@ int parse_reparse_point(struct reparse_data_buffer *buf,
 	case IO_REPARSE_TAG_LX_BLK:
 		return 0;
 	default:
-		cifs_dbg(VFS, "srv returned unknown symlink buffer tag:0x%08x\n",
-			 le32_to_cpu(buf->ReparseTag));
+		cifs_dbg(VFS, "%s: unhandled reparse tag: 0x%08x\n",
+			 __func__, le32_to_cpu(buf->ReparseTag));
 		return -EOPNOTSUPP;
 	}
 }
@@ -2972,8 +2978,7 @@ static int smb2_parse_reparse_point(struct cifs_sb_info *cifs_sb,
 
 	buf = (struct reparse_data_buffer *)((u8 *)io +
 					     le32_to_cpu(io->OutputOffset));
-	return parse_reparse_point(buf, plen, cifs_sb,
-				   true, &data->symlink_target);
+	return parse_reparse_point(buf, plen, cifs_sb, true, data);
 }
 
 static int smb2_query_reparse_point(const unsigned int xid,
-- 
2.43.0




  parent reply	other threads:[~2023-12-18 14:06 UTC|newest]

Thread overview: 180+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-12-18 13:49 [PATCH 6.6 000/166] 6.6.8-rc1 review Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 001/166] r8152: add vendor/device ID pair for ASUS USB-C2500 Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 002/166] ext4: fix warning in ext4_dio_write_end_io() Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 003/166] ksmbd: fix memory leak in smb2_lock() Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 004/166] efi/x86: Avoid physical KASLR on older Dell systems Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 005/166] afs: Fix refcount underflow from error handling race Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 006/166] HID: lenovo: Restrict detection of patched firmware only to USB cptkbd Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 007/166] net/mlx5e: Honor user choice of IPsec replay window size Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 008/166] net/mlx5e: Ensure that IPsec sequence packet number starts from 1 Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 009/166] net/mlx5e: Unify esw and normal IPsec status table creation/destruction Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 010/166] net/mlx5e: Tidy up IPsec NAT-T SA discovery Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 011/166] net/mlx5e: Reduce eswitch mode_lock protection context Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 012/166] net/mlx5e: Check the number of elements before walk TC rhashtable Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 013/166] RDMA/mlx5: Send events from IB driver about device affiliation state Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 014/166] net/mlx5e: Disable IPsec offload support if not FW steering Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 015/166] net/mlx5e: Fix possible deadlock on mlx5e_tx_timeout_work Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 016/166] net/mlx5e: TC, Dont offload post action rule if not supported Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 017/166] net/mlx5: Nack sync reset request when HotPlug is enabled Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 018/166] net/mlx5e: Check netdev pointer before checking its net ns Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 019/166] net/mlx5: Fix a NULL vs IS_ERR() check Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 020/166] net: ipv6: support reporting otherwise unknown prefix flags in RTM_NEWPREFIX Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 021/166] qca_debug: Prevent crash on TX ring changes Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 022/166] qca_debug: Fix ethtool -G iface tx behavior Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 023/166] qca_spi: Fix reset behavior Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 024/166] bnxt_en: Clear resource reservation during resume Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 025/166] bnxt_en: Fix skb recycling logic in bnxt_deliver_skb() Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 026/166] bnxt_en: Fix wrong return value check in bnxt_close_nic() Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 027/166] bnxt_en: Fix HWTSTAMP_FILTER_ALL packet timestamp logic Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 028/166] atm: solos-pci: Fix potential deadlock on &cli_queue_lock Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 029/166] atm: solos-pci: Fix potential deadlock on &tx_queue_lock Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 030/166] net: fec: correct queue selection Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 031/166] octeontx2-af: fix a use-after-free in rvu_nix_register_reporters Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 032/166] net/sched: act_ct: Take per-cb reference to tcf_ct_flow_table Greg Kroah-Hartman
2023-12-18 13:49 ` [PATCH 6.6 033/166] octeon_ep: explicitly test for firmware ready value Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 034/166] octeontx2-pf: Fix promisc mcam entry action Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 035/166] octeontx2-af: Update RSS algorithm index Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 036/166] octeontx2-af: Fix pause frame configuration Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 037/166] atm: Fix Use-After-Free in do_vcc_ioctl Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 038/166] net/rose: Fix Use-After-Free in rose_ioctl Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 039/166] iavf: Introduce new state machines for flow director Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 040/166] iavf: Handle ntuple on/off based on " Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 041/166] iavf: Fix iavf_shutdown to call iavf_remove instead iavf_close Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 042/166] qed: Fix a potential use-after-free in qed_cxt_tables_alloc Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 043/166] net: Remove acked SYN flag from packet in the transmit queue correctly Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 044/166] net: ena: Destroy correct number of xdp queues upon failure Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 045/166] net: ena: Fix xdp drops handling due to multibuf packets Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 046/166] net: ena: Fix DMA syncing in XDP path when SWIOTLB is on Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 047/166] net: ena: Fix XDP redirection error Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 048/166] stmmac: dwmac-loongson: Make sure MDIO is initialized before use Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 049/166] sign-file: Fix incorrect return values check Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 050/166] vsock/virtio: Fix unsigned integer wrap around in virtio_transport_has_space() Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 051/166] dpaa2-switch: fix size of the dma_unmap Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 052/166] dpaa2-switch: do not ask for MDB, VLAN and FDB replay Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 053/166] net: stmmac: dwmac-qcom-ethqos: Fix drops in 10M SGMII RX Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 054/166] net: stmmac: Handle disabled MDIO busses from devicetree Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 055/166] appletalk: Fix Use-After-Free in atalk_ioctl Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 056/166] net: atlantic: fix double free in ring reinit logic Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 057/166] cred: switch to using atomic_long_t Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 058/166] cred: get rid of CONFIG_DEBUG_CREDENTIALS Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 059/166] HID: i2c-hid: Add IDEA5002 to i2c_hid_acpi_blacklist[] Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 060/166] HID: Add quirk for Labtec/ODDOR/aikeec handbrake Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 061/166] fuse: Rename DIRECT_IO_RELAX to DIRECT_IO_ALLOW_MMAP Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 062/166] fuse: share lookup state between submount and its parent Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 063/166] fuse: disable FOPEN_PARALLEL_DIRECT_WRITES with FUSE_DIRECT_IO_ALLOW_MMAP Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 064/166] fuse: dax: set fc->dax to NULL in fuse_dax_conn_free() Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 065/166] io_uring/cmd: fix breakage in SOCKET_URING_OP_SIOC* implementation Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 066/166] ALSA: hda/hdmi: add force-connect quirk for NUC5CPYB Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 067/166] ALSA: hda/hdmi: add force-connect quirks for ASUSTeK Z170 variants Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 068/166] ALSA: hda/realtek: Apply mute LED quirk for HP15-db Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 069/166] ALSA: hda/tas2781: leave hda_component in usable state Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 070/166] ALSA: hda/tas2781: handle missing EFI calibration data Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 071/166] ALSA: hda/tas2781: call cleanup functions only once Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 072/166] ALSA: hda/tas2781: reset the amp before component_add Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 073/166] Revert "PCI: acpiphp: Reassign resources on bridge if necessary" Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 074/166] PCI: loongson: Limit MRRS to 256 Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 075/166] PCI/ASPM: Add pci_enable_link_state_locked() Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 076/166] ksmbd: fix wrong name of SMB2_CREATE_ALLOCATION_SIZE Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 077/166] PCI: vmd: Fix potential deadlock when enabling ASPM Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 078/166] drm/mediatek: fix kernel oops if no crtc is found Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 079/166] drm/mediatek: Add spinlock for setting vblank event in atomic_begin Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 080/166] accel/ivpu: Print information about used workarounds Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 081/166] accel/ivpu/37xx: Fix interrupt_clear_with_0 WA initialization Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 082/166] drm/i915/selftests: Fix engine reset count storage for multi-tile Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 083/166] drm/i915: Use internal class when counting engine resets Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 084/166] selftests/mm: cow: print ksft header before printing anything else Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 085/166] x86/hyperv: Fix the detection of E820_TYPE_PRAM in a Gen2 VM Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 086/166] usb: aqc111: check packet for fixup for true limit Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 087/166] stmmac: dwmac-loongson: Add architecture dependency Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 088/166] rxrpc: Fix some minor issues with bundle tracing Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 089/166] blk-throttle: fix lockdep warning of "cgroup_mutex or RCU read lock required!" Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 090/166] blk-cgroup: bypass blkcg_deactivate_policy after destroying Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 091/166] bcache: avoid oversize memory allocation by small stripe_size Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 092/166] bcache: remove redundant assignment to variable cur_idx Greg Kroah-Hartman
2023-12-18 13:50 ` [PATCH 6.6 093/166] bcache: add code comments for bch_btree_node_get() and __bch_btree_node_alloc() Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 094/166] bcache: avoid NULL checking to c->root in run_cache_set() Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 095/166] nbd: fold nbd config initialization into nbd_alloc_config() Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 096/166] nbd: factor out a helper to get nbd_config without holding config_lock Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 097/166] nbd: fix null-ptr-dereference while accessing nbd->config Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 098/166] nvme-auth: set explanation code for failure2 msgs Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 099/166] nvme: catch errors from nvme_configure_metadata() Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 100/166] selftests/bpf: fix bpf_loop_bench for new callback verification scheme Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 101/166] LoongArch: Add dependency between vmlinuz.efi and vmlinux.efi Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 102/166] LoongArch: Record pc instead of offset in la_abs relocation Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 103/166] LoongArch: Silence the boot warning about nokaslr Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 104/166] LoongArch: Mark {dmw,tlb}_virt_to_page() exports as non-GPL Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 105/166] LoongArch: Implement constant timer shutdown interface Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 106/166] platform/x86: intel_telemetry: Fix kernel doc descriptions Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 107/166] HID: mcp2221: Set driver data before I2C adapter add Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 108/166] HID: mcp2221: Allow IO to start during probe Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 109/166] HID: apple: add Jamesdonkey and A3R to non-apple keyboards list Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 110/166] HID: glorious: fix Glorious Model I HID report Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 111/166] HID: add ALWAYS_POLL quirk for Apple kb Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 112/166] nbd: pass nbd_sock to nbd_read_reply() instead of index Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 113/166] HID: hid-asus: reset the backlight brightness level on resume Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 114/166] HID: multitouch: Add quirk for HONOR GLO-GXXX touchpad Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 115/166] nfc: virtual_ncidev: Add variable to check if ndev is running Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 116/166] scripts/checkstack.pl: match all stack sizes for s390 Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 117/166] asm-generic: qspinlock: fix queued_spin_value_unlocked() implementation Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 118/166] eventfs: Do not allow NULL parent to eventfs_start_creating() Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 119/166] net: usb: qmi_wwan: claim interface 4 for ZTE MF290 Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 120/166] smb: client: implement ->query_reparse_point() for SMB1 Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 121/166] smb: client: introduce ->parse_reparse_point() Greg Kroah-Hartman
2023-12-18 13:51 ` Greg Kroah-Hartman [this message]
2023-12-18 13:51 ` [PATCH 6.6 123/166] arm64: add dependency between vmlinuz.efi and Image Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 124/166] HID: hid-asus: add const to read-only outgoing usb buffer Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 125/166] perf: Fix perf_event_validate_size() lockdep splat Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 126/166] btrfs: do not allow non subvolume root targets for snapshot Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 127/166] cxl/hdm: Fix dpa translation locking Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 128/166] soundwire: stream: fix NULL pointer dereference for multi_link Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 129/166] ext4: prevent the normalized size from exceeding EXT_MAX_BLOCKS Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 130/166] Revert "selftests: error out if kernel header files are not yet built" Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 131/166] arm64: mm: Always make sw-dirty PTEs hw-dirty in pte_modify Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 132/166] team: Fix use-after-free when an option instance allocation fails Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 133/166] drm/amdgpu/sdma5.2: add begin/end_use ring callbacks Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 134/166] drm/mediatek: Fix access violation in mtk_drm_crtc_dma_dev_get Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 135/166] dmaengine: stm32-dma: avoid bitfield overflow assertion Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 136/166] dmaengine: fsl-edma: fix DMA channel leak in eDMAv4 Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 137/166] mm/mglru: fix underprotected page cache Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 138/166] mm/mglru: try to stop at high watermarks Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 139/166] mm/mglru: respect min_ttl_ms with memcgs Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 140/166] mm/mglru: reclaim offlined memcgs harder Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 141/166] mm/shmem: fix race in shmem_undo_range w/THP Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 142/166] kexec: drop dependency on ARCH_SUPPORTS_KEXEC from CRASH_DUMP Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 143/166] btrfs: free qgroup reserve when ORDERED_IOERR is set Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 144/166] btrfs: fix qgroup_free_reserved_data int overflow Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 145/166] btrfs: dont clear qgroup reserved bit in release_folio Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 146/166] drm/amdgpu: fix tear down order in amdgpu_vm_pt_free Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 147/166] drm/edid: also call add modes in EDID connector update fallback Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 148/166] drm/amd/display: Restore guard against default backlight value < 1 nit Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 149/166] drm/amd/display: Disable PSR-SU on Parade 0803 TCON again Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 150/166] drm/i915: Fix ADL+ tiled plane stride when the POT stride is smaller than the original Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 151/166] drm/i915: Fix intel_atomic_setup_scalers() plane_state handling Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 152/166] drm/i915: Fix remapped stride with CCS on ADL+ Greg Kroah-Hartman
2023-12-18 13:51 ` [PATCH 6.6 153/166] smb: client: fix OOB in receive_encrypted_standard() Greg Kroah-Hartman
2023-12-18 13:52 ` [PATCH 6.6 154/166] smb: client: fix potential OOBs in smb2_parse_contexts() Greg Kroah-Hartman
2023-12-18 13:52 ` [PATCH 6.6 155/166] smb: client: fix NULL deref in asn1_ber_decoder() Greg Kroah-Hartman
2023-12-18 13:52 ` [PATCH 6.6 156/166] smb: client: fix OOB in smb2_query_reparse_point() Greg Kroah-Hartman
2023-12-18 13:52 ` [PATCH 6.6 157/166] ring-buffer: Fix memory leak of free page Greg Kroah-Hartman
2023-12-18 13:52 ` [PATCH 6.6 158/166] tracing: Update snapshot buffer on resize if it is allocated Greg Kroah-Hartman
2023-12-18 13:52 ` [PATCH 6.6 159/166] ring-buffer: Do not update before stamp when switching sub-buffers Greg Kroah-Hartman
2023-12-18 13:52 ` [PATCH 6.6 160/166] ring-buffer: Have saved event hold the entire event Greg Kroah-Hartman
2023-12-18 13:52 ` [PATCH 6.6 161/166] ring-buffer: Fix writing to the buffer with max_data_size Greg Kroah-Hartman
2023-12-18 13:52 ` [PATCH 6.6 162/166] ring-buffer: Fix a race in rb_time_cmpxchg() for 32 bit archs Greg Kroah-Hartman
2023-12-18 13:52 ` [PATCH 6.6 163/166] ring-buffer: Do not try to put back write_stamp Greg Kroah-Hartman
2023-12-18 13:52 ` [PATCH 6.6 164/166] ring-buffer: Have rb_time_cmpxchg() set the msb counter too Greg Kroah-Hartman
2023-12-18 13:52 ` [PATCH 6.6 165/166] x86/speculation, objtool: Use absolute relocations for annotations Greg Kroah-Hartman
2023-12-18 13:52 ` [PATCH 6.6 166/166] RDMA/mlx5: Change the key being sent for MPV device affiliation Greg Kroah-Hartman
2023-12-18 18:50 ` [PATCH 6.6 000/166] 6.6.8-rc1 review SeongJae Park
2023-12-18 20:29 ` Conor Dooley
2023-12-18 20:54 ` Ricardo B. Marliere
2023-12-18 21:06 ` Takeshi Ogasawara
2023-12-18 23:44 ` Justin Forbes
2023-12-18 23:55 ` Shuah Khan
2023-12-19  1:06 ` Kelsey Steele
2023-12-19  3:21 ` Bagas Sanjaya
2023-12-19  6:59 ` Naresh Kamboju
2023-12-19 10:11 ` Ron Economos
2023-12-19 11:32 ` Jon Hunter
2023-12-19 22:08 ` Florian Fainelli
2024-09-03 22:17 ` Justin Forbes

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20231218135110.513996029@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=patches@lists.linux.dev \
    --cc=pc@manguebit.com \
    --cc=sashal@kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=stfrench@microsoft.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox