diff --git a/libraries/ghc-heap/GHC/Exts/Heap/Closures.hs b/libraries/ghc-heap/GHC/Exts/Heap/Closures.hs
index 2d2e871da9707ece1b28fca6ec63ff996cf270da..038829034c2d314f2dbfbab97bd45fc9fd99b56f 100644
--- a/libraries/ghc-heap/GHC/Exts/Heap/Closures.hs
+++ b/libraries/ghc-heap/GHC/Exts/Heap/Closures.hs
@@ -387,8 +387,6 @@ type StgStackClosure = GenStgStackClosure Box
 data GenStgStackClosure b = GenStgStackClosure
       { ssc_info            :: !StgInfoTable
       , ssc_stack_size      :: !Word32 -- ^ stack size in *words*
-      , ssc_stack_dirty     :: !Word8 -- ^ non-zero => dirty
-      , ssc_stack_marking   :: !Word8
       , ssc_stack           :: ![GenStackFrame b]
       }
   deriving (Foldable, Functor, Generic, Show, Traversable)
diff --git a/libraries/ghc-heap/GHC/Exts/Stack/Decode.hs b/libraries/ghc-heap/GHC/Exts/Stack/Decode.hs
index 3218cfd014938bb7bca1ac31682402b473b73d82..0c9000be790bbcefd067c6a40c069bac1732bf44 100644
--- a/libraries/ghc-heap/GHC/Exts/Stack/Decode.hs
+++ b/libraries/ghc-heap/GHC/Exts/Stack/Decode.hs
@@ -170,13 +170,12 @@ foreign import prim "getStackClosurezh"
 
 foreign import prim "getStackFieldszh"
   getStackFields# ::
-    StackSnapshot# -> (# Word32#, Word8#, Word8# #)
+    StackSnapshot# -> Word32#
 
-getStackFields :: StackSnapshot# -> (Word32, Word8, Word8)
+getStackFields :: StackSnapshot# -> Word32
 getStackFields stackSnapshot# =
   case getStackFields# stackSnapshot# of
-    (# sSize#, sDirty#, sMarking# #) ->
-      (W32# sSize#, W8# sDirty#, W8# sMarking#)
+    sSize# -> W32# sSize#
 
 -- | `StackFrameLocation` of the top-most stack frame
 stackHead :: StackSnapshot# -> StackFrameLocation
@@ -409,15 +408,13 @@ decodeStack (StackSnapshot stack#) = do
   info <- getInfoTableForStack stack#
   case tipe info of
     STACK -> do
-      let (stack_size', stack_dirty', stack_marking') = getStackFields stack#
+      let stack_size' = getStackFields stack#
           sfls = stackFrameLocations stack#
       stack' <- mapM unpackStackFrame sfls
       pure $
         GenStgStackClosure
           { ssc_info = info,
             ssc_stack_size = stack_size',
-            ssc_stack_dirty = stack_dirty',
-            ssc_stack_marking = stack_marking',
             ssc_stack = stack'
           }
     _ -> error $ "Expected STACK closure, got " ++ show info
diff --git a/libraries/ghc-heap/cbits/Stack.cmm b/libraries/ghc-heap/cbits/Stack.cmm
index da5b882f259c9bf35a0452f2feceaccf30e5b150..2671cf4ae2cdd779bebf4bda094a357b99d1f519 100644
--- a/libraries/ghc-heap/cbits/Stack.cmm
+++ b/libraries/ghc-heap/cbits/Stack.cmm
@@ -173,15 +173,10 @@ getStackClosurezh(P_ stack, W_ offsetWords) {
   return (closure);
 }
 
-// (bits32, bits8, bits8) getStackFieldszh(StgStack* stack)
+// (bits32) getStackFieldszh(StgStack* stack)
 getStackFieldszh(P_ stack){
   bits32 size;
-  bits8 dirty, marking;
-
   size = StgStack_stack_size(stack);
-  dirty = StgStack_dirty(stack);
-  marking = StgStack_marking(stack);
-
-  return (size, dirty, marking);
+  return (size);
 }
 #endif
diff --git a/libraries/ghc-heap/tests/stack_misc_closures.hs b/libraries/ghc-heap/tests/stack_misc_closures.hs
index 3110f4a9422fd87beeb840e6266c0eb5a31334c1..3fbd367fd2df697f3fc68279b14483de61944b00 100644
--- a/libraries/ghc-heap/tests/stack_misc_closures.hs
+++ b/libraries/ghc-heap/tests/stack_misc_closures.hs
@@ -308,8 +308,6 @@ main = do
         assertEqual (tipe info_tbl) UNDERFLOW_FRAME
         assertEqual (tipe (ssc_info nextChunk)) STACK
         assertEqual (ssc_stack_size nextChunk) 27
-        assertEqual (ssc_stack_dirty nextChunk) 0
-        assertEqual (ssc_stack_marking nextChunk) 0
         assertEqual (length (ssc_stack nextChunk)) 2
         case head (ssc_stack nextChunk) of
           RetSmall {..} ->