From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Fri, 4 May 2001 19:27:59 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Fri, 4 May 2001 19:27:50 -0400 Received: from ppp0.ocs.com.au ([203.34.97.3]:24583 "HELO mail.ocs.com.au") by vger.kernel.org with SMTP id ; Fri, 4 May 2001 19:27:34 -0400 X-Mailer: exmh version 2.1.1 10/15/1999 From: Keith Owens To: Andreas Schwab cc: Todd Inglett , Alexander Viro , linux-kernel@vger.kernel.org Subject: Re: SMP races in proc with thread_struct In-Reply-To: Your message of "04 May 2001 15:11:37 +0200." Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Sat, 05 May 2001 09:27:28 +1000 Message-ID: <12062.989018848@ocs3.ocs-net> Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org On 04 May 2001 15:11:37 +0200, Andreas Schwab wrote: >Keith Owens writes: >|> Wrap the reference to the parent task structure with exception table >|> recovery code, like copy_from_user(). > >Exception tables only protect accesses to user virtual memory. Kernel >memory references must always be valid in the first place. Wrong. Exception tables say that if the kernel gets an exception between labels A and B then branch to fixup label C. See show_regs() in arch/i386/kernel/process.c and wrmsr_eio() in arch/i386/kernel/msr.c for examples which do not depend on user virtual memory.