From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755128AbcHATta (ORCPT ); Mon, 1 Aug 2016 15:49:30 -0400 Received: from mail-db5eur01on0109.outbound.protection.outlook.com ([104.47.2.109]:59412 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1755112AbcHATtE (ORCPT ); Mon, 1 Aug 2016 15:49:04 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=aryabinin@virtuozzo.com; Subject: Re: [PATCH v8 2/3] mm, kasan: align free_meta_offset on sizeof(void*) To: Alexander Potapenko References: <1469719879-11761-1-git-send-email-glider@google.com> <1469719879-11761-3-git-send-email-glider@google.com> <579F62D3.8030605@virtuozzo.com> CC: Dmitriy Vyukov , Kostya Serebryany , Andrey Konovalov , Christoph Lameter , Andrew Morton , Steven Rostedt , Joonsoo Kim , Joonsoo Kim , Kuthonuzo Luruo , kasan-dev , LKML , Linux Memory Management List From: Andrey Ryabinin Message-ID: <579F669A.4090806@virtuozzo.com> Date: Mon, 1 Aug 2016 18:11:22 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.8.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Originating-IP: [195.214.232.10] X-ClientProxiedBy: AMSPR02CA0049.eurprd02.prod.outlook.com (10.242.225.177) To AM5PR0801MB1971.eurprd08.prod.outlook.com (10.168.158.10) X-MS-Office365-Filtering-Correlation-Id: e9de957d-8cb0-4919-12d9-08d3ba1dee88 X-Microsoft-Exchange-Diagnostics: 1;AM5PR0801MB1971;2:ne5/17hzL8vKmxym7Nfam0wLonCBC6pqLUr10KA818cxn55y6LpwxbPa4byYBx/5z/ESYhX62zhW8i0naa8Za1bfgimb7L6cWjGFqHlDVlDQOpW6Kget/7AT6BqWBkcpzkS/P3ESye3dUWq00BrrbPMhLU05KtSV9sijRwc6Kqkbqc32uOennj6YoR7t89WI;3:ol0Vr0p0yCUDAw6j7uFEgIhdcFtcdbBAfdoV3ciIADgBLNYuT4iJhU0cba1QLcsw95x6QLvQinw3Uok24ziGZqMNNS3wcgHwMfT72769qAs/2/AQ5FODttE8OytKkq9H X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:AM5PR0801MB1971; X-Microsoft-Exchange-Diagnostics: 1;AM5PR0801MB1971;25:muuGvL5Zc0/Q6skbTALGmP0Ne2tzEWLQgYlGAu/R2dWkCQgR3bqt7ndDEGF+qy15Sc9rz5zI9zEBTcc6wGUsY2COxeUZlkdbb4zFwKRLRsFT71YQKwxM86ZBDjHQjHx6olzaHRH3dthVmMLE+QQ4uXDzyKZUV49bcHKIfwTwWMYUKAXwdPhe0Kg2RqHCECUOkRI56peLxKpNDe+HdEhebQArPkBO38o6lYEo3M4aMjZpFUUi5ab5Ie0y4P5WaVpdHFUiKc5zU7o27aeVyS1eda3K5X0MrVxzgHsKG0jceEgK47coNABFCx+IO2JTBSc3lN/OQEswZp7iKYxWFhfgGNFYATSlrKOxYoAFFyT/06xvXA3hOv9Ex6K3/jjaaPDBczonnUT0gudxiG32z9HhCP7mE7lXHlPwWjZkcaGQYsBqziQJWvYpGzHBFDKjwK3h0klJmWcBtNAFWJDNb3PuwFheFpxE2GOdH57cYcKhiSWZPcMgAG6H+92V/1OmW8ggHtlF8diOtqtY/MpcsszZjgJIvxwffj3yM/7MlogaUi1wwut//BQ/NRiubF68ZFHGd/UEVoUjaRcWQlEBAmDWKrWPVsHUWDACfvS7JsVQ7kXnObsZXKUsBDlZ55HBaUXBdMaFhC694kG5SneOYkr8SkPiEQ7Sz+lwuhE5VrIwRzRSrLB14YYg8AwArqArnJ7PR8yxdTOxXoX48BNTPxU0VUqSg4F+M5NkJQPVthy+aE8=;31:FExxS9sYjLEJK7+I2obyFD1sS5fOcTsQ/KKvhSGh7lzKEQUsteS03itmQ/mOCgPO24O6jho8+3hzXtxl+xqGf5L5+VGMqsh8k8VyAbG7CSjJ5gBK2hQS04Z4P54I6CliwaVw37JbOv9Kf1vsF5TFoc/rZlhovUZbXHzms1kw55x3TcEHsw0PnktCoB9Jarr8IznFKnvPDEkiui45AZuWPA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(211936372134217); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040130)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6041072)(6043046);SRVR:AM5PR0801MB1971;BCL:0;PCL:0;RULEID:;SRVR:AM5PR0801MB1971; X-Microsoft-Exchange-Diagnostics: 1;AM5PR0801MB1971;4:i4O+t9uNA0fLSDZ0IE3VRja7OD5hzL4azsLUGmX62uLS42LKukxBZtsl1EEtfPmqC6tp2j2JeFIzUckjICS2hHtBm5hjy+Jj93Ns1f0//c1mBGxuCRdtqhpqHXI/JmJITIt4+7Hi4msdklhmwQF0DhHuJz5Z2OJfT6/816rnUgVviU17e0JSlKUXpJaNJmPKGwYH0QS8TqhrERKhY3ZsJDVvOaz4e8XLyWg58f4xbk9eUcleYCKe3muZjxHgcaC8oz6KffGkU7p/k7NBdvaVX4/ihmbK5i8dLGtj/vJLVRYdHI+okoXvXbPYWoH1XVfk8K942D5GDwE9OJvKJUNyT6oo5YT+YEDPYB+788Ok8dyl1z97sBBDS+ClGu9c4GSIEyu+Mb4kxD+k4sP9pTt121+JLnEoAmdkMiaJ6tNLUgu0jUcA1RV23cXoyJHOx4qvMa/do6ihLR29Fv+ryXFRbQ== X-Forefront-PRVS: 0021920B5A X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(6049001)(7916002)(377454003)(189002)(24454002)(199003)(65956001)(65806001)(189998001)(586003)(3846002)(6116002)(19580395003)(110136002)(4001350100001)(80316001)(19580405001)(66066001)(97736004)(47776003)(92566002)(36756003)(68736007)(8676002)(81156014)(93886004)(7416002)(77096005)(230700001)(59896002)(81166006)(2950100001)(42186005)(2906002)(7736002)(7846002)(33656002)(106356001)(4326007)(305945005)(105586002)(101416001)(64126003)(86362001)(83506001)(50466002)(65816999)(76176999)(87266999)(54356999)(50986999)(23676002)(3076002);DIR:OUT;SFP:1102;SCL:1;SRVR:AM5PR0801MB1971;H:[10.30.19.223];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtBTTVQUjA4MDFNQjE5NzE7MjM6bnlMdE9vUVpLTy9pZ3hRM05VVE13MnJy?= =?utf-8?B?QzZ2WmcxandkMlhzUGMvN09sZVdjcmk2UVk5UW1GWXptOVVucTlmNXRBZERa?= =?utf-8?B?aXpBN3NjcWU3dCtjZEZZR1VZSCtSSEN6MGlBdG1TZ2NuOFAxSFI1MGs1bTE1?= =?utf-8?B?RGIzRkc4eDVySkF5akt3dVJSS1FuZ3p3Z2Q1Y2JERWZRTjdxQ3crUUxPZUQw?= =?utf-8?B?Z1haYWpBNjBZODNWSHhQVDJObi8vT1RSd09JLzdHZWhhaU95bnpCTTE0T2dw?= =?utf-8?B?cVFDV0ZEYngzdFR6NzJlT2dPTlVXSHp3RTRIZENCQnpOeTBDaC9yVjM3TkZt?= =?utf-8?B?czRIVlM4OWV6RlBkc2tlcFhubERWNGJ2eDF0ZHVCUklBRm5ta3h6OU9wT0ky?= =?utf-8?B?dUVNU0hEOHZpc3F2bWVISkRLRCtlOFVqb1B3blY5eHQ3NkdkOVl2TVlOQ1Jt?= =?utf-8?B?SkRxbzJqQmV1dEpUV05VM0U4NmR6NjR1d05IbjgvVnZPZW94VW5mWkNlSkdn?= =?utf-8?B?YVExUko1Y0pRaXM4aDh4eXQyZGlLVVh1RFVlRjVUV2FwT0c0QXZoaGdYR09Q?= =?utf-8?B?RXQybUpaOEdEdzdwbkplZER5cEcvSVRuVk40MktOdkEzRllNQzJjcTAyT053?= =?utf-8?B?dDB5SWRWRS9hNDYwOFhkN2ZUMVBYQ1BYVDNvRWxCMjRrMzFxVCtZQVRXRW9q?= =?utf-8?B?ZmY2ZFg1QzEzcWF3WVl6T2pVUlBySUVsaUdFM0ZQalBWL3FmeXd5bmI0ajNB?= =?utf-8?B?UU5nZDB5aTlLSUcwZW00anFYdDRPeUtRQWlpTGh6TS9WeHkrZVhJVHlNcnM2?= =?utf-8?B?bk5Lc2QxeHZzK2xlTVROcXh5ZWNaSlFxRUp5em5raHNNdktydmc4NVFCb3ho?= =?utf-8?B?amdCVHY1UDZ4N1lzV1lIeG9ETFhvYVY4ZVhTaWhwL1Z2endySEl3OFFBNFRB?= =?utf-8?B?eUQwVk04SFdnU2x4V2xzZDNOMHYzU1BuSlFTOWd3ZldlcVJlK0xuQ1c0blEv?= =?utf-8?B?dXJQa1I3QWtCM2s5SjVkb0NFNXVXaFFVRDc0UDhva0gxalovdU5aWHlzRDRX?= =?utf-8?B?QzhBS3ZlaTBGNTZNZDN0OENyQVhjV0JZSkFqYll6Nks2aVJsdExpck4yQk1N?= =?utf-8?B?aXZxT3FIZkJrYnhFeGltMWI0TzNpTUwrSUN4MVZuUjNlMkNkSTB0Q0ZtRkw3?= =?utf-8?B?VFFnMVR0cW5UcnlxU1FCVnJjTXdobHBDNTJVTFo5dzRxM3ltU1FUOUl4eXJr?= =?utf-8?B?Y0ZTRm83bGprYkRabGM5Q3ZBNlZQMFpyMFB4Z1RiTWZWR1VuSDB2SlU0WW9L?= =?utf-8?B?djJWVlB1WXN6VmU1L2hKYkRKcU1ZV2xSTTZyRmxmVjVuYjZDWkVFRTIvMjhD?= =?utf-8?B?UTJnZG1QSWlXK2huUFV4dEl1eW1ydmVGVEZBdm82WElnQWhCaU1lWVNsUU1V?= =?utf-8?B?ZEhpUHRCdk5HN1lGTlI2ZWhQaWpQSS90WE8wd2thYThaTzFhNXJIVUFkV0FT?= =?utf-8?B?ZTdGWUtqTHBlZTRDODJrNTZoZ3pudmU4cThWaFo5L3ZOVTdLY0tjWEtLUmdI?= =?utf-8?B?cld2Q3FKaXBvZ2pUMGFINjEwQU1YWUNreWdnbkw0T3dPL1FRbFF2WlI1blls?= =?utf-8?B?YlNVbVdSUnlNWkNpUm1LZnpIdmpMVVV0eTZoc2o2UnJQY0FNMldWaHNNcUxi?= =?utf-8?B?VHhZaWVDVmwyZ2NTQWpEZUo1c0V2L3J0eFFWNG1mNG40TUdhTDM4Q1JLRFZG?= =?utf-8?B?V04veGNQUFJ0MTZKSTg4czZMbmRPaXJOdUpQU0FscG9uYWFqWU5XWGhZb01x?= =?utf-8?Q?G+Ch0AVbVt26epN?= X-Microsoft-Exchange-Diagnostics: 1;AM5PR0801MB1971;6:tZQabOcXFD4AE7IlwjcHtwi9d7RxxRO6LFnu8bo82sj/Q0qmu56JKygEglSwQKygwFN3HWdDlHB82EfnugeO6QXCvXvh/jX5mjf2WQX2eoZErUIC+92ZpMiU4QAZ+zJrwMLU6QB6ZvF78b+feSSGboNjOFqO4w8IUdAKluipjR5WM1iWVlrEH8ilAeDmYa/Kfg7JRmA0wuQxb8luTMl5U4RcUrz2Ao+g+vSD3r0Do4HN3n5Xd2ElZW6Vm0AoE7qBH7ypPuwSP3wpKJhWhus0a/+Z4Ffw8HZid+Jy/IUtTXDCMoHpxnVe5XXTURFURcR0;5:NO8hQAsLc5EE8K8OjvnS3bvo2ExrdJeMuZ9cA7/sl5b3yNje2AnVywcEH/N01cECZmzc/J9+9RFc3FRyuGoa6DYOkEGcxbExG1BEhpqslMIz623AIyONvvGJNOn4RDxLXjKRSY7wLgCOyzrYS4E1ew==;24:/oXtGPaj69TlhFUdqHEFBAcOFk4PkT7ObRmeW85ReGfL3Frv65TYaj8xMOdZ8MbVXVeJZnTj8W51Zg3dGTy1tQpclStnOmCj+h4NE1wF9MU=;7:UceowxyGtIhn8Co6N87OQjo4EYXRhaVaa9Fl4Se1zVbM5o6c8unb9sVM+IUjTp3W+wACpmt9Q3T3KKb+a/l5EHR1MNET1lS9OmF7WEQLWwp0jF/b4e4oxet2P/LhnSIGhYkAb/dxTYYnIhFlqgmA2XEcklUPXZkZwRFjubP0IYAS+J4Bf08j+wb7F0W1tOAkVWapGD/W5usF5hd5w/XsgTGkYVLUU3dTBEua7a6OlmIHqdaVBgzNsybGxEVlVQlc SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;AM5PR0801MB1971;20:/v1dgSdM7ZVKpmaKkKSyiyAaGUf47YfUdgGutLbVrmUCdPCS8LEAOPbN2/GuVbyQlBJ6nJfzBUMDEVWgFs+Of6BhVXIZ8NKg2qaRNOakAvrdyaCGD9o5EFo3Pmsh/JkVF05sBu6QJnFN6GjBg5qLXkLkQusufpUphp9147cHzrU= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Aug 2016 15:10:10.0388 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0801MB1971 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 08/01/2016 05:56 PM, Alexander Potapenko wrote: > On Mon, Aug 1, 2016 at 4:55 PM, Andrey Ryabinin wrote: >> >> >> On 07/28/2016 06:31 PM, Alexander Potapenko wrote: >>> When free_meta_offset is not zero, it is usually aligned on 4 bytes, >>> because the size of preceding kasan_alloc_meta is aligned on 4 bytes. >>> As a result, accesses to kasan_free_meta fields may be misaligned. >>> >>> Signed-off-by: Alexander Potapenko >>> --- >>> mm/kasan/kasan.c | 3 ++- >>> 1 file changed, 2 insertions(+), 1 deletion(-) >>> >>> diff --git a/mm/kasan/kasan.c b/mm/kasan/kasan.c >>> index 6845f92..0379551 100644 >>> --- a/mm/kasan/kasan.c >>> +++ b/mm/kasan/kasan.c >>> @@ -390,7 +390,8 @@ void kasan_cache_create(struct kmem_cache *cache, size_t *size, >>> /* Add free meta. */ >>> if (cache->flags & SLAB_DESTROY_BY_RCU || cache->ctor || >>> cache->object_size < sizeof(struct kasan_free_meta)) { >>> - cache->kasan_info.free_meta_offset = *size; >>> + cache->kasan_info.free_meta_offset = >>> + ALIGN(*size, sizeof(void *)); >> >> This cannot work. > Well, it does, at least on my tests. JFYI. You aligned only meta offset, but didn't change the size, so after the '*size += sizeof(struct kasan_free_meta);' *size may point into the middle of free_meta struct. Plus, alignment wasn't taken into account in kasan_metadata_size().