From patchwork Tue Feb 19 17:01:56 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 158723 Delivered-To: patch@linaro.org Received: by 2002:a02:48:0:0:0:0:0 with SMTP id 69csp3891346jaa; Tue, 19 Feb 2019 09:02:26 -0800 (PST) X-Google-Smtp-Source: AHgI3IZZxpA4aT/6wDAGlUsSg61Wdh7P261SuVRpJJ2p07zcKcy5x8WUo7n8+27/8TfpkTXz69h3 X-Received: by 2002:a62:4414:: with SMTP id r20mr30517931pfa.37.1550595746681; Tue, 19 Feb 2019 09:02:26 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1550595746; cv=none; d=google.com; s=arc-20160816; b=MjklnZMGJqezRJ3vKzEAcRowmqrhQyetAfQmtONKUwl+V8Kcx9jEmy07X1U8VYOVUC wRChJ0TGRTdsS6DlYS7oPcIoR851GwvZtKnzIjaNSCSlABW86j19gVsj4wWYFAuycaSY thY6RHuNDbfRER6UxTeNo2oLVvlwUU6rI3WVd+lM7jCmB/tFYeG9cgfY2mua/srDeMn+ vaUN4iwHYA4oJe4/nHrCSeonWBR7cw/3z1yfCa1Kzjvg9NuAppt0mWUZRkzeq2Kwhmeu tfl241nGI1ieFp56tdwE9zuy/7qPfGF2oQ119NGlnsHzA10EzYBZIIvVJLQyR8XvbD9K 0SOg== 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; bh=dkxq09Un7bvd/IJEE2ShYwsphMXOH4LcH10dJgGBWbA=; b=vhCKCJ7WbMwFRksJszfpZ6EAOuut1izUTOGpCzu809MacZsrGzo5S07+3MJQx6Xi43 gUYYWpD5RRiArndD5cJDDi+pN+p4HU9gdjdDP5vSmHOZq4SVkjrPQ1MILblyr/bxo3Ud ONR8GszE6dO0lHXPa5EUCAPyp7JS2ir3uIP4bj7m05498YbzLSa3V25+Ol0Rr9YC7PdI J9oIVjGNMN8NpWtQ1x6lw5CHB/CkwdecEJHZoCfOhd9cgDpXYY/Yh2fd2M3COx5pcYwj 0c5cLqGrfp3i2f6D5PWGLduUK1jitmX8axfcE16QEA/V9yO+9pw4+dRTjY1U9Zu3N+sI 1Dyw== ARC-Authentication-Results: i=1; mx.google.com; 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 5si16312208pgc.290.2019.02.19.09.02.26; Tue, 19 Feb 2019 09:02:26 -0800 (PST) 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; 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 S1729622AbfBSRCY (ORCPT + 32 others); Tue, 19 Feb 2019 12:02:24 -0500 Received: from mout.kundenserver.de ([212.227.126.187]:58081 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729574AbfBSRCW (ORCPT ); Tue, 19 Feb 2019 12:02:22 -0500 Received: from wuerfel.lan ([109.192.41.194]) by mrelayeu.kundenserver.de (mreue011 [212.227.15.129]) with ESMTPA (Nemesis) id 1MF3Y8-1gpUx110si-00FOyH; Tue, 19 Feb 2019 18:02:11 +0100 From: Arnd Bergmann To: Hans Verkuil , Mauro Carvalho Chehab Cc: Nick Desaulniers , Mark Brown , Nathan Chancellor , Arnd Bergmann , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/3] media: saa7146: avoid high stack usage with clang Date: Tue, 19 Feb 2019 18:01:56 +0100 Message-Id: <20190219170209.4180739-1-arnd@arndb.de> X-Mailer: git-send-email 2.20.0 MIME-Version: 1.0 X-Provags-ID: V03:K1:f17Grli5DiRWtm73DDP6MNHKjIcKP4kUCt8yTLp1WethQDw9LhW qv86EcVZ/81xQ0kMCKXjaTBoXe5EdOh41HcBu5xWyUC2y7BFAftViI8ub9GwaSCBNDN0uPW 5pI9Jt4lbcbCyGrRFCjeKsXR2CtrWzoZKAmSxU+Xb4U01pEzkoCRPJrmPmyD5H43DTQVwN9 L7Ecjvy/jLZUkdyu0kPGQ== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1; V03:K0:57pD253Ows8=:gcY+mv6OFOSjxIulmh/3Jw cEouaU5dMvs1jIrYO8aOahIOtngKiWVd/mMZHUlHXbjipUQxAP52lRYQug3vsFyE1iaixK58c rg+kXHvDqKlbosy316li/b+UoIQKYRP54s/ckL8kfj5/UCX3IICntAAOaEeWSuIStaBEN9EGR JjUcfAejsssIgnkVhujdW2lEVaV4yUMajz9PElOvsJfd2rcur8Lcxx/8gJYMUlSHWfr4TxNMr tw41a1M1236lAJaiDAK3x6kiEdVjovE2G/Bu1IbdF8u7HfR0D3b1oJRijZURHdWdbwLJNkDrZ l6A/fx/8KGQvimSEUyfTiolG4ThpVE8n5OZkuMJzCsabWxaaUa1B9ke9O1nJMYowM7hD2W/tH 5eiK1siQmUwCoN4WVioZfwZOFJPemBNWtCoePKuG+OwwJ94okVajNlSMA8jRw9FXBUevfY909 ARMXbxhcW6LgUb8URBzFAzktp1Ali0IERlCxetQkGDtE+FI7CEFnD/9AmmdWLZavFmsitO23C zSywski7VY0C1IOLVogZRBv0u6r9QiBoZ6Sqokrby2Tyn7Y5GRZNe/y9yzeKg3HwjRm7W96uR wIAhF12t/G5bB11xaJ0ytt/lgO/uJVfPpUyzpxtazjHCdbT05GUasNwMDDwpICtd+86DiDuNH TEqPmK1kKXDo7ryTBrM1CK8F01zBThcL6A+g07sKO2FYFtF0QYdYxqwWtSOaMWdqP5JU9QehE y8lYGj1Pis+RTS5NT6KqZFFgoWAD1vw8ge737w== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Two saa7146/hexium files contain a construct that causes a warning when built with clang: drivers/media/pci/saa7146/hexium_orion.c:210:12: error: stack frame size of 2272 bytes in function 'hexium_probe' [-Werror,-Wframe-larger-than=] static int hexium_probe(struct saa7146_dev *dev) ^ drivers/media/pci/saa7146/hexium_gemini.c:257:12: error: stack frame size of 2304 bytes in function 'hexium_attach' [-Werror,-Wframe-larger-than=] static int hexium_attach(struct saa7146_dev *dev, struct saa7146_pci_extension_data *info) ^ This one happens regardless of KASAN, and the problem is that a constructor to initalize a dynamically allocated structure leads to a copy of that structure on the stack, whereas gcc initializes it in place. Link: https://bugs.llvm.org/show_bug.cgi?id=40776 Signed-off-by: Arnd Bergmann --- drivers/media/pci/saa7146/hexium_gemini.c | 4 +--- drivers/media/pci/saa7146/hexium_orion.c | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) -- 2.20.0 Reviewed-by: Nick Desaulniers diff --git a/drivers/media/pci/saa7146/hexium_gemini.c b/drivers/media/pci/saa7146/hexium_gemini.c index 5817d9cde4d0..f7ce0e1770bf 100644 --- a/drivers/media/pci/saa7146/hexium_gemini.c +++ b/drivers/media/pci/saa7146/hexium_gemini.c @@ -270,9 +270,7 @@ static int hexium_attach(struct saa7146_dev *dev, struct saa7146_pci_extension_d /* enable i2c-port pins */ saa7146_write(dev, MC1, (MASK_08 | MASK_24 | MASK_10 | MASK_26)); - hexium->i2c_adapter = (struct i2c_adapter) { - .name = "hexium gemini", - }; + strscpy(hexium->i2c_adapter.name, "hexium gemini", sizeof(hexium->i2c_adapter.name)); saa7146_i2c_adapter_prepare(dev, &hexium->i2c_adapter, SAA7146_I2C_BUS_BIT_RATE_480); if (i2c_add_adapter(&hexium->i2c_adapter) < 0) { DEB_S("cannot register i2c-device. skipping.\n"); diff --git a/drivers/media/pci/saa7146/hexium_orion.c b/drivers/media/pci/saa7146/hexium_orion.c index 0a05176c18ab..b9f4a09c744d 100644 --- a/drivers/media/pci/saa7146/hexium_orion.c +++ b/drivers/media/pci/saa7146/hexium_orion.c @@ -231,9 +231,7 @@ static int hexium_probe(struct saa7146_dev *dev) saa7146_write(dev, DD1_STREAM_B, 0x00000000); saa7146_write(dev, MC2, (MASK_09 | MASK_25 | MASK_10 | MASK_26)); - hexium->i2c_adapter = (struct i2c_adapter) { - .name = "hexium orion", - }; + strscpy(hexium->i2c_adapter.name, "hexium orion", sizeof(hexium->i2c_adapter.name)); saa7146_i2c_adapter_prepare(dev, &hexium->i2c_adapter, SAA7146_I2C_BUS_BIT_RATE_480); if (i2c_add_adapter(&hexium->i2c_adapter) < 0) { DEB_S("cannot register i2c-device. skipping.\n");