From nobody Fri Jun 12 11:37:43 2026 Received: from mail-pf1-f179.google.com (mail-pf1-f179.google.com [209.85.210.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 75B393D646D for ; Fri, 15 May 2026 09:25:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778837157; cv=none; b=bJlJGU4+hlxZMAizvywTKPIpvoBWee1A/yl34hpTL8SzNJprj8A1xzawyXUxvKNgKFIVwyMvgrcN+ux8Yf8+YK/fH5GmHk5J0tksCDHo88KvjVW443XhBoq/oA7j/7CEdw44vRJKevUGlHeKrF7F3xG/5vgG7EVct6vby/om8eY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778837157; c=relaxed/simple; bh=OQSmcdMGLcht6LgFbXJblFwpoEU39TYz6Vwkm8EsCTg=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=UXzd/EMmDcor7q1HeoUoiQaGPiEYXdRLtkzDeHMa5YfVwcI8PLajdNZ6n7DFR+by/YGgSU4uFEJzy1TX8//rxA3birLpzWtx7NLa5jIPkT2DkHq7fN2ExRyWMPQ3gc8PdHF/ll9NXHjh0D9MesC1jhdxoDJtt0NpE1CV7dUdN4s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=A3g8DV11; arc=none smtp.client-ip=209.85.210.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="A3g8DV11" Received: by mail-pf1-f179.google.com with SMTP id d2e1a72fcca58-83ec36a13e9so3292058b3a.0 for ; Fri, 15 May 2026 02:25:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1778837155; x=1779441955; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=h187CLLtKoMiP+2/X+09HRYFjKBZCzb1UldAVYewGlw=; b=A3g8DV11mhghB8920NSvUlb7Arae/UyKtz2erAKrMXNnxeaNMHLW5uG902M72edm9e 6i4MOjDTiWNm0EfpocogTbPJOBXUO38rTY3nn5xY69ProOMhvINItuTIPp4URseKupV3 xFRAayOX7oACC0wkFA7YlRNQjKUwfITorVwHbHfRhKWwrEpClchMeE1cfG0xx2MwVy04 y5XffG+a7yM84PIqqBaky3deh6x+eabNFbrNilOOQk80stkTy7IyoBEAg0Ldv+81g0IB YkRrv5WmsXnW/03+dwL+bLGj/ekYXkv3WSnrufPP4pjz2QdYziDIQfHEoUsNLEW/Om0L CiUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778837155; x=1779441955; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=h187CLLtKoMiP+2/X+09HRYFjKBZCzb1UldAVYewGlw=; b=NKOkozIhL43SE2AU941P6xb7/fO2J8NYVXdgcFfO3SN0IqS9sgv+xNQCF40JiyDoeC 2pLZ3TKcGzcd+svyRxv26HiN52hnO+hA4zpXj1mGoNZFW7+KbY4ZLjwAhV9zbivDXT4l U+/etrun02MsAlf433pi58r0e0vV94aPbhSw9XZIK9a+kz7Z/B0l7KoYIWVo856fV9PN S36Qj9nfHZ90W5HvG1kXhDbGMqu6UR4zI5051C9FOjPSGZWNtGsRDKIE1NzfHVqTuMzs w97C+f1/j42jVVQTTLQpvtk6naypWWXzFK9NGfgl+jJUTT2bCrGaL4S7cWPl9CthwpwK 2a9Q== X-Forwarded-Encrypted: i=1; AFNElJ+0Ty7RLZFerIq7ec2FdxmXDvNFINKplaCjG5tyDM2w3hAGggzUvtjprrH4JG4QlWPRXEBva3RygTx4tLU=@vger.kernel.org X-Gm-Message-State: AOJu0YwxIpY4pA0m6m38lVe3eLqgcZz2T9WSRu0NtRXdylY88DbklFE0 kuhNFiwKPY057lmWktx/zM4b/7gqXcx8cGc+HT5+QaEISmN6gH1RiALOE68BiC6sSP8= X-Gm-Gg: Acq92OEHN1ZO4NWpawahwdQGzcIk2taDtQ56YHc71ayti6yCQvHWLJWClPqphnmFxMS yQyqdT0uqMCydTYyj7S9irkBFvv1oRjt5/Xyk/TmC1qyj+uLMid7dYiZCiKesqmSDVXbKrBt9kT FaZlFAyMccxwjmEEMTa+QVEs0I9QNu4ZlMdhBLi+rDjuX3UTgpJeqATGMsZ7bqaAGb3YhFmfg8U 4NlD52Rx+KRS04JB9rxGoXYdjFvE52GzxW0ODdq0dePDnGRH9jXlopdWnpGgSqJQ+roNCsTIp8q U7HSMQXGl2w191+ffYCRxjqYoFRhMi3se/4xfGgpAXc2/w+mYSs2n4bBjFAx5y4tL8IFM70VKGV FTSlK/hAXbLVCWf100pzVY8qKVLxeX5H7FP0xbANml/XFtEyqm2ZW78G+2g+HcjUDLlo+BsNms7 H6JAf/2agpmgqVZ3VMy15CGru9jLzsbZ6ZzYXIRiStLdJAAXacmzkw/ylxrob2JDzkPr6/g4DQG q6HmcuutDo= X-Received: by 2002:a05:6a00:2394:b0:83e:c76c:d720 with SMTP id d2e1a72fcca58-83f33c60de3mr3457647b3a.30.1778837154576; Fri, 15 May 2026 02:25:54 -0700 (PDT) Received: from chaitanya-virtualbox.. ([103.249.241.55]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-83f2b9bec8fsm3829097b3a.33.2026.05.15.02.25.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 02:25:54 -0700 (PDT) From: Chaitanya Sabnis To: brgl@kernel.org, andi.shyti@kernel.org Cc: linux-arm-kernel@lists.infradead.org, linux-i2c@vger.kernel.org, linux-kernel@vger.kernel.org, Chaitanya Sabnis , Sashiko Subject: [PATCH v3] i2c: davinci: fix division by zero on missing clock-frequency Date: Fri, 15 May 2026 14:55:20 +0530 Message-ID: <20260515092520.9006-1-chaitanya.msabnis@gmail.com> X-Mailer: git-send-email 2.43.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" When the 'clock-frequency' property is missing from the device tree, the driver falls back to DAVINCI_I2C_DEFAULT_BUS_FREQ. However, this macro was defined in kHz (100), whereas the device tree property is expected in Hz. The probe function divided the fallback value by 1000, causing integer truncation that resulted in dev->bus_freq =3D 0. This triggered a deterministic division-by-zero kernel panic when calculating clock dividers later in the probe sequence. Fix this by redefining DAVINCI_I2C_DEFAULT_BUS_FREQ in Hz (100000) to match the expected device tree property unit, allowing the existing division logic to work correctly for both cases. Fixes: b04ce6385979 ("i2c: davinci: kill platform data") Reported-by: Sashiko Closes: https://lore.kernel.org/all/20260514044726.57297C2BCB7@smtp.kernel.= org/ Signed-off-by: Chaitanya Sabnis Reviewed-by: Bartosz Golaszewski --- drivers/i2c/busses/i2c-davinci.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/i2c/busses/i2c-davinci.c b/drivers/i2c/busses/i2c-davi= nci.c index a773ba082321..a264a480dc3c 100644 --- a/drivers/i2c/busses/i2c-davinci.c +++ b/drivers/i2c/busses/i2c-davinci.c @@ -117,7 +117,7 @@ /* timeout for pm runtime autosuspend */ #define DAVINCI_I2C_PM_TIMEOUT 1000 /* ms */ =20 -#define DAVINCI_I2C_DEFAULT_BUS_FREQ 100 +#define DAVINCI_I2C_DEFAULT_BUS_FREQ 100000 =20 struct davinci_i2c_dev { struct device *dev; @@ -761,9 +761,7 @@ static int davinci_i2c_probe(struct platform_device *pd= ev) r =3D device_property_read_u32(&pdev->dev, "clock-frequency", &prop); if (r) prop =3D DAVINCI_I2C_DEFAULT_BUS_FREQ; - dev->bus_freq =3D prop / 1000; - dev->has_pfunc =3D device_property_present(&pdev->dev, "ti,has-pfunc"); =20 dev->clk =3D devm_clk_get(&pdev->dev, NULL); --=20 2.43.0