From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758063AbdKGQZA (ORCPT ); Tue, 7 Nov 2017 11:25:00 -0500 Received: from mail-eopbgr00121.outbound.protection.outlook.com ([40.107.0.121]:65481 "EHLO EUR02-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1758049AbdKGQYy (ORCPT ); Tue, 7 Nov 2017 11:24:54 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=stephend@adiengineering.com; Reply-To: stephend@adiengineering.com Subject: Re: [PATCH 3.16 167/294] i2c: ismt: Don't duplicate the receive length for block reads To: Ben Hutchings , linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: akpm@linux-foundation.org, Dan Priamo , Neil Horman , Wolfram Sang , Pontus Andersson References: From: Stephen Douthit Organization: ADI Engineering Message-ID: <0648c7a9-a683-46f1-55b5-ac9faa194262@adiengineering.com> Date: Tue, 7 Nov 2017 11:24:36 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [96.82.2.57] X-ClientProxiedBy: CY4PR22CA0071.namprd22.prod.outlook.com (2603:10b6:903:ae::33) To VI1PR04MB1359.eurprd04.prod.outlook.com (2a01:111:e400:5348::14) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 9b62fb10-e10d-431f-8c37-08d525fc1196 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(2017052603249);SRVR:VI1PR04MB1359; X-Microsoft-Exchange-Diagnostics: 1;VI1PR04MB1359;3:nY5voAItgwxRADbW8cZKOTxZ/uc1vlvCQxkZcAVQLCD8wsUXmdOlaCVtXuQx73ngcCBLVJP7av9NAcaJfrNF5smaYBdxiXIaKw9Siy/zeoCQblIIUh0pj4YXNqTdoiq8qWvvKFTfKjsuSFbq5PcbNzTP8M+yyJC/0gFXF88CCkVwv2ye+0opay8uIvYLSfYBhqRqPwuSp1IrPGiEXyiuaTtSw/9QazOCy3DrWpV6ugvot4Brmlij4aoCTV78Qk3O;25:INI/htx45veOclNQfHqg7P1WBTW/vkz18BlAYsV4Jz1pCA0HVn21W5OfUSCnb5Iv74t7G7XESmn/+hwdd8GXoUXuJubjgQbcQheGIK+ZIta4Sna7lIFwgNNNe357vrNH9J8b5E/guR3RdAUH4HKZWNLuu0m/uCWWd/DVcZgLnVSUktnKgG3Qk7AIjfTpZFKzhlEU5xNkTjIYhLR502qaigC+raVnXuS31hIPXmMKUJxHhKIniK/kHTlvG4eElh2qaxgfqTQxgerxI8ZoW6ooGWftdiPYKNYoGKNUExanF+/hq9PItdizcZoew300tS+9B3J3e2HQ+SmTLZWX9JN2vA==;31:1TfNd+Y3I28621bPPS3+Rq+W1dbve9f71eavdMA6qokhJa/0aQeidPOCF7yW5PJwYTOt5epnuQyj1sWRMCxAk8ogj2MzHcnqL5D4J4VY8lA372FUIayxz7qto6+0JhTQyyJhJs0cTjVwWaUMWwaQUsECZPEDbTU/BKw0cRHKZnNlZnfDW+TjZeb+GS6c8ymcOWqnBCD9XiuhF3RmO8aIL9LwBZQ2tDRp4PJ+NdU40+0= X-MS-TrafficTypeDiagnostic: VI1PR04MB1359: X-Microsoft-Exchange-Diagnostics: 1;VI1PR04MB1359;20:rI6l2T05imIgqTEH2caBzwt4rCwyGBYCrrhQJtM6uaeFiSMZvtcBbkk0Xg+nORT10ExnvFkgFZExZ17FHeVPohWfbhyh2NJdpFL9y2+oNtKdny+U1uCiuI0LwmHFo0uMbpFe8F3daYqjzxbrVo03r6ZexMWsqKBa9hgZ0kb0PrLI58LgMwPtEDBTQTKjFr4Q24BNK+VWJ29QBITY9Exqw7QbU7DjXljoT8freRptjsZi5h3qZ/cEjMAzfemlkk5XODw3ajoci+fUMiPjNjEoeyeBWQu4ByktqDD/3SHT475xpUNc7pVI+q+DRR4FNDB1bIoHbJb6RTLp2zI01xSY424j57NoL5YOs3AtZmavJTYGac/KOw7fCgUc7Cn2T5Jffd9QnIbgpeC/+eaouw4hZCh9JyTyaMtsjaDhHScBsWsOxeh6FiCuMWCQNYUB9HXIDN+siT8KqdOomtVY0fgqmUEXMugPRK3FJgqDnQNXNuvHkW+I7ychuVdaVtj+ZNsK;4:HIbMgnrX4SQgnMtHVfzTdrGYPofmi1rxnjVdkhoC4SQUtMlHaBhzq98a6zM0D2K+qaYsQfJJsFbAtyHk/4k26lhtFWhWT+P0W9DI0RW+5C1/CsngVWVwXPQqHku6G68Ha9/zswWHXFA3cgU2efVCRsjvqgt08my/cgEmTLDGhboG3/XclMnI8Zm+2CST2SAFAQDIdB/NO4wOmerOi/0y5T1UB+i+WHYCcNx+En3UQEHEwJ5n5oW8PAsGVrN44UGp8fDsbKhoqH1TLiBo7CfraUxN+Alcz3y6Rt7sQWQvYPV97EDfCORZozFlNAgypMRQ X-Exchange-Antispam-Report-Test: UriScan:(20558992708506); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(3231021)(3002001)(10201501046)(93006095)(93001095)(100000703101)(100105400095)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(20161123555025)(20161123558100)(20161123562025)(20161123560025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:VI1PR04MB1359;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:VI1PR04MB1359; X-Forefront-PRVS: 0484063412 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(6009001)(6069001)(39830400002)(346002)(376002)(189002)(199003)(24454002)(65826007)(7736002)(230700001)(58126008)(316002)(36756003)(54356999)(64126003)(54906003)(76176999)(478600001)(2950100002)(31686004)(3846002)(6116002)(101416001)(6666003)(5660300001)(50466002)(33646002)(53936002)(97736004)(105586002)(43066004)(53546010)(67846002)(16526018)(2906002)(65956001)(8936002)(81156014)(66066001)(6246003)(50986999)(305945005)(575784001)(83506002)(65806001)(6506006)(8676002)(31696002)(4326008)(3450700001)(25786009)(6512007)(68736007)(81166006)(6486002)(86362001)(39060400002)(23676003)(229853002)(189998001)(106356001)(47776003);DIR:OUT;SFP:1102;SCL:1;SRVR:VI1PR04MB1359;H:localhost.localdomain;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtWSTFQUjA0TUIxMzU5OzIzOkozdlhxLytWV1ViMWhvWlhpRVNDNzR5cUlS?= =?utf-8?B?VEhuc0VHa2NLVXNWK1I1Ynl1dkVvZEpvd1lya1R4TWo5bmc0dEVQaDl6YzZK?= =?utf-8?B?ckRYcWZJNTQ5SHVUMFFBK0hBdEswSDdTalgzVThuamM0My93cFVIUXZkdTVW?= =?utf-8?B?MnBCcTRETkhEdi9lc21IT1JDZXJhNCtXR0JvOHhaNmdST3lRNzg4YzQxeld5?= =?utf-8?B?am5nczNRcDZUMHpWRWtDVkVNNnU4SEhYNGZ4Q1BoTy9FOEZyU1M5SEdaNnFz?= =?utf-8?B?K2ZpUHBsR3lrOHN2M0hoRWl3YXEvalVKMWEwYjlJVlpKODRKQTJaczVPWlFs?= =?utf-8?B?di9FUG9vbDl6cnkrVGN5VGxDSWFQNzEyNzhnSUdRNnpQak5lOTF2VnJPcWZ4?= =?utf-8?B?K3RLWk1JeGl0T1p1elFienV3N3FWam9KUmNOaDhkSmZOYlFLWElPOUpvaGF0?= =?utf-8?B?Y01lTkpzR3JPWlN4TTVTUUVISE05TDVQMGYxeENVakJwazhLSURkOGpQSHF5?= =?utf-8?B?a09BMVVUU1cvODN3ZjF6bmFuekY5VDlFVllwUUtpNUdkMEdCdXZJMlFFaCtH?= =?utf-8?B?SkhnUXN0WUJYVW16ZmFQTXpQWDFTN1F6NlY0OXRRc0tkZ2t5Z0tLUy9wZ200?= =?utf-8?B?a3Q4bjk0REJ2ZGttdGFXLzFHc0M2TzNGRFNuVkpRRElpSGhoL0diKzRGR3M4?= =?utf-8?B?V3RmdXVQU1pkU2U3QkgxWDZWcUlROXVvdkNJZXQzSnRJN0I5UXpvYWFYbEhx?= =?utf-8?B?Qm8wMUJhRUExK25aRU5Lb3h3d3BBemhHMFRNNUhFUHhaTW9lallLYjJENmZN?= =?utf-8?B?dVBNMHFPQkFRaDhwM1RXZ2FLSFZYUUNIOEw1MTVPVTN0RHJSQXp4ZmhJV3dp?= =?utf-8?B?elpENnJIdzRhOGFGckg2VTRpVjdCai9WZ2ZxMUlmRGNycmdOWkRzWTA0V0hi?= =?utf-8?B?Z0Y0Y2hMTEc3dzUydThiUHBVWCswSjVTSFJ6RHQ5bnBWRTJ2bUNzTFBoTkwz?= =?utf-8?B?bjY2QUZsYXFLZ0o4cWRMRC9uZVZnWTdkeHpZVmsyM21FK2lzOFZvYXBrVytD?= =?utf-8?B?WGVoZFVsdm9VSGRJcEUrYStsajEreXV5UEJsMFZMVFpRVXFoc2I0ampGVkZs?= =?utf-8?B?R1lCOTJuQ0xaQWxBb0pQVHdRV00wWlJiSjZkTGhUYTBFc3VvRzFGQU9adGty?= =?utf-8?B?ZVdoS2NNSkcyNktsSXZreEVobWtSSVgxMTNiTG90R25lQStLME4wUStROGV2?= =?utf-8?B?K1NGZUlucUp5cFQxdVFuNnROM2NHK0RnMkxOOHlwL3kwZzRvU3FGVGZTemdW?= =?utf-8?B?U3Q4MktROG12bXEwd3hHZzlRL1l6WVEwSUp2dC9oenlWZEkzYkZSK1RBRjRR?= =?utf-8?B?TDZSWk9xOHFMcERSMWZUOEVWeGVvU0FLdzhRd2dwZ2hKbzJFamcvQVlnKzlF?= =?utf-8?B?QmxnZTFzRXpaa25udzFqc1NUOFVzSHRqS1NwQWIrSVVjOFV5V0l6ZnFDSXdh?= =?utf-8?B?ZlNDZEtYWDd3VnFwNjUra25kL0NaaHhQV2Z5czlIRWYxbkE4dW1ocGxpWDFE?= =?utf-8?B?OEhPM1pKdFVZamkwS1l4ZytiUjRzYVpLTVp2alBWNHRXUlBpa3Njdy9XTnI1?= =?utf-8?B?cE9FT2NxbDRnWWRkREJDeG1hbUxXUWJmc2Z5bmc5M2RqKzI2TEJ4L1dwSzhn?= =?utf-8?B?L0pldjdXTlBPTnJGU0tkcUczdHZlNlc0R09MRUVCM29HbVRzdS9BeDdaZEdi?= =?utf-8?B?NlNGd055akNGUHBib2ZIMXluVG5kU0ZuL2hwUFUrbjZnZXNPR0hIQmZhODlY?= =?utf-8?B?T2UydGprSHZwQjZkS0xEMTR4NDhFRCtiMGtOajFReGlRVE9KYVp6dTg1U1k3?= =?utf-8?B?WExIWmtSV2tldllyd3AvNHV1N0pnK2x2QWc3Z3k0NVlQanY1a3dpdFN1V1Vv?= =?utf-8?B?ajR0RDVPQm96dCs3WWxQeVZFbGEyTEVJTFdaOWNlTGNYL3UxelhzT0lqVmds?= =?utf-8?Q?Hc73eU?= X-Microsoft-Exchange-Diagnostics: 1;VI1PR04MB1359;6:uDj5UDu4jjfVhjQipch2IiN02PdVZerjkOkO/KME+6QMv+hIW9NGlZ3Gb4GFe8OIEFq8id/v6DmoWuGHJQEQ90mOOonGYqo3NJgtPbS8QsP9FDPrXY+z7v0ILkq8H80IFMuXKOMwoVMnmL4OdiGoXnVoOgDw2XqF8uRhKSgNhNKbqTWgOWCGL0CbqNluKOTKNGa2zCpx868nJpxjqbkyRR8klN112D82X089WYHViLRmGmNp6RksMLAc+Iga1EZJjiYR1+aEfjeLtzoXV/RJKcqxQ7SETdjGYOPHGDUpdHctp/h5L5rNtpqMgXGAiF+vQo1jEXlPhMpOlmA4J5jngtDfPzm3VAoV6gWAaqJTRJU=;5:ioXFk3Nn6CIb1E79/Il/txcCG3h2MWffypgY0pTodFmZ564HNzsuWF2ydwY2zJ3ooFlj0wKspJQUxZnIgotbkSvnDW9QXLXnPir/j/UEfoPRgbD6mP+Ho/hpOoQq3C7PQ3VIUA2LnaiqgdCpckwQMWNJhb6nBdme291QPKtHBRA=;24:N3SiWVMhyei2S5tDnZ5bZihitqqZNonl8Oc8MgWTJnVCGly4ZdcfHKREsXfWPOpMaOZgcmafHVxZ0U90yXjF14h+TX0gxsEwVNobLWIziNE=;7:eTzmiyegT0o6LBJjORw43qBzuO1f1oo8jFqQxQEinyv9Ak8DMFnhyLx504TJf305hD5QMjgUUnZOa9hvsEmPQVWuL8ZVRVEKitp5FDZu0UjoYYnu3GiKE2l1iUk91FkyHLQrEpGPjtNsNqKMDsGJerSMUcaUOQeQrjvDcI2b8uz3vxQD+/cbTZAZ8A8CyY92tf3jl9/wTxIzwhQcxvAZgnqhbk6KT//33lQwb5DZBAw293/VXItOiTAw+Z+slcJg SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: adiengineering.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Nov 2017 16:24:47.3451 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 9b62fb10-e10d-431f-8c37-08d525fc1196 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: c9e326d8-ce47-4930-8612-cc99d3c87ad1 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB1359 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 11/06/2017 06:03 PM, Ben Hutchings wrote: > 3.16.50-rc1 review patch. If anyone has any objections, please let me know. Pontus found that this patch trades one bug for another (fixes SMBus reads, breaks I2C reads) and provided a fix. You'll also want c6ebcedbab7ca78984959386012a17b21183e1a3 from upstream. -Steve > ------------------ > > From: Stephen Douthit > > commit b6c159a9cb69c2cf0bf59d4e12c3a2da77e4d994 upstream. > > According to Table 15-14 of the C2000 EDS (Intel doc #510524) the > rx data pointed to by the descriptor dptr contains the byte count. > > desc->rxbytes reports all bytes read on the wire, including the > "byte count" byte. So if a device sends 4 bytes in response to a > block read, on the wire and in the DMA buffer we see: > > count data1 data2 data3 data4 > 0x04 0xde 0xad 0xbe 0xef > > That's what we want to return in data->block to the next level. > > Instead we were actually prefixing that with desc->rxbytes: > > bad > count count data1 data2 data3 data4 > 0x05 0x04 0xde 0xad 0xbe 0xef > > This was discovered while developing a BMC solution relying on the > ipmi_ssif.c driver which was trying to interpret the bogus length > field as part of the IPMI response. > > Signed-off-by: Stephen Douthit > Tested-by: Dan Priamo > Acked-by: Neil Horman > Signed-off-by: Wolfram Sang > Signed-off-by: Ben Hutchings > --- > drivers/i2c/busses/i2c-ismt.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > --- a/drivers/i2c/busses/i2c-ismt.c > +++ b/drivers/i2c/busses/i2c-ismt.c > @@ -344,8 +344,8 @@ static int ismt_process_desc(const struc > break; > case I2C_SMBUS_BLOCK_DATA: > case I2C_SMBUS_I2C_BLOCK_DATA: > - memcpy(&data->block[1], dma_buffer, desc->rxbytes); > - data->block[0] = desc->rxbytes; > + memcpy(data->block, dma_buffer, desc->rxbytes); > + data->block[0] = desc->rxbytes - 1; > break; > } > return 0; >