public inbox for stable@vger.kernel.org
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: patches@lists.linux.dev, stable@vger.kernel.org
Cc: ChenXiaoSong <chenxiaosong@kylinos.cn>,
	"Paulo Alcantara (Red Hat)" <pc@manguebit.org>,
	Steve French <stfrench@microsoft.com>,
	Sasha Levin <sashal@kernel.org>,
	sfrench@samba.org, linux-cifs@vger.kernel.org,
	samba-technical@lists.samba.org
Subject: [PATCH AUTOSEL 6.18-6.1] smb/client: fix NT_STATUS_UNABLE_TO_FREE_VM value
Date: Sun, 14 Dec 2025 19:41:26 -0500	[thread overview]
Message-ID: <20251215004145.2760442-9-sashal@kernel.org> (raw)
In-Reply-To: <20251215004145.2760442-1-sashal@kernel.org>

From: ChenXiaoSong <chenxiaosong@kylinos.cn>

[ Upstream commit 9f99caa8950a76f560a90074e3a4b93cfa8b3d84 ]

This was reported by the KUnit tests in the later patches.

See MS-ERREF 2.3.1 STATUS_UNABLE_TO_FREE_VM. Keep it consistent with the
value in the documentation.

Signed-off-by: ChenXiaoSong <chenxiaosong@kylinos.cn>
Acked-by: Paulo Alcantara (Red Hat) <pc@manguebit.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---

LLM Generated explanations, may be completely bogus:

## Analysis of smb/client: fix NT_STATUS_UNABLE_TO_FREE_VM value

### 1. COMMIT MESSAGE ANALYSIS

The commit explicitly states it's a "fix" for an incorrect NT status
code value. Key points:
- Found by KUnit tests (systematic testing uncovered the issue)
- References MS-ERREF 2.3.1 documentation as the authoritative source
- Acked by Paulo Alcantara (Red Hat) - a key SMB/CIFS maintainer
- Committed by Steve French - the SMB subsystem maintainer

### 2. CODE CHANGE ANALYSIS

The change is a single-line modification in `fs/smb/client/nterr.h`:

```c
-#define NT_STATUS_UNABLE_TO_FREE_VM 0x80000000 | 0x001a
+#define NT_STATUS_UNABLE_TO_FREE_VM 0xC0000000 | 0x001a
```

In NT status codes, the high bits encode severity:
- `0x00000000` = Success
- `0x40000000` = Informational
- `0x80000000` = Warning
- `0xC0000000` = Error

The bug: `NT_STATUS_UNABLE_TO_FREE_VM` was incorrectly defined as a
"Warning" (`0x80000000`) instead of "Error" (`0xC0000000`). Looking at
the context, **all surrounding status codes** use `0xC0000000`, making
this one obvious outlier.

Per Microsoft's MS-ERREF documentation, STATUS_UNABLE_TO_FREE_VM
(0xC000001A) is indeed an error status, not a warning.

### 3. CLASSIFICATION

- **Bug type:** Incorrect constant value (data bug)
- **Not a feature:** Simply corrects an existing definition to match
  specification
- **Not a security issue:** Though incorrect error handling could have
  unexpected effects

### 4. SCOPE AND RISK ASSESSMENT

- **Lines changed:** 1
- **Files touched:** 1 (header file)
- **Complexity:** Minimal - single character change (`8` → `C`)
- **Risk:** Essentially zero - corrects an obvious typo/error to match:
  1. The official Microsoft documentation
  2. The pattern used by all surrounding definitions

### 5. USER IMPACT

If an SMB server returns this status code, the client would fail to
properly match and handle it due to the incorrect value. This could
cause:
- Failure to recognize error conditions
- Incorrect error messages to users
- Potential mishandling of this error scenario

While this specific status code may be rarely encountered in practice,
when it does occur, the current code would misbehave.

### 6. STABILITY INDICATORS

- **Reviewed by maintainers:** Acked by Paulo Alcantara, committed by
  Steve French
- **Testing:** Found through KUnit tests (automated testing)
- **Pattern consistency:** All other NT_STATUS_* codes in the same
  numerical range use `0xC0000000`

### 7. DEPENDENCY CHECK

This is a completely standalone fix. The header file has existed for a
long time, and this is just correcting an incorrect value within it. No
dependencies on other commits.

---

### Summary

**Should this be backported?**

This commit is an excellent backport candidate:

1. **Obviously correct:** The fix makes the value match both official
   Microsoft documentation and the pattern used by all surrounding
   definitions
2. **Fixes a real bug:** Incorrect status code would cause mismatched
   error handling
3. **Minimal scope:** One-character change in a single header file
4. **Zero regression risk:** This is purely a correctness fix to a
   constant
5. **No new features:** Just corrects existing code
6. **No dependencies:** Standalone fix
7. **Well-reviewed:** Acked by key SMB maintainer

This is exactly the type of safe, surgical, low-risk fix that stable
trees should include. The change is so minimal and so obviously correct
that there's essentially no risk, while the benefit is ensuring correct
SMB protocol handling.

**YES**

 fs/smb/client/nterr.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/smb/client/nterr.h b/fs/smb/client/nterr.h
index 180602c22355e..e3a607b45e719 100644
--- a/fs/smb/client/nterr.h
+++ b/fs/smb/client/nterr.h
@@ -70,7 +70,7 @@ extern const struct nt_err_code_struct nt_errs[];
 #define NT_STATUS_NO_MEMORY 0xC0000000 | 0x0017
 #define NT_STATUS_CONFLICTING_ADDRESSES 0xC0000000 | 0x0018
 #define NT_STATUS_NOT_MAPPED_VIEW 0xC0000000 | 0x0019
-#define NT_STATUS_UNABLE_TO_FREE_VM 0x80000000 | 0x001a
+#define NT_STATUS_UNABLE_TO_FREE_VM 0xC0000000 | 0x001a
 #define NT_STATUS_UNABLE_TO_DELETE_SECTION 0xC0000000 | 0x001b
 #define NT_STATUS_INVALID_SYSTEM_SERVICE 0xC0000000 | 0x001c
 #define NT_STATUS_ILLEGAL_INSTRUCTION 0xC0000000 | 0x001d
-- 
2.51.0


  parent reply	other threads:[~2025-12-15  0:42 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-15  0:41 [PATCH AUTOSEL 6.18-6.17] ALSA: hda/realtek: Add support for ASUS UM3406GA Sasha Levin
2025-12-15  0:41 ` [PATCH AUTOSEL 6.18-6.1] smb/client: fix NT_STATUS_NO_DATA_DETECTED value Sasha Levin
2025-12-15  0:41 ` [PATCH AUTOSEL 6.18-6.17] ALSA: hda: intel-dsp-config: Prefer legacy driver as fallback Sasha Levin
2025-12-15 23:29   ` Askar Safin
2026-01-07 11:16     ` Sasha Levin
2026-01-11 12:04       ` Askar Safin
2026-01-11 12:24         ` Greg KH
2026-01-11 16:01           ` Askar Safin
2026-01-12 10:54             ` Greg KH
2026-01-15 14:34               ` [PATCH 6.12.y] " Askar Safin
2026-01-15 14:40               ` [PATCH AUTOSEL 6.18-6.17] " Askar Safin
2025-12-15  0:41 ` [PATCH AUTOSEL 6.18-6.12] ASoC: rockchip: Fix Wvoid-pointer-to-enum-cast warning (again) Sasha Levin
2025-12-15  0:41 ` [PATCH AUTOSEL 6.18-5.10] NFSv4: ensure the open stateid seqid doesn't go backwards Sasha Levin
2025-12-15  0:41 ` [PATCH AUTOSEL 6.18-6.1] bcache: fix improper use of bi_end_io Sasha Levin
2025-12-15  0:41 ` [PATCH AUTOSEL 6.18-5.10] NFS: Fix up the automount fs_context to use the correct cred Sasha Levin
2025-12-15  0:41 ` [PATCH AUTOSEL 6.18-6.1] smb/client: fix NT_STATUS_DEVICE_DOOR_OPEN value Sasha Levin
2025-12-15  0:41 ` Sasha Levin [this message]
2025-12-15  0:41 ` [PATCH AUTOSEL 6.18-6.12] drm/amd/display: shrink struct members Sasha Levin

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=20251215004145.2760442-9-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=chenxiaosong@kylinos.cn \
    --cc=linux-cifs@vger.kernel.org \
    --cc=patches@lists.linux.dev \
    --cc=pc@manguebit.org \
    --cc=samba-technical@lists.samba.org \
    --cc=sfrench@samba.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