Received: by 2002:a25:d7c1:0:0:0:0:0 with SMTP id o184csp1760803ybg; Sat, 19 Oct 2019 01:58:36 -0700 (PDT) X-Google-Smtp-Source: APXvYqzixSVfjg2b6A6D1RstlCqj0i0kNJiw184YyH5vE3GP63ROP+x4+MgepGlk9tZ/0ASO5Dxd X-Received: by 2002:aa7:d3d3:: with SMTP id o19mr13706302edr.230.1571475516769; Sat, 19 Oct 2019 01:58:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1571475516; cv=none; d=google.com; s=arc-20160816; b=C31NgMoEASpWKbLlIQy7MM1LwbJ/czfYhPlBL14JkEJGllTiHhraI3PIfztGErvbne juiPprhSdBepZJtXdeLp850vfDXlGwNF7WOQo3lnYeiFk09QCmdACG7ETb7SyCN9fRmg VXDofGovNCEw9aLkWdFgP5y0DyIPgCV0XcEkk0asuEvy78lBuSdoPdsfexo11DFrRBPT 2ASk45Lz2Yj24+us8I7JW94CGn9LDzFWqiqD66FKOaIYgXF0QFyexekVbBYkgwCf+FWe tuZ3qHGlpgGzesJPmnAHlYhL12IjnxRn0Vdodvxn9TA1bO137aDwIcJ0jSXLjHHbBSlf 16LQ== 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:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=1Sw0jFW5jGSGbXDR6kjw3sQ7x0eXAWOU04hu+4Lun0I=; b=kvp9xK1XdlPfoh99ZN0AyaPpm+nLbjPV9OUB5xio3Y5aJ4OYtNElf0VsWmAnhO/RK/ G2T7t9B8yKSwlh1fMNsdmRwxXuJBUOF3KUIndyOwZQTD2C2XA5dH+XdIfHd8tj/KiXCg pAcXLvY7PPSzeBP/G0X+cp9PZSGYhcef98RJ0nRuw0f6lzK9AYGVW0ZVy5LC6jP9SrcP 2QsUYo8kHw8GNsnB25Scr+DwjR01PyGJUgexyqMv8ln7HpbQhKJtnotgDkGMynUfVK69 X/BUJbIrlD5woiKoCqaGRnz/SkAvsmt/0/hwKrL5COv/Ltqdv0Q6MKyn7I9Yn+iQLDTL aBuA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=F7bCnS3u; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g19si4880004ejw.373.2019.10.19.01.58.13; Sat, 19 Oct 2019 01:58:36 -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=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=F7bCnS3u; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2502435AbfJRRcV (ORCPT + 99 others); Fri, 18 Oct 2019 13:32:21 -0400 Received: from mail-wm1-f67.google.com ([209.85.128.67]:50310 "EHLO mail-wm1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728833AbfJRRcU (ORCPT ); Fri, 18 Oct 2019 13:32:20 -0400 Received: by mail-wm1-f67.google.com with SMTP id 5so7014758wmg.0 for ; Fri, 18 Oct 2019 10:32:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=1Sw0jFW5jGSGbXDR6kjw3sQ7x0eXAWOU04hu+4Lun0I=; b=F7bCnS3unseU4Pe5IzC5zUpmWlYMdj2YoPBCoyigGCpOa5U4q61E23KUKl7/OO8nS6 WUdzxbAus6HqI12ynE+nZwyeZbScvBHaNZ/MS3f0KnUNnx/EplI1jIZL/5iH71+0mdDz dcRy9M6gwI3bMmfZsccnxZpqW7Rd51W1NywMy4/Mp4wT89DnDgdkLVO9fv5sh0RYkPyS Ehf0VdWN6+9r6al9EuDyaJi+pPQ0TMXNqxP6f179NCcs0/5FVY+iBLYjGQ5xJXBeU71O Q8mJc2Fg+yP3dNOPle+Zb1QIZzX2WsgUBZelWPvl8lmHh9R83fIiczy6BM3vNpewfQqr /wPA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=1Sw0jFW5jGSGbXDR6kjw3sQ7x0eXAWOU04hu+4Lun0I=; b=V09ZsId9HxipBuA/NlYMoB2+YloyaJBODZA2hhOS2N2gh+u2+jmi4U6jIsJ2U0ux5R jNg8f+XxA6w23/7hCwkcV3Cb0zZnvNiRCcidTK4pOa6lUf49Yx7T7t2rMTTMMSVYMN45 PAl8s5df7CRcnMda37Z4G3aJJW2V6hLzfHfVCYyeQ81yQobXbUXwaTDguEZZw7KAG5g1 0QgxPRdTPB88R8HRdnBXX0HhzDWyNQ2lHnoaW7sc+K0T33BVaPK13VoBgB8/qZKotUNf TVL3ErkUqnB90IXLA/dnHrvL+aDLly9XyAWEpyCNRiTMOPydU6sTqS83UNP7AEAlkqxc iJGw== X-Gm-Message-State: APjAAAXGlYF/Pw/0idCjv7fq3Gjtnyp/CkoVD+m1CaIOzV/iFaoCM7Cb 6am4rrWwfqEoAkHoJ6XW/MK3nJGQwfU= X-Received: by 2002:a05:600c:2201:: with SMTP id z1mr8798906wml.169.1571419936945; Fri, 18 Oct 2019 10:32:16 -0700 (PDT) Received: from localhost.localdomain ([2a01:e0a:32c:e530:1f62:944f:4c42:96a0]) by smtp.gmail.com with ESMTPSA id z4sm5911967wrh.93.2019.10.18.10.32.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 18 Oct 2019 10:32:16 -0700 (PDT) From: Fabien Parent To: linux-kernel@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-i2c@vger.kernel.org Cc: tglx@linutronix.de, hsinyi@chromium.org, drinkcat@chromium.org, qii.wang@mediatek.com, wsa@the-dreams.de, matthias.bgg@gmail.com, Fabien Parent , Cengiz Can , Ulrich Hecht Subject: [PATCH RESEND v2] i2c: i2c-mt65xx: fix NULL ptr dereference Date: Fri, 18 Oct 2019 19:32:13 +0200 Message-Id: <20191018173213.13282-1-fparent@baylibre.com> X-Mailer: git-send-email 2.23.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Since commit abf4923e97c3 ("i2c: mediatek: disable zero-length transfers for mt8183"), there is a NULL pointer dereference for all the SoCs that don't have any quirk. mtk_i2c_functionality is not checking that the quirks pointer is not NULL before starting to use it. This commit add a call to i2c_check_quirks which will check whether the quirks pointer is set, and if so will check if the IP has the NO_ZERO_LEN quirk. Fixes: abf4923e97c3 ("i2c: mediatek: disable zero-length transfers for mt8183") Signed-off-by: Fabien Parent Reviewed-by: Cengiz Can Reviewed-by: Hsin-Yi Wang Tested-by: Ulrich Hecht --- v2: * use i2c_check_quirks to check the quirks --- drivers/i2c/busses/i2c-mt65xx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/i2c/busses/i2c-mt65xx.c b/drivers/i2c/busses/i2c-mt65xx.c index 29eae1bf4f86..2152ec5f535c 100644 --- a/drivers/i2c/busses/i2c-mt65xx.c +++ b/drivers/i2c/busses/i2c-mt65xx.c @@ -875,7 +875,7 @@ static irqreturn_t mtk_i2c_irq(int irqno, void *dev_id) static u32 mtk_i2c_functionality(struct i2c_adapter *adap) { - if (adap->quirks->flags & I2C_AQ_NO_ZERO_LEN) + if (i2c_check_quirks(adap, I2C_AQ_NO_ZERO_LEN)) return I2C_FUNC_I2C | (I2C_FUNC_SMBUS_EMUL & ~I2C_FUNC_SMBUS_QUICK); else -- 2.23.0