diff -urNp x-ref/mm/filemap.c x/mm/filemap.c --- x-ref/mm/filemap.c 2003-01-14 02:59:26.000000000 +0100 +++ x/mm/filemap.c 2003-01-14 03:00:14.000000000 +0100 @@ -1571,7 +1571,7 @@ static ssize_t generic_file_direct_IO(in chunk_size = KIO_MAX_ATOMIC_IO << 10; retval = -EINVAL; - if ((offset & blocksize_mask) || (count & blocksize_mask)) + if ((offset & blocksize_mask) || (count & blocksize_mask) || ((unsigned long) buf & blocksize_mask)) goto out_free; if (!mapping->a_ops->direct_IO) goto out_free;