Patch "powerpc/security: Fix wrong message when RFI Flush is disable" has been added to the 4.4-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    powerpc/security: Fix wrong message when RFI Flush is disable

to the 4.4-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     powerpc-security-fix-wrong-message-when-rfi-flush-is.patch
and it can be found in the queue-4.4 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit b9d5ef58cb6edc4d02d9dfe6222a2603aa8461f1
Author: Gustavo L. F. Walbon <gwalbon@xxxxxxxxxxxxx>
Date:   Thu May 2 18:09:07 2019 -0300

    powerpc/security: Fix wrong message when RFI Flush is disable
    
    [ Upstream commit 4e706af3cd8e1d0503c25332b30cad33c97ed442 ]
    
    The issue was showing "Mitigation" message via sysfs whatever the
    state of "RFI Flush", but it should show "Vulnerable" when it is
    disabled.
    
    If you have "L1D private" feature enabled and not "RFI Flush" you are
    vulnerable to meltdown attacks.
    
    "RFI Flush" is the key feature to mitigate the meltdown whatever the
    "L1D private" state.
    
    SEC_FTR_L1D_THREAD_PRIV is a feature for Power9 only.
    
    So the message should be as the truth table shows:
    
      CPU | L1D private | RFI Flush |                sysfs
      ----|-------------|-----------|-------------------------------------
       P9 |    False    |   False   | Vulnerable
       P9 |    False    |   True    | Mitigation: RFI Flush
       P9 |    True     |   False   | Vulnerable: L1D private per thread
       P9 |    True     |   True    | Mitigation: RFI Flush, L1D private per thread
       P8 |    False    |   False   | Vulnerable
       P8 |    False    |   True    | Mitigation: RFI Flush
    
    Output before this fix:
      # cat /sys/devices/system/cpu/vulnerabilities/meltdown
      Mitigation: RFI Flush, L1D private per thread
      # echo 0 > /sys/kernel/debug/powerpc/rfi_flush
      # cat /sys/devices/system/cpu/vulnerabilities/meltdown
      Mitigation: L1D private per thread
    
    Output after fix:
      # cat /sys/devices/system/cpu/vulnerabilities/meltdown
      Mitigation: RFI Flush, L1D private per thread
      # echo 0 > /sys/kernel/debug/powerpc/rfi_flush
      # cat /sys/devices/system/cpu/vulnerabilities/meltdown
      Vulnerable: L1D private per thread
    
    Signed-off-by: Gustavo L. F. Walbon <gwalbon@xxxxxxxxxxxxx>
    Signed-off-by: Mauro S. M. Rodrigues <maurosr@xxxxxxxxxxxxxxxxxx>
    Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
    Link: https://lore.kernel.org/r/20190502210907.42375-1-gwalbon@xxxxxxxxxxxxx
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/arch/powerpc/kernel/security.c b/arch/powerpc/kernel/security.c
index fc5c49046aa7..45778c83038f 100644
--- a/arch/powerpc/kernel/security.c
+++ b/arch/powerpc/kernel/security.c
@@ -135,26 +135,22 @@ ssize_t cpu_show_meltdown(struct device *dev, struct device_attribute *attr, cha
 
 	thread_priv = security_ftr_enabled(SEC_FTR_L1D_THREAD_PRIV);
 
-	if (rfi_flush || thread_priv) {
+	if (rfi_flush) {
 		struct seq_buf s;
 		seq_buf_init(&s, buf, PAGE_SIZE - 1);
 
-		seq_buf_printf(&s, "Mitigation: ");
-
-		if (rfi_flush)
-			seq_buf_printf(&s, "RFI Flush");
-
-		if (rfi_flush && thread_priv)
-			seq_buf_printf(&s, ", ");
-
+		seq_buf_printf(&s, "Mitigation: RFI Flush");
 		if (thread_priv)
-			seq_buf_printf(&s, "L1D private per thread");
+			seq_buf_printf(&s, ", L1D private per thread");
 
 		seq_buf_printf(&s, "\n");
 
 		return s.len;
 	}
 
+	if (thread_priv)
+		return sprintf(buf, "Vulnerable: L1D private per thread\n");
+
 	if (!security_ftr_enabled(SEC_FTR_L1D_FLUSH_HV) &&
 	    !security_ftr_enabled(SEC_FTR_L1D_FLUSH_PR))
 		return sprintf(buf, "Not affected\n");



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux