From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751807AbdBAIJh (ORCPT ); Wed, 1 Feb 2017 03:09:37 -0500 Received: from mail-eopbgr00118.outbound.protection.outlook.com ([40.107.0.118]:55621 "EHLO EUR02-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751395AbdBAIJd (ORCPT ); Wed, 1 Feb 2017 03:09:33 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=peda@axentia.se; From: Peter Rosin To: CC: Peter Rosin , Jonathan Cameron , Hartmut Knaack , Lars-Peter Clausen , Peter Meerwald-Stadler , Alison Schofield , Gregor Boirie , Sanchayan Maity , Ken Lin , Subject: [PATCH 1/2] iio: pressure: mpl3115: do not rely on structure field ordering Date: Wed, 1 Feb 2017 09:09:26 +0100 Message-ID: <1485936567-3367-2-git-send-email-peda@axentia.se> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1485936567-3367-1-git-send-email-peda@axentia.se> References: <1485936567-3367-1-git-send-email-peda@axentia.se> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [217.210.101.82] X-ClientProxiedBy: AM5PR0601CA0039.eurprd06.prod.outlook.com (10.173.86.153) To AM5PR0202MB2546.eurprd02.prod.outlook.com (10.173.89.7) X-MS-Office365-Filtering-Correlation-Id: d1080f04-0e01-4e06-ea23-08d44a79a67c X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:AM5PR0202MB2546; X-Microsoft-Exchange-Diagnostics: 1;AM5PR0202MB2546;3:hFk5vWqqMMXj0ZLiL0gUuVFkvaSjiwkVAXekGhDUeniIT9qTaUhCiv9+T6RSh0wQTJ6YKDC39BbgvAi9BeqhFTShYbKgIsM3s+/QvukCeo2Xt3YWYfnkCnuTombAE2hhZtvrb0tlip/xKEIwWDAZ7b9SaHEJ+Bgf+GZnsIWVqmWfeZIR+axJmngdh/UCTZtRExrXHu4iLOTQvws9MLdzkkpwd+gOT2TIhw39QyWhN2WjsVS1NHC8HujI7dtCB65J0sNgCCuoYhOI6WHB5paZQw==;25:5QQCCX+mhfDyygW/qfaBuhoU0Jcpl8P4rlTRB1YBVW8r+1NbYFsX1ck6BX3pIGhTJN6VxvH/1F3XFpqFczCbaRcuiO2Fz3B/W+0hD9mJQV2DiDYfvFG8VE3RNI/qE/D/yKbtt7VWuMPMeuy0VT91oqYPhE2F24TStmXWnVx1N4/i3lUPu0nPQladdQvmwE93nE1C/zOTnxOOhHaaLZcOA4rzojnKvFENHgFjZsDRtfllHFeLgiuDfaxbOMO+wwZS0k4pRT1lMfVSpzdwVBM4axVpIaVCBKs7zQW8O5E/8mhigKXzBIqXJdm7Yz/rTEJYxtULwpoTXBaAj3laz7HLym7rr9boltSnwax/IsakNp6sgM9jIGzKNoiyV4iiujMHhyYqZOCUBSnm16lLEbpWq5Eo8JwYNVXyRVteUwPAJ6RPlz22sSL6E/91eFEUY0OCP1tj/5InwUkmU3v2CQzXCw== X-Microsoft-Exchange-Diagnostics: 1;AM5PR0202MB2546;31:Dobb6ssG5pL6hxicf5ITr+QotuZMY7B2y8SjYc6hbIIfJsKWomqv8JCrLabUlO+CKBhgZmzyOxHtbhTDas7NLiKQaD+QpW/dAu5LucA6qMbuIFefA2BLzKuI/RhH5JwqLh1ln15t1ef7FKrxAJ2yFWdAp1SFZgDsKZnaAM6RIQ4vlkxx0+xhRPv4e1vwDLZM5BXWD4y70e917N2LpPrmTx0CIOeHh9HvbNB40A5eBw9qCYxA5jr77XH/eOTM5JEgUGLUZy4z4ZjlYLjF3eDW9A== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001)(6041248)(20161123564025)(20161123560025)(20161123558025)(20161123562025)(2016111802025)(20161123555025)(6043046)(6072148);SRVR:AM5PR0202MB2546;BCL:0;PCL:0;RULEID:;SRVR:AM5PR0202MB2546; X-Microsoft-Exchange-Diagnostics: 1;AM5PR0202MB2546;4:tU+eB8dixuJTI85kua6B77IrrMMaCUlQg7lCCroxfDdC3p09didZH+CIKh2Rmnts/A+XqiMSB5BQvCkdTWWL1KAU1Z8uHpCrtTc5Kbti5oZBmXzBxLEdp8/jYV6tVzGvFBl+0RHwEdA1hqRBm0AH9dgb6Ams9RbJ6fwIjaYO6wNKyOU50Q95OgzDsIxuRITXyHOj/61p94K6BaxM2NHN4j76NeLZ69eoo2fiIE4OJx+vQnJukN6LB0G9qkDJ72djCYZc/+xWdqQNH9ek2D0K/148whfRUf4b97w+OyNv4FM/HuqJmR+TxTTYjwzhLR+4iBxnZFcsXvB2nbEnUArDsqrYWPAV9a8/l5WIXqRnJJA66s6UagY7MedWkQ04OMfQaYkmUOZlF7XEdO1YCYaNWKYwRReCAoioAWu3Zkg10DBvc/NMpY0201Wwf1E4qcaf7quaxGDQNHXg55NDBVwM/Zij8kBb0u4m7T+mQ2xsxLRpaqFKIl2hQ6Rq9TGVS4vu1EKI7xtUEccRaB7vtv0yCpLlBt3I6ccUN2yCWwY4UZk7aWTsVU0AXErTA7UoBX6xzz8qQVPMQ6zrYzGdYRN9iCH6TJajYkGpYltMOh8T+4cm//Wts/3zGRZ8MIrQgOY67lh4b2/jbJnCiEPm613Blq4qaHALryyGyfogyBNcFnw= X-Forefront-PRVS: 0205EDCD76 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(7916002)(39450400003)(39410400002)(39830400002)(189002)(199003)(86362001)(97736004)(33646002)(305945005)(7416002)(110136003)(38730400001)(50466002)(2950100002)(7736002)(101416001)(5003940100001)(575784001)(36756003)(6666003)(50986999)(8676002)(81166006)(81156014)(76176999)(48376002)(6916009)(189998001)(5660300001)(4326007)(50226002)(6512007)(42186005)(105586002)(106356001)(54906002)(8666007)(25786008)(53936002)(74482002)(92566002)(6116002)(47776003)(2906002)(21086003)(68736007)(6506006)(3846002)(66066001)(39060400001)(6486002)(2351001)(42262002);DIR:OUT;SFP:1102;SCL:1;SRVR:AM5PR0202MB2546;H:orc.lan;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;AM5PR0202MB2546;23:5J3Vm2+l5uRQF4a9gfGILhjKHMy8+/fdWjvrNS5?= =?us-ascii?Q?oBaXJ4K9mUuZb6rdx1MSXSestf4yp8HeFeHwUTjL7lmpk+tP72xcV3DKuQJI?= =?us-ascii?Q?ni9QbgA8eNPFDtatpggDLcO+ZdpvwyGK/BOdGLoQDED2+svdOM5pEMjcy5U4?= =?us-ascii?Q?dIM+U3KeqsTHmSyJ5lmVRQLkMqSEZgegNhIzy6IUSbyOb//0mSKF3U69FBc+?= =?us-ascii?Q?igQAQ/W/29kRkOT8tNlD9eSFvH4LHSXeOXKFSFBgIvE8QWEIsDTGXMRehwZi?= =?us-ascii?Q?EZCpLOwsdAj5Jlt5JqxUjMcLd56eACOAbQnYzgfx8/im6iqJE+zz46Jayu/v?= =?us-ascii?Q?tFeOIU6g/JZdHZuJRaJllxhUCFgZRBC2Y3flpAwziI3GzkhQcgs3UASqsHf1?= =?us-ascii?Q?FZdDMYXKaOMQsmLR7q2EKZ6glwgNFq2DPecHsOAjj3lb0XKuyJp77y9uu3mi?= =?us-ascii?Q?BryJYylsrxGG0XbMcj2Mlka/8tUyGGvkPNRv33MQdOkQOqB1Wa25wecMbaN8?= =?us-ascii?Q?NJlXnC3ohluOAHL9hhiMV2T3AKTT8c+FcYNIA5nWC+eU3roBdr9nuD2Qfxbe?= =?us-ascii?Q?1wduEQwzFFWvwnA8dhuFSx5E7RmVrgkYCZy0syizC2EqEiru4uTgPKwe20yu?= =?us-ascii?Q?L8ErlzYdD8rvzqto8N1x9kxTHMLS/L5J4rbpXM1fGjPDzgehShWZWV/0CzC0?= =?us-ascii?Q?XsReDSL3VJ0LbOa9uISkrK2Q9bLoEHanyp8rRDOa+/s8FMjc/WTyCLVsWh5s?= =?us-ascii?Q?QdUEmoO2+skkwv2RHBHSsc9s9FiTUvEZohdfQtKQtz79CRh8pAONJvDtATjW?= =?us-ascii?Q?pCk0jS858RktC/BRMAtdBIoD+4VkDNxcuDL9ID7cZ3lc7wgpQrwPHoA6Oa77?= =?us-ascii?Q?GARaELh7DI88iAKDB80PEtS+VLoI40iLATWpiaDos/SX9TSup3QL2jnHjVD9?= =?us-ascii?Q?LXWruq5DCa6RTHj7muE3Hx49utJ6NJ4CjfV/E2ZM9k0Ob8AYYGGmHr5CbZ51?= =?us-ascii?Q?E0osuujWpFkGeCV9Ne0DpBwypo2PuJypxmBsRz4LDtJnmFQRjErhHRcxku+o?= =?us-ascii?Q?/owQtMJ/Cltaq6qob6+TAKI0LvxWXLeBhP2asZ9BL1ANVtlytDD1w2M9yCjD?= =?us-ascii?Q?TNqazUx0m97b6jkWOZOYublif12HgwMfXz6pgV8l2LAe42XAC4GFuN7Rvw78?= =?us-ascii?Q?oO6Fbmj0YSYU3Ktrazgf4m0/pijQUHqgGn18q+R4TiUoTOfjeM0GoZrKLxjw?= =?us-ascii?Q?0d8DQrRLlmIuayjHfUc9/8ml1HmzS6PYzXdkRhDAm6lJ8ibkKs8od7C4VJqS?= =?us-ascii?Q?SFHDzCkIk6JcT94WRcB9Xj0eESCIFNEOr5fcFgICvTx7l?= X-Microsoft-Exchange-Diagnostics: 1;AM5PR0202MB2546;6:KgQJi2+Nx4tn47zYgmI7GwCI2MYMphbKJlfY51HTZIP5FJjWCmBqBlD+L/MbMyJO8xOGNx6iEjkmpBvpvipvaolU5RlYDGVkSwXJgRWsEj374n6mPhdJY6nQHTFWuaMQwag2IKOSOY0zzHcT7DeopHMarEim4AlitVHOHHz8iHHh4Bg3I7Denx8+5LuYVenniI6ntDxuj4vpItnX/i+tcunbWoGa6/ZO3E9TSqvVsI1ubqYa04g9fxP9Ouj/wlBy0rExBamGVok0UV6uOqXZ06y0YEnW/WMJfQgvEhlu+TxGGHlJKBDDZpl03Me2bzxOnyGQFLL9GmwP6MNjrqtSjISraaxzuuPhdCu4qrkmIJauOJMDLVTsdMUKyVdu7EKIXTRb9yw/3NAGXyaa/Qk1AGZWhuXiVCBY2OaMPeSlbSY=;5:BWKu3ZoNJ8ZXGFZMTJGb/tabWssTN38YOJxiJMkCepiar7GAFusESLdvgDgqfPUZgKMIpHrkCzfPF4JX7hwxBK3rC/ZU632QzRVB0md7LAb9Z2AE5PCcAIsMbIywYdvDAbwYYCYYMTvHe7y5vfAjefLZwH2VyoKUdvWUs2lqD1I=;24:NiOMQ3sfe6q0UY39usctMjQy5uWILTS4z4OJAyXOXVq13VHcWM63Zc44hISb5sgB6Tq75cFrOdjItFYYMrDWkRYt+IUKb9Vz1GFs4G5meC0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;AM5PR0202MB2546;7:rz+MVTWdxpzFmzdYraTb1L1UH+nuFIAeNM2h/TAqX/aHBi8GN897GGDs/id0DXMQl2KLnYHvbSf2tRuVS9d3eRlLfj9P1Bgg5fz6unVK9/BjrSlEyvoh4xVuQjEVETnURCy/eqchWs9W095fAeXvK2eemRB5rGnGf8J2nzkXTRlA22MxhuSDFkdEL6ZDqNEFjM280G1Xsemc79LfRcSCbrnh+IpOUiNBS2pWfZ/zzS70ixFEFfPh55uJVp40sBvny1rv3XnkdaVVDrIHduHo6RSl2KC9GjmfknpH0zQwnIOSoVa6nd0w+KnzqV8xIt8MwoydQ+6TS7mOzV01GmTyyNI4Md7VEjL/Hs5RjfdNX0EL7efen7aMxihlQbrXFp0FwqfAriqhirkfGb8C3qYy2Ym9tbrSrNq4TGtJuJz2cI/5kCqGmLqpBjnE1HeLri5rMUaIr1SyoUizM7V2aEJNlEL5XanBgLmidq6tiCG7AWi/lSSiBTtE1CTKRI7kKvzu/1eppCHnc/y19GA0afLJOFRVHVQGwgH1bE7WyrK/GYnbhvT/P2Cb1AwSkv1RpuOl X-OriginatorOrg: axentia.se X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Feb 2017 08:09:30.2027 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0202MB2546 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Fixes a regression triggered by a change in the layout of struct iio_chan_spec, but the real bug is in the driver which assumed a specific structure layout in the first place. # cat /sys/bus/iio/devices/iio\:device1/in_pressure_scale_available Segmentation fault Unable to handle kernel NULL pointer dereference at virtual address 00000000 pgd = ecc3c000 [00000000] *pgd=87f91831 Internal error: Oops: 80000007 [#1] SMP ARM Modules linked in: CPU: 1 PID: 1051 Comm: cat Not tainted 4.10.0-rc5-00009-gffd8858-dirty #3 Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree) task: ed54ec00 task.stack: ee2bc000 PC is at 0x0 LR is at iio_read_channel_info_avail+0x40/0x280 pc : [<00000000>] lr : [] psr: a0070013 sp : ee2bdda8 ip : 00000000 fp : ee2bddf4 r10: c0a53c74 r9 : ed79f000 r8 : ee8d1018 r7 : 00001000 r6 : 00000fff r5 : ee8b9a00 r4 : ed79f000 r3 : ee2bddc4 r2 : ee2bddbc r1 : c0a86dcc r0 : ee8d1000 Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none Control: 10c5387d Table: 3cc3c04a DAC: 00000051 Process cat (pid: 1051, stack limit = 0xee2bc210) Stack: (0xee2bdda8 to 0xee2be000) dda0: ee2bddc0 00000002 c016d720 c016d394 ed54ec00 00000000 ddc0: 60070013 ed413780 00000001 edffd480 ee8b9a00 00000fff 00001000 ee8d1018 dde0: ed79f000 c0a53c74 ee2bde0c ee2bddf8 c0513c58 c06fbbe8 edffd480 edffd540 de00: ee2bde3c ee2bde10 c0293474 c0513c40 c02933e4 ee2bde60 00000001 ed413780 de20: 00000001 ed413780 00000000 edffd480 ee2bde4c ee2bde40 c0291d00 c02933f0 de40: ee2bde9c ee2bde50 c024679c c0291ce0 edffd4b0 b6e37000 00020000 ee2bdf78 de60: 00000000 00000000 ed54ec00 ed013200 00000817 c0a111fc edffd540 ed413780 de80: b6e37000 00020000 00020000 ee2bdf78 ee2bded4 ee2bdea0 c0292890 c0246604 dea0: c0117940 c016ba50 00000025 c0a111fc b6e37000 ed413780 ee2bdf78 00020000 dec0: ee2bc000 b6e37000 ee2bdf44 ee2bded8 c021d158 c0292770 c0117764 b6e36004 dee0: c0f0d7c4 ee2bdfb0 b6f89228 00021008 ee2bdfac ee2bdf00 c0101374 c0117770 df00: 00000000 00000000 ee2bc000 00000000 ee2bdf34 ee2bdf20 c016ba04 c0171080 df20: 00000000 00020000 ed413780 b6e37000 00000000 ee2bdf78 ee2bdf74 ee2bdf48 df40: c021e7a0 c021d130 c023e300 c023e280 ee2bdf74 00000000 00000000 ed413780 df60: ed413780 00020000 ee2bdfa4 ee2bdf78 c021e870 c021e71c 00000000 00000000 df80: 00020000 00020000 b6e37000 00000003 c0108084 00000000 00000000 ee2bdfa8 dfa0: c0107ee0 c021e838 00020000 00020000 00000003 b6e37000 00020000 0001a2b4 dfc0: 00020000 00020000 b6e37000 00000003 7fffe000 00000000 00000000 00020000 dfe0: 00000000 be98eb4c 0000c740 b6f1985c 60070010 00000003 00000000 00000000 Backtrace: [] (iio_read_channel_info_avail) from [] (dev_attr_show+0x24/0x50) r10:c0a53c74 r9:ed79f000 r8:ee8d1018 r7:00001000 r6:00000fff r5:ee8b9a00 r4:edffd480 [] (dev_attr_show) from [] (sysfs_kf_seq_show+0x90/0x110) r5:edffd540 r4:edffd480 [] (sysfs_kf_seq_show) from [] (kernfs_seq_show+0x2c/0x30) r10:edffd480 r9:00000000 r8:ed413780 r7:00000001 r6:ed413780 r5:00000001 r4:ee2bde60 r3:c02933e4 [] (kernfs_seq_show) from [] (seq_read+0x1a4/0x4e0) [] (seq_read) from [] (kernfs_fop_read+0x12c/0x1cc) r10:ee2bdf78 r9:00020000 r8:00020000 r7:b6e37000 r6:ed413780 r5:edffd540 r4:c0a111fc [] (kernfs_fop_read) from [] (__vfs_read+0x34/0x118) r10:b6e37000 r9:ee2bc000 r8:00020000 r7:ee2bdf78 r6:ed413780 r5:b6e37000 r4:c0a111fc [] (__vfs_read) from [] (vfs_read+0x90/0x11c) r8:ee2bdf78 r7:00000000 r6:b6e37000 r5:ed413780 r4:00020000 [] (vfs_read) from [] (SyS_read+0x44/0x90) r8:00020000 r7:ed413780 r6:ed413780 r5:00000000 r4:00000000 [] (SyS_read) from [] (ret_fast_syscall+0x0/0x1c) r10:00000000 r8:c0108084 r7:00000003 r6:b6e37000 r5:00020000 r4:00020000 Code: bad PC value ---[ end trace 9c4938ccd0389004 ]--- Fixes: cc26ad455f57 ("iio: Add Freescale MPL3115A2 pressure / temperature sensor driver") Fixes: 51239600074b ("iio:core: add a callback to allow drivers to provide _available attributes") Reported-by: Ken Lin Signed-off-by: Peter Rosin --- drivers/iio/pressure/mpl3115.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/iio/pressure/mpl3115.c b/drivers/iio/pressure/mpl3115.c index cc3f84139157..525644a7442d 100644 --- a/drivers/iio/pressure/mpl3115.c +++ b/drivers/iio/pressure/mpl3115.c @@ -190,7 +190,7 @@ static const struct iio_chan_spec mpl3115_channels[] = { { .type = IIO_PRESSURE, .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), - BIT(IIO_CHAN_INFO_SCALE), + .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE), .scan_index = 0, .scan_type = { .sign = 'u', @@ -203,7 +203,7 @@ static const struct iio_chan_spec mpl3115_channels[] = { { .type = IIO_TEMP, .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), - BIT(IIO_CHAN_INFO_SCALE), + .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE), .scan_index = 1, .scan_type = { .sign = 's', -- 2.1.4