From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S262366AbTFUFjy (ORCPT ); Sat, 21 Jun 2003 01:39:54 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S262577AbTFUFjy (ORCPT ); Sat, 21 Jun 2003 01:39:54 -0400 Received: from x35.xmailserver.org ([208.129.208.51]:43393 "EHLO x35.xmailserver.org") by vger.kernel.org with ESMTP id S262366AbTFUFjx (ORCPT ); Sat, 21 Jun 2003 01:39:53 -0400 X-AuthUser: davidel@xmailserver.org Date: Fri, 20 Jun 2003 22:51:30 -0700 (PDT) From: Davide Libenzi X-X-Sender: davide@bigblue.dev.mcafeelabs.com To: BalaKrishna Mallipeddi cc: Linux Kernel Mailing List Subject: Re: Bad address problem while reading from hard disk(using sys_read). In-Reply-To: <20030621054000.66503.qmail@web10704.mail.yahoo.com> Message-ID: References: <20030621054000.66503.qmail@web10704.mail.yahoo.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 On Fri, 20 Jun 2003, BalaKrishna Mallipeddi wrote: > Hi, > I developed a kernel module. Within that i am > dynamically allocating memory(using kmalloc and > vmalloc) for a buffer to read data. After that while > trying to read into this buffer from the hard disk > using sys_read i am getting an error. And the same > error i am getting while writing into another buffer, > which was allocated in the same way, using sys_write. > The error number set is -14(EFAULT) i.e., Bad address. > > > Give me any idea to resolve the problem. > > If anyone help me i am gretful to them. All sys_* functions expect user space addresses and you passing a kernel space one. You need something like : mm_segment_t oldfs; oldfs = get_fs(); set_fs(KERNEL_DS); nread = sys_read(fd, buf, cnt); set_fs(oldfs); (If you really want to do that) - Davide