From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Dumazet Subject: [RFC] ipv6: rt6_update_expires() seems racy Date: Mon, 18 Feb 2013 15:55:18 -0800 Message-ID: <1361231718.19353.117.camel@edumazet-glaptop> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Cc: netdev , Gao feng , Neil Horman , Jiri Bohac To: David Miller Return-path: Received: from mail-da0-f50.google.com ([209.85.210.50]:64491 "EHLO mail-da0-f50.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757550Ab3BRXzV (ORCPT ); Mon, 18 Feb 2013 18:55:21 -0500 Received: by mail-da0-f50.google.com with SMTP id h15so2664413dan.37 for ; Mon, 18 Feb 2013 15:55:21 -0800 (PST) Sender: netdev-owner@vger.kernel.org List-ID: Some strange crashes happen in rt6_check_expired(), with access to random addresses. At first glance, it looks like the RTF_EXPIRES and stuff added in commit 1716a96101c49186b (ipv6: fix problem with expired dst cache) are racy : same dst could be manipulated at the same time on different cpus. At some point, our stack believes rt->dst.from contains a dst pointer, while its really a jiffie value (as rt->dst.expires shares the same area of memory) rt6_update_expires() should be fixed, or am I missing something ? CC Neil because of https://bugzilla.redhat.com/show_bug.cgi?id=892060