Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751837AbWB0XG2 (ORCPT ); Mon, 27 Feb 2006 18:06:28 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751838AbWB0XG2 (ORCPT ); Mon, 27 Feb 2006 18:06:28 -0500 Received: from smtp.osdl.org ([65.172.181.4]:62433 "EHLO smtp.osdl.org") by vger.kernel.org with ESMTP id S1751837AbWB0XG1 (ORCPT ); Mon, 27 Feb 2006 18:06:27 -0500 Date: Mon, 27 Feb 2006 15:06:15 -0800 (PST) From: Linus Torvalds To: Chuck Ebbert <76306.1226@compuserve.com> cc: linux-kernel , Andi Kleen , Andrew Morton , Ingo Molnar Subject: Re: [patch] i386: make bitops safe In-Reply-To: <200602271700_MC3-1-B969-F4A5@compuserve.com> Message-ID: References: <200602271700_MC3-1-B969-F4A5@compuserve.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 891 Lines: 29 On Mon, 27 Feb 2006, Chuck Ebbert wrote: > > Make i386 bitops safe. Currently they can be fooled, even on > uniprocessor, by code that uses regions of the bitmap before > invoking the bitop. The least costly way to make them safe > is to add a memory clobber and tag all of them as volatile. Actually, the least costly way should be to make the "ADDR" define work right again. It used to do something magic like struct fake_area { unsigned long members[1000]; }; #define ADDR (*(volatile struct fake_area *)addr) which was correct. I forget why it got broken into using just a "long *" (it happened a long long time ago). Linus - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/