Received: by 10.192.165.148 with SMTP id m20csp31237imm; Wed, 9 May 2018 08:19:28 -0700 (PDT) X-Google-Smtp-Source: AB8JxZrphtuZhpvujLR+zcWvqF4JER+Sz+vvCZAFZNhnhqqMAtwX/VtC4wIdeIzxGEk2QQV8Gq/b X-Received: by 2002:a65:64d0:: with SMTP id t16-v6mr18893411pgv.9.1525879168166; Wed, 09 May 2018 08:19:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525879168; cv=none; d=google.com; s=arc-20160816; b=aYczq8xHDGLb6Hb9GD813GxUp8iVO+m+H6lD3UAydppKipueWq63bt/OyhCm8oz1Df Nj1h7vEsh7txNc2es0Sz8uSw58vZeY/57g2G7vKWbN/bVaoOiOyAS19E5m0Ug8Eblrkd GHpyN5OoayON+o3Xu9begFdBmR3dAg9/VSRk7wcFgrWbcLCBIi6XLUVjQVNXVgkHaVjy ieQEFNTfRzfE35pWgQU2DCRoZGwgMCAc1iZgHIoIWiN0oLvhFlciNEqUHWTWitcK9GMa 2HAYwHGbfDXcBww+Hq7DOnqRnMRCkDxTRYiYEPU77eg2ur0mi8NZogN8xTAOmZyLOgvN SnPw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature :arc-authentication-results; bh=qsEWG15fauuvEHw4Y03y76kjLRsoa7CY+ezQ5hNclNo=; b=fB0b5wQ+jL+IskiB5L6pVW54bS/YzKshnxCawDKr4Z4Ur2QHqlBGIgPp6Q2Z+gCsgx yawE5a3Rs9mZT7oYKWDIcPbwWzTLpE/9/kyIHflfF8Gh3Mv+CTZPZCUcm9b1+UkR46kq RkxP0ZcLL6Sk5VVJxgfxzxxmm6UCO4mIoSiOVAFM8evVHTv5L8XdeHafB3GZp7V2g2Vn btc7u1nMXCuij4j6mJ2ZE7FLcPfDzhHFuy2otqht/XvPoxtL/aTvn0ksQMRsQ7FUmasX mf9OaiyvoUO06a4gZo7D60ynbKklmJJuMmYgA2mYy/UQIzq1+XU1RfacvlZ+pBaY4DSc e2wg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=N3tXSL6c; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a187-v6si15773033pgc.238.2018.05.09.08.19.04; Wed, 09 May 2018 08:19:28 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=N3tXSL6c; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965050AbeEIPRv (ORCPT + 99 others); Wed, 9 May 2018 11:17:51 -0400 Received: from mail-oi0-f66.google.com ([209.85.218.66]:38735 "EHLO mail-oi0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S964813AbeEIPRs (ORCPT ); Wed, 9 May 2018 11:17:48 -0400 Received: by mail-oi0-f66.google.com with SMTP id k17-v6so31821428oih.5 for ; Wed, 09 May 2018 08:17:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=qsEWG15fauuvEHw4Y03y76kjLRsoa7CY+ezQ5hNclNo=; b=N3tXSL6cD2CJQ3c/3Tk7aSbVikUfAjFdKgcgfNH34VW8qo0+gWy1q34xgdNEtLOfhg bphkj8YufHkCZJ7ysyZ7TZXn/sG0oWBvvAgLBXPu/NX2/wK2+VmWZu2dEm4U3DUsP0ES dxEGVlR1qcJGotz0rPqRd7dCYujT2XJhbpMXXICmtFeHqeueRXCjCz5kO5vjct0C2Ktv h2jPPqq91Y2EcCY/F+q3u7PiS5yQ5FMhtZCS/R0QCxxkizjoz4QDE1lieTIIRRhm9PGz IIORy+xqLUan3o2Y70uF0tVfrjxq7s6uEoTP7GCQZLMAZ+BpVdmOkjibeoDyZigLizRV OORw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=qsEWG15fauuvEHw4Y03y76kjLRsoa7CY+ezQ5hNclNo=; b=sSQtswLVBmmJtTik0omg8WalOMymgo+hxb9esOMRiuKgWaoLfoEaEXaGScBbOSV8MF QYiix+KpAdpeYEyDOP/cqiuhyk0eh8b6QAPg0LEXsKGlXmZzyy24xh71XanISHx6TWRD S3V3rWDc6kbfhcAuak4zG1EqUpsa44lIHrXTPeFbylKMCH/+s4AeidhAmg6UYvulVgWU L1hntemXti4If1abSXRQwc8DlLgEkUZiWhhuPo0ow/S+I9uR8wb54xFlUst2nVGF43Hj oO1FJwLLtvD5x3kvK/w1EMF9he1sfK/7TP0o1IOSJRdDMf2PeZ0BJC9chh+rZ5Qjy+Tg vtiA== X-Gm-Message-State: ALQs6tDwT4jVOcS0+naTfHJf15iviSkKaakYLon22BydGGUHINWa0eno 5xjPQSesTilRl8AetHkZNgw= X-Received: by 2002:aca:c589:: with SMTP id v131-v6mr30256115oif.92.1525879068170; Wed, 09 May 2018 08:17:48 -0700 (PDT) Received: from [192.168.0.2] (cpe-24-27-59-32.austin.res.rr.com. [24.27.59.32]) by smtp.gmail.com with ESMTPSA id f142-v6sm15879157oig.45.2018.05.09.08.17.46 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 09 May 2018 08:17:47 -0700 (PDT) Subject: Re: [PATCH RESENT v4] dell_rbu: make firmware payload memory uncachable To: Takashi Iwai , Andrew Morton Cc: linux-kernel@vger.kernel.org, charles_rose@dell.com References: <20180418054634.10289-1-tiwai@suse.de> From: Stuart Hayes Message-ID: <848a3ac6-4781-dd54-0b4a-d4839d902284@gmail.com> Date: Wed, 9 May 2018 10:17:45 -0500 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 In-Reply-To: <20180418054634.10289-1-tiwai@suse.de> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Antivirus: Avast (VPS 180509-2, 05/09/2018), Outbound message X-Antivirus-Status: Clean Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 4/18/2018 12:46 AM, Takashi Iwai wrote: > From: Stuart Hayes > > The dell_rbu driver takes firmware update payloads and puts them in memory so > the system BIOS can find them after a reboot. This sometimes fails (though > rarely), because the memory containing the payload is in the CPU cache but > never gets written back to main memory before the system is rebooted (CPU > cache contents are lost on reboot). > > With this patch, the payload memory will be changed to uncachable to ensure > that the payload is actually in main memory before the system is rebooted. > > Signed-off-by: Stuart Hayes > Reviewed-by: Takashi Iwai > Signed-off-by: Takashi Iwai > --- > v2 Added include, removed extra parentheses > v3 Corrected formatting and include line > v4 Moved set_memory_uc() outside the while loop so that the memory is > definitely allocated before it is set to uncachable > > Andrew, could you pick up this orphan one? Thanks! > > diff --git a/drivers/firmware/dell_rbu.c b/drivers/firmware/dell_rbu.c > index 2f452f1f7c8a..53f27a6e2d76 100644 > --- a/drivers/firmware/dell_rbu.c > +++ b/drivers/firmware/dell_rbu.c > @@ -45,6 +45,7 @@ > #include > #include > #include > +#include > > MODULE_AUTHOR("Abhay Salunke "); > MODULE_DESCRIPTION("Driver for updating BIOS image on DELL systems"); > @@ -181,6 +182,11 @@ static int create_packet(void *data, size_t length) > packet_data_temp_buf = NULL; > } > } > + /* > + * set to uncachable or it may never get written back before reboot > + */ > + set_memory_uc((unsigned long)packet_data_temp_buf, 1 << ordernum); > + > spin_lock(&rbu_data.lock); > > newpacket->data = packet_data_temp_buf; > @@ -349,6 +355,8 @@ static void packet_empty_list(void) > * to make sure there are no stale RBU packets left in memory > */ > memset(newpacket->data, 0, rbu_data.packetsize); > + set_memory_wb((unsigned long)newpacket->data, > + 1 << newpacket->ordernum); > free_pages((unsigned long) newpacket->data, > newpacket->ordernum); > kfree(newpacket); > Just a reminder... I don't think this has been picked up yet. Please let me know if there's anything I could do. Thanks! Stuart