Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp2032462pxb; Thu, 11 Feb 2021 02:30:16 -0800 (PST) X-Google-Smtp-Source: ABdhPJwl2qwIQv7AQX9GBthO+vrStmWNPKRYMhW/b+rdldeiyvvPdw/TRbMHqLPNZ0pDiay73z+7 X-Received: by 2002:a17:907:948d:: with SMTP id dm13mr7554518ejc.545.1613039415889; Thu, 11 Feb 2021 02:30:15 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1613039415; cv=none; d=google.com; s=arc-20160816; b=t++m66scb3mr2A9pUFASKYGGBeMoNLUvO2L0i/rrEhGFL8U9hJHTntQTpLHu8aisgk taLQvVH/yfJrSKH2A9p838XcuTxCgk/2ZFPJ8QJtFO06277hti3M5ir1+WMNgZmH+/UT xHYxOvuRxMiuEmQZkv6NW0+woOvoKTpT7gg17qO0fgPLX5CkO6VecMBCAPyoeaiIqVrv UdnX9BIoyhIQMM7qwJDc64HpTLBXH0eohy0d5suXktSQJeXdBalDIs1ZU3RxxdDDRwXT D2kGSLG3CE9J+1cip+juppmeNLTRNWLq/VgGdQGzSc43u6hJoqvH50L7WsCmUeD7ca2/ SpXw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:organization:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :ironport-sdr:ironport-sdr; bh=ZMEPmyT2aRBOU1Lm7AQ1TvQotj4dROt8B8dz5vM91Jc=; b=xgZePXSMaYdvVG32grbZskMF68ffhIl5Oja7NbkctNZA4afkkxJv6foAKelYVPM+Bs 2LaK0VqP/zmlkQyfVbEVmI8v1o0uuenqziYnZ8OBBL8aKRqjmDhugJwpeFY+7SxAZQg4 dSHRMqIqgr+B2BfHdoehpBBLw4XkIL9cI2x8yL7wvsH1qrP9X32timtFlDurMqOie738 sXpASEFXu/N1UE6ShvxCG+QNMKwuzZuDcqMZ15NpYhlFAJmJvN4a2ulD8SIRVcFobtDi WMQ9A9WVhF7Y1VV48YnO5tfmulcg28DUVXtifXPYch2JJjuks41vd5r4R8ziUnGt45jB lK6g== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id hs7si4055356ejc.147.2021.02.11.02.29.52; Thu, 11 Feb 2021 02:30:15 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230289AbhBKK2o (ORCPT + 99 others); Thu, 11 Feb 2021 05:28:44 -0500 Received: from mga12.intel.com ([192.55.52.136]:32681 "EHLO mga12.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230155AbhBKKY4 (ORCPT ); Thu, 11 Feb 2021 05:24:56 -0500 IronPort-SDR: SSzWNTIZR04xofEdIGbYaaXgL+9pG0WdMk+rOkQ+GDgjulEGP+2Yf0s7nILNuPGqu+RxacYh5B BpgdMaPphH6g== X-IronPort-AV: E=McAfee;i="6000,8403,9891"; a="161363831" X-IronPort-AV: E=Sophos;i="5.81,170,1610438400"; d="scan'208";a="161363831" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Feb 2021 02:23:01 -0800 IronPort-SDR: /+tBbN4uqbJAfvAU8e92x72ZX33qR7m3gpoEidH2oLX39AD5xoV50ZECA+Kt5yO7dTRd1aHQx+ E+c+4yIN1KTA== X-IronPort-AV: E=Sophos;i="5.81,170,1610438400"; d="scan'208";a="375794713" Received: from smile.fi.intel.com (HELO smile) ([10.237.68.40]) by orsmga002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Feb 2021 02:22:59 -0800 Received: from andy by smile with local (Exim 4.94) (envelope-from ) id 1lA97g-004CLK-Py; Thu, 11 Feb 2021 12:22:56 +0200 Date: Thu, 11 Feb 2021 12:22:56 +0200 From: Andy Shevchenko To: Maximilian Luz Cc: Hans de Goede , Mark Gross , platform-driver-x86@vger.kernel.org, linux-kernel@vger.kernel.org, kernel-test-robot Subject: Re: [PATCH] platform/surface: aggregator: Fix access of unaligned value Message-ID: References: <20210210230411.1938660-1-luzmaximilian@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20210210230411.1938660-1-luzmaximilian@gmail.com> Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Feb 11, 2021 at 12:04:11AM +0100, Maximilian Luz wrote: > The raw message frame length is unaligned and explicitly marked as > little endian. It should not be accessed without the appropriatte > accessor functions. Fix this. Reviewed-by: Andy Shevchenko Though a few nit-picks below. > Reported-by: kernel-test-robot > Fixes: c167b9c7e3d6 ("platform/surface: Add Surface Aggregator subsystem") > Signed-off-by: Maximilian Luz > --- > drivers/platform/surface/aggregator/ssh_packet_layer.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/platform/surface/aggregator/ssh_packet_layer.c b/drivers/platform/surface/aggregator/ssh_packet_layer.c > index 583315db8b02..9a78188d8d1c 100644 > --- a/drivers/platform/surface/aggregator/ssh_packet_layer.c > +++ b/drivers/platform/surface/aggregator/ssh_packet_layer.c > @@ -1774,7 +1774,8 @@ static size_t ssh_ptl_rx_eval(struct ssh_ptl *ptl, struct ssam_span *source) > break; > } > > - return aligned.ptr - source->ptr + SSH_MESSAGE_LENGTH(frame->len); > + return aligned.ptr - source->ptr > + + SSH_MESSAGE_LENGTH(get_unaligned_le16(&frame->len)); I would leave + on previous line. Also it's possible to annotate temporary variable and use it, but it seems not worth to do. Side question: Do you think the below is correct (& operator)? sp.len = get_unaligned_le16(&((struct ssh_frame *)sf.ptr)->len); To me seems like you take an address to len member rather its value. > } > > static int ssh_ptl_rx_threadfn(void *data) -- With Best Regards, Andy Shevchenko