]> git.neil.brown.name Git - history.git/log
history.git
21 years ago[PATCH] stack reductions: nfs root
Andrew Morton [Tue, 13 Apr 2004 02:25:41 +0000 (19:25 -0700)]
[PATCH] stack reductions: nfs root

From: Arjan van de Ven <arjanv@redhat.com>

root_nfs_name is called one in single threaded environment; can use static.

21 years ago[PATCH] Compile fix for macserial
Andrew Morton [Tue, 13 Apr 2004 02:25:29 +0000 (19:25 -0700)]
[PATCH] Compile fix for macserial

From: Jeff Mahoney <jeffm@suse.com>

This patch fixes a problem with the serial conversion to tiocm[sg]et.

The paste from rs_ioctl included the command sanity checking, but there's no
command for tiocm[sg]et.  The compile ends up failing.

21 years ago[PATCH] pcmcia/rsrc_mgr.c warning fix.
Andrew Morton [Tue, 13 Apr 2004 02:25:15 +0000 (19:25 -0700)]
[PATCH] pcmcia/rsrc_mgr.c warning fix.

From: "Luiz Fernando N. Capitulino" <lcapitulino@prefeitura.sp.gov.br>,
      me

drivers/pcmcia/rsrc_mgr.c: In function `find_io_region':
drivers/pcmcia/rsrc_mgr.c:604: warning: large integer implicitly truncated to unsigned type

We don't really know what underlying type an ioaddr_t has, so just use an
integer here and let the compiler promote it appropriately.

21 years ago[PATCH] another mips build fix
Andrew Morton [Tue, 13 Apr 2004 02:25:02 +0000 (19:25 -0700)]
[PATCH] another mips build fix

From: Samium Gromoff <deepfire@sic-elvis.zel.ru>

Without this one it fails to build, too.

21 years ago[PATCH] mips build fix
Andrew Morton [Tue, 13 Apr 2004 02:24:49 +0000 (19:24 -0700)]
[PATCH] mips build fix

From: Samium Gromoff <deepfire@sic-elvis.zel.ru>

Without this one it fails to build.

21 years ago[PATCH] Wrong return value in hfs_fill_super
Andrew Morton [Tue, 13 Apr 2004 02:24:35 +0000 (19:24 -0700)]
[PATCH] Wrong return value in hfs_fill_super

From: Nick Wellnhofer <wellnhofer@aevum.de>

hfs_fill_super in 2.6.5 returns -EIO instead of -EINVAL if a valid supe=
block isn't found.  So mount_block_root in init/do_mounts.c bails out before
trying to mount the root device as XFS.

21 years ago[PATCH] m68knommu: fixes to the 68328 DragonBall serial driver
Andrew Morton [Tue, 13 Apr 2004 02:24:22 +0000 (19:24 -0700)]
[PATCH] m68knommu: fixes to the 68328 DragonBall serial driver

From: <gerg@snapgear.com>

A few fixes for the 68328 "DragonBall" serial driver:

. use irqreturn_t for interrupt handlers
. correct a few variable types (stop compiler warnings)
. correctly use return values from put_user(), get_user() and copy_to_user()

Many of these originaly from kernel janitors.

21 years ago[PATCH] m68knommu: fixes to the ColdFire serial driver
Andrew Morton [Tue, 13 Apr 2004 02:24:08 +0000 (19:24 -0700)]
[PATCH] m68knommu: fixes to the ColdFire serial driver

From: <gerg@snapgear.com>

A whole bunch of fixes for the ColdFire serial driver:

. remove unused CONFIG_LEDMAN code
. reformat port definitions to new style structure init
. change "addr" field type to reduce casting in ColdFire serial driver
. cleanup locking problems in mcfrs_write().
. implement fraction baud rate clock support for hardware that
  supports it (namely the ColdFire 5272)
. implement wait_until_sent, some ColdFire parts of hardware support
  for this (again the 5272).
. correctly use return values from put_user(), get_user() and copy_to_user()

Many of these originaly from kernel janitors.

21 years ago[PATCH] m68knommu: change addr type to reduce casting in ColdFire serial driver
Andrew Morton [Tue, 13 Apr 2004 02:23:56 +0000 (19:23 -0700)]
[PATCH] m68knommu: change addr type to reduce casting in ColdFire serial driver

From: <gerg@snapgear.com>

Change "addr" field type to reduce casting in ColdFire serial driver.

21 years ago[PATCH] Fix tmscsim on amd64
Andrew Morton [Tue, 13 Apr 2004 02:23:42 +0000 (19:23 -0700)]
[PATCH] Fix tmscsim on amd64

From: Jeff Garzik <jgarzik@pobox.com>

DC390_init() takes a long, not an int.

21 years ago[PATCH] uninline copy_to_user() and copy_from_user()
Andrew Morton [Tue, 13 Apr 2004 02:23:29 +0000 (19:23 -0700)]
[PATCH] uninline copy_to_user() and copy_from_user()

40k reduction in my vmlinux.

Thanks to Denis Vlasenko <vda@port.imtp.ilyichevsk.odessa.ua> for performing
the analysis.

21 years ago[PATCH] uninline seq_puts() and seq_putc()
Andrew Morton [Tue, 13 Apr 2004 02:23:16 +0000 (19:23 -0700)]
[PATCH] uninline seq_puts() and seq_putc()

Saves 3.4k from my vmlinux.

Thanks to Denis Vlasenko <vda@port.imtp.ilyichevsk.odessa.ua> for performing
the analysis.

21 years ago[PATCH] uninline put_page()
Andrew Morton [Tue, 13 Apr 2004 02:23:02 +0000 (19:23 -0700)]
[PATCH] uninline put_page()

Shrinks my vmlinux by an astonishing 28k.

   text    data     bss     dec     hex filename
3038796  589890  150612 3779298  39aae2 vmlinux.before
3009761  590107  150612 3750480  393a50 vmlinux.after

Thanks to Denis Vlasenko <vda@port.imtp.ilyichevsk.odessa.ua> for performing
the analysis.

21 years ago[PATCH] fix vga16fb.c frame buffer bad memory mapping
Andrew Morton [Tue, 13 Apr 2004 02:22:50 +0000 (19:22 -0700)]
[PATCH] fix vga16fb.c frame buffer bad memory mapping

From: Vincent Sanders <vince@kyllikki.org>

The vga16fb driver uses a direct ioremap on 0xa00000 to gain access to the
vga card.  This is wrong on architectures other than x86, every other driver
uses VGA_MAP_MEM macro from vga.h to ensure the correct memory mapping.

21 years ago[PATCH] shrink VFS hash sizes on small machines
Andrew Morton [Tue, 13 Apr 2004 02:22:37 +0000 (19:22 -0700)]
[PATCH] shrink VFS hash sizes on small machines

From: Matt Mackall <mpm@selenic.com>

Base hash sizes on available memory rather than total memory.  An
additional 50% above current used memory is considered reserved for the
purposes of hash sizing to compensate for the hashes themselves and the
remainder of kernel and userspace initialization.

21 years ago[PATCH] get_files_struct cleanup
Andrew Morton [Tue, 13 Apr 2004 02:22:25 +0000 (19:22 -0700)]
[PATCH] get_files_struct cleanup

From: Russell King <rmk@arm.linux.org.uk>

Cleanup the 4 duplicate "get_files_struct" implementations into one
get_files_struct() function to compliment put_files_struct().

21 years ago[PATCH] put ia32 pgds and pmds back into slab
Andrew Morton [Tue, 13 Apr 2004 02:22:13 +0000 (19:22 -0700)]
[PATCH] put ia32 pgds and pmds back into slab

From: William Lee Irwin III <wli@holomorphy.com>

This optimisation was reverted when I was removing all users of page->list.
Bill fixed it up, so unrevert it again.

21 years ago[PATCH] kbuild: Create .tmp_versions when building external modules
Andrew Morton [Tue, 13 Apr 2004 02:21:59 +0000 (19:21 -0700)]
[PATCH] kbuild: Create .tmp_versions when building external modules

From: Sam Ravnborg <sam@ravnborg.org>

When building external modules the $PWD/.tmp_versions directory is used.
The .tmp_versions directory in the kernel tree cannot be used because this
would clutter up the kernel tree especially when more than one external
module is being build for the same kernel tree.

This patch make sure to create $PWD/.tmp_versions, and to delete it during
make clean.  It also removes warning about 'messed with SUBDIRS', this is
no longer relevant when .tmp_versions is made outside the kernel tree.

21 years ago[PATCH] hugetlbpage highmem fix
Andrew Morton [Tue, 13 Apr 2004 02:21:45 +0000 (19:21 -0700)]
[PATCH] hugetlbpage highmem fix

From: Andy Whitcroft <apw@shadowen.org>

When clearing a large page allocation ensure we use a page clear function
which will correctly clear a ZONE_HIGHMEM page.

21 years agoMerge bk://linux-dj.bkbits.net/cpufreq
Linus Torvalds [Tue, 13 Apr 2004 01:52:00 +0000 (18:52 -0700)]
Merge bk://linux-dj.bkbits.net/cpufreq
into ppc970.osdl.org:/home/torvalds/v2.6/linux

21 years agoMerge bk://linux-dj.bkbits.net/agpgart
Linus Torvalds [Tue, 13 Apr 2004 01:16:54 +0000 (18:16 -0700)]
Merge bk://linux-dj.bkbits.net/agpgart
into ppc970.osdl.org:/home/torvalds/v2.6/linux

22 years ago[PATCH] m68k show_interrupts bug
Geert Uytterhoeven [Tue, 13 Apr 2004 00:32:38 +0000 (17:32 -0700)]
[PATCH] m68k show_interrupts bug

M68k: Make sure machine-specific interrupts are always printed (bug introduced
by show_interrupts() conversion)

22 years ago[PATCH] Amiga eth%d
Geert Uytterhoeven [Tue, 13 Apr 2004 00:32:24 +0000 (17:32 -0700)]
[PATCH] Amiga eth%d

Amiga Ethernet drivers: Print card info after calling register_netdev(), to
avoid dev->name still being 'eth%d'.

22 years ago[PATCH] M68k time update
Geert Uytterhoeven [Tue, 13 Apr 2004 00:32:12 +0000 (17:32 -0700)]
[PATCH] M68k time update

M68k: Update time adjustment code cfr. other architectures.
(perhaps do_gettimeofday() is a good candidate for consolidation across archs?)

22 years ago[PATCH] M68k TLB fixes
Geert Uytterhoeven [Tue, 13 Apr 2004 00:31:58 +0000 (17:31 -0700)]
[PATCH] M68k TLB fixes

M68k TLB fixes from Roman Zippel:
  - Check current->active_mm for currently active mm
  - Set correct context to flush the right ATC entry
This is especially important for kswapd to correctly flush unmapped entries (it
caused random segfaults during large compiles)

22 years ago[PATCH] m68k I/O
Geert Uytterhoeven [Tue, 13 Apr 2004 00:31:46 +0000 (17:31 -0700)]
[PATCH] m68k I/O

m68k: Use explicit-sized types for I/O accesses

22 years ago[PATCH] Amikbd C99 cleanup
Geert Uytterhoeven [Tue, 13 Apr 2004 00:31:32 +0000 (17:31 -0700)]
[PATCH] Amikbd C99 cleanup

Amikbd: Use C99 array initializers and standard key defines

22 years ago[PATCH] M68k initializers cleanup
Geert Uytterhoeven [Tue, 13 Apr 2004 00:31:19 +0000 (17:31 -0700)]
[PATCH] M68k initializers cleanup

M68k: Clean up initializers:
  - Convert struct/array initializers to C99 style
  - Do not initialize data to 0 or NULL explicitly so it can move to bss

22 years ago[PATCH] M68k vector definitions
Geert Uytterhoeven [Tue, 13 Apr 2004 00:31:05 +0000 (17:31 -0700)]
[PATCH] M68k vector definitions

M68k: Add remaining CPU vector definitions

22 years ago[PATCH] Sun-3 duplicates
Geert Uytterhoeven [Tue, 13 Apr 2004 00:30:52 +0000 (17:30 -0700)]
[PATCH] Sun-3 duplicates

Sun-3: Kill duplicate definitions:
  - FC_CONTROL is defined in <asm/sun3-head.h>
  - vectors[] is declared in <asm/traps.h>

22 years ago[PATCH] MVME16x RTC const
Geert Uytterhoeven [Tue, 13 Apr 2004 00:30:39 +0000 (17:30 -0700)]
[PATCH] MVME16x RTC const

MVME16x RTC: Make days_in_mo[] const

22 years ago[PATCH] Amiga Zorro8390 Ethernet section conflict
Geert Uytterhoeven [Tue, 13 Apr 2004 00:30:24 +0000 (17:30 -0700)]
[PATCH] Amiga Zorro8390 Ethernet section conflict

Zorro8390: const data cannot be in the init data section (from Roman Zippel)

22 years ago[PATCH] pm2fb barrier cleanup
Geert Uytterhoeven [Tue, 13 Apr 2004 00:30:10 +0000 (17:30 -0700)]
[PATCH] pm2fb barrier cleanup

Permedia2: Always use the standard barrier macros (they do exist on m68k, and
map to barrier())

22 years ago[PATCH] Pm2fb is broken on Amiga
Geert Uytterhoeven [Tue, 13 Apr 2004 00:29:57 +0000 (17:29 -0700)]
[PATCH] Pm2fb is broken on Amiga

Permedia2: Mark pm2fb broken on Amiga, until somebody fixes it (pm2fb.c
explicitly tests for CONFIG_PCI right now)

22 years ago[PATCH] Zorro devlist.h kbuild
Geert Uytterhoeven [Tue, 13 Apr 2004 00:29:44 +0000 (17:29 -0700)]
[PATCH] Zorro devlist.h kbuild

Zorro: Quieten building of devlist.h (cfr. PCI)

22 years agoMerge http://lia64.bkbits.net/to-linus-2.5
Linus Torvalds [Mon, 12 Apr 2004 11:50:49 +0000 (04:50 -0700)]
Merge http://lia64.bkbits.net/to-linus-2.5
into ppc970.osdl.org:/home/torvalds/v2.6/linux

22 years agoMerge bk://linux-scsi.bkbits.net/scsi-for-linus-2.6
Linus Torvalds [Mon, 12 Apr 2004 11:27:11 +0000 (04:27 -0700)]
Merge bk://linux-scsi.bkbits.net/scsi-for-linus-2.6
into ppc970.osdl.org:/home/torvalds/v2.6/linux

22 years agoMerge bk://gkernel.bkbits.net/libata-2.6
Linus Torvalds [Mon, 12 Apr 2004 09:32:12 +0000 (02:32 -0700)]
Merge bk://gkernel.bkbits.net/libata-2.6
into ppc970.osdl.org:/home/torvalds/v2.6/linux

22 years agoMerge NFS conflicts
Linus Torvalds [Mon, 12 Apr 2004 09:31:17 +0000 (02:31 -0700)]
Merge NFS conflicts

22 years agoMerge bk://bk.arm.linux.org.uk/linux-2.6-pcmcia
Linus Torvalds [Mon, 12 Apr 2004 09:24:49 +0000 (02:24 -0700)]
Merge bk://bk.arm.linux.org.uk/linux-2.6-pcmcia
into ppc970.osdl.org:/home/torvalds/v2.6/linux

22 years ago[PCMCIA] init_pcmcia_cs() to return error from class_register()
Randy Dunlap [Mon, 12 Apr 2004 18:54:09 +0000 (19:54 +0100)]
[PCMCIA] init_pcmcia_cs() to return error from class_register()

Patch from: Randy Dunlap

From: Walter Harms

Now init_pcmcia_cs() returns the result of class_register().
Therefore init_pcmcia_cs() will possibly return an error.

22 years agoMerge bk://bk.arm.linux.org.uk/linux-2.6-serial
Linus Torvalds [Mon, 12 Apr 2004 09:22:59 +0000 (02:22 -0700)]
Merge bk://bk.arm.linux.org.uk/linux-2.6-serial
into ppc970.osdl.org:/home/torvalds/v2.6/linux

22 years agoMerge bk://bk.arm.linux.org.uk/linux-2.6-rmk
Linus Torvalds [Mon, 12 Apr 2004 09:21:00 +0000 (02:21 -0700)]
Merge bk://bk.arm.linux.org.uk/linux-2.6-rmk
into ppc970.osdl.org:/home/torvalds/v2.6/linux

22 years ago[ARM] use errno #defines in assembly
Randy Dunlap [Mon, 12 Apr 2004 19:03:14 +0000 (20:03 +0100)]
[ARM] use errno #defines in assembly

Patch from: Randy Dunlap

From: Danilo Piazzalunga

Some assembly code (on various archs) either
 1. uses hardcoded errno numbers instead of the canonical macro
    names, or
 2. defines them locally, instead of including the appropriate
    header (while including other headers).

This patch "fixes" such usage in
 - getuser.S for arm
 - putuser.S for arm

22 years agoDelete unused files in sound/oss
Linus Torvalds [Mon, 12 Apr 2004 09:05:30 +0000 (02:05 -0700)]
Delete unused files in sound/oss

From Herbert Xu; the files aren't used anywhere, and
shouldn't be there in the first place.

22 years ago[PATCH] Oprofile: ARM/XScale PMU driver
Andrew Morton [Mon, 12 Apr 2004 08:07:11 +0000 (01:07 -0700)]
[PATCH] Oprofile: ARM/XScale PMU driver

From: Zwane Mwaikambo <zwane@linuxpower.ca>

The following patch adds support for the XScale performance monitoring unit
to OProfile.  It uses not only the performance monitoring counters, but
also the clock cycle counter (CCNT) allowing for upto 5 usable counters.

The code has been developed and tested on an IOP331 (hardware courtesy of
Intel) therefore i haven't been able to test it on XScale PMU1 systems.
Testing on said systems would be appreciated, and if done, please uncomment
the #define DEBUG line at the top of op_model_xscale.c

OProfile userspace support has already been committed and should be
available via CVS.

22 years ago[PATCH] pmdisk is x86 only
Andrew Morton [Mon, 12 Apr 2004 08:06:59 +0000 (01:06 -0700)]
[PATCH] pmdisk is x86 only

Only x86 implements pmdisk_arch_suspend().  So mark pmdisk as ia32-only, to
avoid breaking allyesconfig.

22 years ago[PATCH] cciss_scsi warning
Andrew Morton [Mon, 12 Apr 2004 08:06:45 +0000 (01:06 -0700)]
[PATCH] cciss_scsi warning

drivers/block/cciss_scsi.c: In function `scsi_cmd_stack_free':
drivers/block/cciss_scsi.c:241: warning: cast from pointer to integer of different size

22 years ago[PATCH] cciss: /proc fix
Andrew Morton [Mon, 12 Apr 2004 08:06:33 +0000 (01:06 -0700)]
[PATCH] cciss: /proc fix

From: <mikem@beardog.cca.cpqcorp.net>

This patch fixes a bug where /proc displays 1 less logical volume than is
actually configured.  This causes problems for some installers.

22 years ago[PATCH] JBD: BH_Revoke cleanup
Andrew Morton [Mon, 12 Apr 2004 08:06:19 +0000 (01:06 -0700)]
[PATCH] JBD: BH_Revoke cleanup

Use the bh bit test/set infrastructure rather than open-coding everything.
No functional changes.

22 years ago[PATCH] Add CONFIG_SYSFS
Andrew Morton [Mon, 12 Apr 2004 08:06:06 +0000 (01:06 -0700)]
[PATCH] Add CONFIG_SYSFS

From: Patrick Mochel <mochel@digitalimplant.org>

Here is a patch to make sysfs optional.  Note that with CONFIG_SYSFS=n you
must specify the boot device's major:minor on the kernel boot command line
with

root=03:01

For embedded systems, it will save a significant amount of memory during
runtime.  And, it saves 4k from the built kernel image for me.

22 years ago[PATCH] parport: no procfs warning fix
Andrew Morton [Mon, 12 Apr 2004 08:05:52 +0000 (01:05 -0700)]
[PATCH] parport: no procfs warning fix

drivers/parport/procfs.c: In function `parport_default_proc_unregister':
drivers/parport/procfs.c:529: warning: `return' with a value, in function returning void

22 years ago[PATCH] kbuild: external module support
Andrew Morton [Mon, 12 Apr 2004 08:05:40 +0000 (01:05 -0700)]
[PATCH] kbuild: external module support

From: Sam Ravnborg <sam@ravnborg.org>

Based on initial patch from Andreas Gruenbacher there is now better support
for building external modules with kbuild.

The preferred syntax is now:
make -C $KERNELSRC M=$PWD

but the old syntax:
make -C $KERNELSRC SUBDIRS=$PWD modules
will remain supported.

The major differences compared to before are that:
1) No attempt is made to neither check nor update any files in $KERNELSRC
2) Module versions are now supported

During stage 2 of kernel compilation where the modules are built, a new file
Module.symvers is created.  This file contains the version for all symbols
exported by the kernel and any module compiled within the kernel tree.

When the external module is build the Module.symvers file is being read and
symbol versions are used from that file.

The purpose of avoiding any updates in the kernel src is that usually in a
distribution the kernel src will be read-only, and there is no need to try to
update it.  And when building an external module the focus is on the module,
not the kernel.

I expect the distributions will start using something like this:

kernel src - with no generated files. Not even .config:
/usr/src/linux-<version>

Output from build:
/lib/modules/linux-<version>/build

where build is a real directory with relevant output files and the
appropriate .config.

I have some Documentation in the pipe-line, but wants to see how this
approach is received before completing it.

This patch is made on top of the previously posted patch to divide
make clean in three steps.

And you may need to edit the following line in the patch to make it apply:
 %docs: scripts_basic FORCE
to
 %docs: scripts FORCE

22 years ago[PATCH] kbuild: cleaning in three steps
Andrew Morton [Mon, 12 Apr 2004 08:05:26 +0000 (01:05 -0700)]
[PATCH] kbuild: cleaning in three steps

From: Sam Ravnborg <sam@ravnborg.org>

Previously 'make clean' deleted all automatically generated files.  The
following patch revert this behaviour, and now 'make clean' leaves enough
behind to allow external modules to be built.

The cleaning is now done in three steps:

make clean     - delete everything not needed for building external modules
make mrproper  - delete all generated files, including .config
make distclean - delete all temporary files such as *.orig, *~, *.rej etc.

This fixes reports about nvidia and vmware build issues.

22 years ago[PATCH] Make %docs depend on scripts_basic
Andrew Morton [Mon, 12 Apr 2004 08:05:14 +0000 (01:05 -0700)]
[PATCH] Make %docs depend on scripts_basic

From: Sam Ravnborg <sam@ravnborg.org>

From: Herbert Xu <herbert@gondor.apana.org.au>

It seems that the %docs targets only needs scripts_basic.  The following
patch does just that.  This removes its dependency on the existence of a
.config file.

22 years ago[PATCH] fb_copy_cmap() fix
Andrew Morton [Mon, 12 Apr 2004 08:04:59 +0000 (01:04 -0700)]
[PATCH] fb_copy_cmap() fix

From: Arjan van de Ven <arjanv@redhat.com>

fb_copy_cmap() takes an argument about wether to do memcpy, copy_from_user or
copy_to_user.  0 is memcpy, 2 is copy_to_user.  In the ioctl you want
copy_to_user for copying the colormap to userspace.

22 years ago[PATCH] framebuffer bugfix
Andrew Morton [Mon, 12 Apr 2004 08:04:47 +0000 (01:04 -0700)]
[PATCH] framebuffer bugfix

From: Arjan van de Ven <arjanv@redhat.com>

Patch below fixes a thinko in the frame buffer drivers; the code does

cursor.image.data = kmalloc(size, GFP_KERNEL);
....
cursor.mask = kmalloc(size, GFP_KERNEL);
....
                if (copy_from_user(&cursor.image.data, sprite->image.data, size) ||
                    copy_from_user(cursor.mask, sprite->mask, size)) {
....

where it's clear that the & in the first copy_from_user is utterly bogus
since the destination is the content of the newly allocated buffer, and not
the pointer to it as the code does.

22 years ago[PATCH] BSD accounting oops fix
Andrew Morton [Mon, 12 Apr 2004 08:04:34 +0000 (01:04 -0700)]
[PATCH] BSD accounting oops fix

oopses have been reported in do_acct_process(), with premption enabled, when
threaded applications are exitting.

It appears that we're racing with another thread which is nulling out
current->tty.  I think this race is still there after we moved current->tty
into current->signal->tty, so let's take the needed lock.

22 years ago[PATCH] tpqic02 warnings
Andrew Morton [Mon, 12 Apr 2004 08:04:21 +0000 (01:04 -0700)]
[PATCH] tpqic02 warnings

drivers/char/tpqic02.c: In function `rdstatus':
drivers/char/tpqic02.c:700: warning: int format, different type arg (arg 2)
drivers/char/tpqic02.c:700: warning: int format, different type arg (arg 2)

22 years ago[PATCH] applicom warnings and usercopy-in-cli fix
Andrew Morton [Mon, 12 Apr 2004 08:04:08 +0000 (01:04 -0700)]
[PATCH] applicom warnings and usercopy-in-cli fix

drivers/char/applicom.c: In function `ac_write':
drivers/char/applicom.c:363: warning: int format, different type arg (arg 2)
drivers/char/applicom.c:363: warning: int format, different type arg (arg 3)
drivers/char/applicom.c:363: warning: int format, different type arg (arg 2)
drivers/char/applicom.c:363: warning: int format, different type arg (arg 3)
drivers/char/applicom.c:523:2: warning: #warning "Je suis stupide. DW. - copy*user in cli"
drivers/char/applicom.c: In function `ac_read':
drivers/char/applicom.c:546: warning: int format, different type arg (arg 2)
drivers/char/applicom.c:546: warning: int format, different type arg (arg 3)
drivers/char/applicom.c:546: warning: int format, different type arg (arg 2)
drivers/char/applicom.c:546: warning: int format, different type arg (arg 3)

22 years ago[PATCH] policydb printk warnings
Andrew Morton [Mon, 12 Apr 2004 08:03:56 +0000 (01:03 -0700)]
[PATCH] policydb printk warnings

security/selinux/ss/policydb.c:1160: warning: signed size_t format, different type arg (arg 3)
security/selinux/ss/policydb.c:1160: warning: signed size_t format, different type arg (arg 3)

22 years ago[PATCH] i2c-dev warning fixes
Andrew Morton [Mon, 12 Apr 2004 08:03:42 +0000 (01:03 -0700)]
[PATCH] i2c-dev warning fixes

drivers/i2c/i2c-dev.c: In function `i2cdev_read':
drivers/i2c/i2c-dev.c:140: warning: int format, different type arg (arg 3)
drivers/i2c/i2c-dev.c: In function `i2cdev_write':
drivers/i2c/i2c-dev.c:168: warning: int format, different type arg (arg 3)

22 years ago[PATCH] Rename bitmap_clear to bitmap_zero, remove CLEAR_BITMAP
Andrew Morton [Mon, 12 Apr 2004 08:03:29 +0000 (01:03 -0700)]
[PATCH] Rename bitmap_clear to bitmap_zero, remove CLEAR_BITMAP

From: Rusty Russell <rusty@rustcorp.com.au>

clear_bit(n, addr) clears the nth bit.
test_and_clear_bit(n, addr) clears the nth bit.
cpu_clear(n, cpumask) clears the nth bit (vs. cpus_clear()).
bitmap_clear(bitmap, n) clears out all the bits up to n.

Moreover, there's a CLEAR_BITMAP() in linux/types.h which bitmap_clear() is
a wrapper for.

Rename bitmap_clear to bitmap_zero, which is harder to confuse (yes, it bit
me), and make everyone use it.

22 years ago[PATCH] Fix More Problems Introduced By Module Structure Added in modpost.c
Andrew Morton [Mon, 12 Apr 2004 08:03:15 +0000 (01:03 -0700)]
[PATCH] Fix More Problems Introduced By Module Structure Added in modpost.c

From: Rusty Russell <rusty@rustcorp.com.au>

Sam Ravnborg found these.

1) have_vmlinux is a global, and should not be reset every time.

2) We pretend every module needs cleanup_module so it gets versioned,
   but that isn't defined for CONFIG_MODULE_UNLOAD=n.

3) The visible effect of this is that modpost will start complaning about
   undefined symbols - previously this happened only when the module was
   isntalled.

22 years ago[PATCH] do_fork() error path memory leak
Andrew Morton [Mon, 12 Apr 2004 08:03:03 +0000 (01:03 -0700)]
[PATCH] do_fork() error path memory leak

From: <john.l.byrne@hp.com>

In do_fork(), if an error occurs after the mm_struct for the child has been
allocated, it is never freed.  The exit_mm() meant to free it increments
the mm_count and this count is never decremented.  (For a running process
that is exitting, schedule() takes care this; however, the child process
being cleaned up is not running.) In the CLONE_VM case, the parent's
mm_struct will get an extra mm_count and so it will never be freed.

This patch should fix both the CLONE_VM and the not CLONE_VM case; the test
of p->active_mm prevents a panic in the case that a kernel-thread is being
cloned.

22 years ago[PATCH] mdacon.c warning fix.
Andrew Morton [Mon, 12 Apr 2004 08:02:49 +0000 (01:02 -0700)]
[PATCH] mdacon.c warning fix.

From: "Luiz Fernando N. Capitulino" <lcapitulino@prefeitura.sp.gov.br>

drivers/video/console/mdacon.c:599: warning: initialization from incompatible pointer type

22 years ago[PATCH] fix for potential integer overflow in zoran driver
Andrew Morton [Mon, 12 Apr 2004 08:02:37 +0000 (01:02 -0700)]
[PATCH] fix for potential integer overflow in zoran driver

From: "Ronald S. Bultje" <R.S.Bultje@students.uu.nl>

Attached patch fixes a potential integer overflow in zoran_procs.c (part of
the zr36067 driver).  Bug was detected by Ken Ashcraft with the Stanford
checker.

22 years ago[PATCH] ext3fs sb= mount option fix
Andrew Morton [Mon, 12 Apr 2004 08:02:23 +0000 (01:02 -0700)]
[PATCH] ext3fs sb= mount option fix

From: <achurch@achurch.org> (Andrew Church)

The following patch fixes a bug in the processing of the sb= (alternate
superblock) mount option for ext3: when changing the device block size, the
given superblock is ignored and the code reverts to using block 1.

22 years ago[PATCH] ext2fs sb= mount option fix
Andrew Morton [Mon, 12 Apr 2004 08:02:11 +0000 (01:02 -0700)]
[PATCH] ext2fs sb= mount option fix

From: <achurch@achurch.org> (Andrew Church)

The following patch fixes a bug in the processing of the sb= (alternate
superblock) mount option for ext2: when changing the device block size, the
given superblock is ignored and the code reverts to using block 1.

22 years ago[PATCH] fix test_and_change_bit comment
Andrew Morton [Mon, 12 Apr 2004 08:01:57 +0000 (01:01 -0700)]
[PATCH] fix test_and_change_bit comment

From: Paul Jackson <pj@sgi.com>

I've read over the code in each case, built and ran a test case for i386 in
particular, and studied the other uses and definitions of
test_and_change_bit().  Everything I see recommends this change.

- Fix test_and_change_bit() comment: returns old value, not new one.

22 years ago[PATCH] make ibmasm driver uart support depend on SERIAL_8250
Andrew Morton [Mon, 12 Apr 2004 08:01:45 +0000 (01:01 -0700)]
[PATCH] make ibmasm driver uart support depend on SERIAL_8250

From: Max Asbock <masbock@us.ibm.com>

This patch makes serial line registration in the ibmasm service processor
driver depend on CONFIG_SERIAL_8250.  Previously the driver wouldn't
compile when serial driver support wasn't enabled.

22 years ago[PATCH] Fix Raid5/6 above 2 Terabytes
Andrew Morton [Mon, 12 Apr 2004 08:01:30 +0000 (01:01 -0700)]
[PATCH] Fix Raid5/6 above 2 Terabytes

From: Evan Felix <evan.felix@pnl.gov>

Here is a patch that fixes a major issue in the raid5/6 code.  It seems
that the code:

logical_sector = bi->bi_sector & ~(STRIPE_SECTORS-1);
(sector_t)     = (sector_t)    & (constant)

that the right side of the & does not get extended correctly when the
constant is promoted to the sector_t type.  I have CONFIG_LBD turned on so
sector_t should be 64bits wide.  This fails to properly mask the value of
4294967296 (2TB/512) to 4294967296.  in my case it was coming out 0.  this
cause the loop following this code to read from 0 to 4294967296 blocks so
it could write one character.

As you might imagine this makes a format of a 3.5TB filesystem take a very
long time.

22 years ago[PATCH] remove concatenation with __FUNCTION__ sound/*
Andrew Morton [Mon, 12 Apr 2004 08:01:18 +0000 (01:01 -0700)]
[PATCH] remove concatenation with __FUNCTION__ sound/*

From: Tony Breeds <tony@bakeyournoodle.com>

22 years ago[PATCH] remove concatenation with __FUNCTION__ include/*
Andrew Morton [Mon, 12 Apr 2004 08:01:04 +0000 (01:01 -0700)]
[PATCH] remove concatenation with __FUNCTION__ include/*

From: Tony Breeds <tony@bakeyournoodle.com>

22 years ago[PATCH] remove concatenation with __FUNCTION__ drivers/*
Andrew Morton [Mon, 12 Apr 2004 08:00:51 +0000 (01:00 -0700)]
[PATCH] remove concatenation with __FUNCTION__ drivers/*

From: Tony Breeds <tony@bakeyournoodle.com>

22 years ago[PATCH] remove concatenation with __FUNCTION__ arch/*
Andrew Morton [Mon, 12 Apr 2004 08:00:37 +0000 (01:00 -0700)]
[PATCH] remove concatenation with __FUNCTION__ arch/*

From: Tony Breeds <tony@bakeyournoodle.com>

22 years ago[PATCH] don't offer GEN_RTC on ia64
Andrew Morton [Mon, 12 Apr 2004 08:00:24 +0000 (01:00 -0700)]
[PATCH] don't offer GEN_RTC on ia64

From: Bjorn Helgaas <bjorn.helgaas@hp.com>

gen_rtc.c doesn't work on ia64 (we don't have asm/rtc.h, for starters), so
don't offer it there.

22 years ago[PATCH] pdaudiocf.c needs init.h
Andrew Morton [Mon, 12 Apr 2004 08:00:11 +0000 (01:00 -0700)]
[PATCH] pdaudiocf.c needs init.h

From: Herbert Xu <herbert@gondor.apana.org.au>

This patch makes this file includes linux/init.h since it uses the __init
tag.

22 years ago[PATCH] saa7134 - Add two inputs for Asus TV FM
Andrew Morton [Mon, 12 Apr 2004 07:59:59 +0000 (00:59 -0700)]
[PATCH] saa7134 - Add two inputs for Asus TV FM

From: Martin Hicks <mort@bork.org>

I just bought an ASUS TV FM capture card, based on the saa7134 chip.  It only
had one input specified, coax.  This patch adds the Composite and S-Video
inputs.  It seems to work correctly for me.

22 years ago[PATCH] Fix parportbook build again
Andrew Morton [Mon, 12 Apr 2004 07:59:45 +0000 (00:59 -0700)]
[PATCH] Fix parportbook build again

From: Herbert Xu <herbert@gondor.apana.org.au>

The previous fix causes a syntax error when building:

Working on: /home/gondolin/herbert/src/debian/work/kernel/build/2.6/kernel-source-2.6.5-2.6.5/Documentation/DocBook/parportbook.sgml
jade:/home/gondolin/herbert/src/debian/work/kernel/build/2.6/kernel-source-2.6.5-2.6.5/Documentation/DocBook/parportbook.sgml:4059:2:E: invalid comment declaration: found character "!" outside comment but inside comment declaration
jade:/home/gondolin/herbert/src/debian/work/kernel/build/2.6/kernel-source-2.6.5-2.6.5/Documentation/DocBook/parportbook.sgml:4058:0: comment declaration started here
jade:/home/gondolin/herbert/src/debian/work/kernel/build/2.6/kernel-source-2.6.5-2.6.5/Documentation/DocBook/parportbook.sgml:4059:4:E: character data is not allowed here

This patch removes the offending line completely since that file is probably
not coming back anyway.

22 years ago[PATCH] QD65xx I/O ports fix
Andrew Morton [Mon, 12 Apr 2004 07:59:33 +0000 (00:59 -0700)]
[PATCH] QD65xx I/O ports fix

From: Geert Uytterhoeven <geert@linux-m68k.org>

I/O port numbers can be larger than 8-bit on many platforms (this caused a
warning when {out,in}b() cast reg to a pointer on platforms with memory
mapped I/O)

22 years ago[PATCH] isicom error path fix
Andrew Morton [Mon, 12 Apr 2004 07:59:19 +0000 (00:59 -0700)]
[PATCH] isicom error path fix

From: Geert Uytterhoeven <geert@linux-m68k.org>

Variable error is not initialized, but printed if tty_unregister_driver()
fails.

22 years ago[PATCH] DVB dependency fix
Andrew Morton [Mon, 12 Apr 2004 07:59:06 +0000 (00:59 -0700)]
[PATCH] DVB dependency fix

From: Geert Uytterhoeven <geert@linux-m68k.org>

DVB_TWINHAN_DST depends on DVB_BT8XX (dependency is explicitly mentioned in
help text, but not enforced)

22 years ago[PATCH] parport dependency fix
Andrew Morton [Mon, 12 Apr 2004 07:58:53 +0000 (00:58 -0700)]
[PATCH] parport dependency fix

From: Geert Uytterhoeven <geert@linux-m68k.org>

PCI multi-IO card support depends on PCI

22 years ago[PATCH] isicom.c: unused vars
Andrew Morton [Mon, 12 Apr 2004 07:58:40 +0000 (00:58 -0700)]
[PATCH] isicom.c: unused vars

From: Geert Uytterhoeven <geert@linux-m68k.org>

Recent serial changes moved some code, causing unused variable warnings.

22 years ago[PATCH] isicom.c: jiffies must be unsigned long
Andrew Morton [Mon, 12 Apr 2004 07:58:27 +0000 (00:58 -0700)]
[PATCH] isicom.c: jiffies must be unsigned long

From: Geert Uytterhoeven <geert@linux-m68k.org>

jiffies must be unsigned long

22 years ago[PATCH] get_user_pages shortcut for anonymous pages
Andrew Morton [Mon, 12 Apr 2004 07:58:14 +0000 (00:58 -0700)]
[PATCH] get_user_pages shortcut for anonymous pages

From: Martin Schwidefsky <schwidefsky@de.ibm.com>

The patch avoids the instantiation of pagetables for not-present pages in
get_user_pages().  Without this, the coredump code can cause total memory
exhaustion in pagetables.  Consider a store to current stack - 1TB.  The
stack vma is extended to include this address because of VM_GROWSDOWN.  If
such a process dies (which is likely for a defunc process) then the elf core
dumper will cause the system to hang because of too many page tables.

We especially recognise this situation and simply return a ref to the zero
page.

22 years ago[PATCH] Correct kernel-doc comment with incorrect parameters documented
Andrew Morton [Mon, 12 Apr 2004 07:58:01 +0000 (00:58 -0700)]
[PATCH] Correct kernel-doc comment with incorrect parameters documented

From: "Randy.Dunlap" <rddunlap@osdl.org>

From: Michael Still <mikal@stillhq.com>

Correct kernel-doc comment with incorrect parameters documented

22 years ago[PATCH] Swsusp should not wake up stopped processes
Andrew Morton [Mon, 12 Apr 2004 07:57:48 +0000 (00:57 -0700)]
[PATCH] Swsusp should not wake up stopped processes

From: Pavel Machek <pavel@suse.cz>

If you stop process with ^Z, then suspend, process is awakened.  Thats a
bug.  Solution is to simply leave already stopped processes alone.  Plus we
no longer use TASK_STOPPED for processes in refrigerator.  Userland might
see us and get confused.

22 years ago[PATCH] swsusp update: supports discontingmem/highmem fixes
Andrew Morton [Mon, 12 Apr 2004 07:57:34 +0000 (00:57 -0700)]
[PATCH] swsusp update: supports discontingmem/highmem fixes

From: Pavel Machek <pavel@ucw.cz>

It makes swsusp behave correctly w.r.t.  discontingmem, and adds highmem
handling.

22 years ago[PATCH] swsusp update: supports discontingmem/highmem
Andrew Morton [Mon, 12 Apr 2004 07:57:22 +0000 (00:57 -0700)]
[PATCH] swsusp update: supports discontingmem/highmem

From: Pavel Machek <pavel@ucw.cz>

Bill Irwin did some work on this.  It makes swsusp behave correctly w.r.t.
discontingmem, and adds highmem handling (very simple-minded, but should work
ok with 1GB).  It now should behave correctly w.r.t.  more than one swap
device, and fixes double restoring of console.

22 years ago[PATCH] i386 probe_roms(): fixes
Andrew Morton [Mon, 12 Apr 2004 07:57:08 +0000 (00:57 -0700)]
[PATCH] i386 probe_roms(): fixes

From: Rene Herman <rene.herman@keyaccess.nl>

This patch tries to improve the i386/mach-default probe_roms().  This also
c99ifies the data, adds an IORESOURCE_IO flag for the I/O port resources,
an IORESOURCE_MEM flag for the VRAM resource, IORESOURCE_READONLY |
IORESOURCE_MEM for the ROM resources and adds two additional "adapter ROM
slots" (for a total of 6) since it now also scans the 0xe0000 segment.

22 years ago[PATCH] i386 probe_roms(): preparation
Andrew Morton [Mon, 12 Apr 2004 07:56:55 +0000 (00:56 -0700)]
[PATCH] i386 probe_roms(): preparation

From: Rene Herman <rene.herman@keyaccess.nl>

The i386 probe_roms() function has a fair number of problems currently:

- When you actually have an adapter ROM in the machine, your video ROM
  disappears.  This is due to the pc9800 subarch merge that split it up in
  probe_video_rom(int roms) and probe_extension_roms(int roms), but expects a
  "roms++" in probe_video_roms() to have an effect outside of that function.

- The majority of VGA adapters these days host a ROM larger then 32K, yet
  the current code hardcodes a 32K ROM.  The VGA BIOS "length" byte is
  normally valid (it in fact needs to be for a regular mainboard BIOS to
  accept it) and I've verified on a few dozen very new to very old VGAs that
  it is.  However, assuming someone actually did not check for the length and
  checksum there for a reason, the safe thing to do here is accept the length
  byte when we also get a valid checksum.

- The current code scans 0xc0000 to 0xdffff for a video ROM while the
  standard PC thing to do (that which the BIOS does) is only scan for a video
  ROM starting between 0xc0000 and 0xc7fff.  This means that on a headless-
  (or BIOS-less monochrome adapter-) box, the first adapter ROM found
  triggers the registration of a 32K "Video ROM" at hardcoded address
  0xc0000, even when _nothing_ is present between 0xc0000 and 0xc7fff.

- The current adapter ROM scan stops at 0xdffff, whether or not an
  extension ROM is present at 0xe0000.  The PC thing to do is scan 0xc8000
  upto 0xdffff if an extension ROM is present, and upto 0xeffff when it's not
  (it's not/hardly ever).

- Adapter ROMs are called "Extension ROM", but the latter term is really
  better reserved for a motherboard extension ROM.

- Currently, the code happily starts scanning through a ROM it just
  registered looking for the next one (just does += 2048, even when that's
  inside the previous ROM) which is at least silly.

Unfortunately, this code is "subarched" between mach-default and
mach-pc9800, meaning the patch got a bit involved. Currently all this
code, and gobs of data, is defined (not just declared) in the header:

   include/asm-i386/mach-{default,pc9800}/mach_resources.h

which isn't nice. That .h really wants to be a .c. The first patch, in
the next message, does not change any code but only undoes the
probe_video_rom / probe_extension_roms split and moves the code to a new
file

   arch/i386/mach-{default,pc9800}/std_resources.c

with a header

   include/asm-i386/std_resources.h

for the prototypes only. The second patch overhauls the code itself for
mach-default. Please see comments on top of that patch for (yet more)
comments. It's tested on various machines, with and without adapter ROMs.

I haven't touched pc9800. Nothing should have changed though. The pc9800
author, as given in the code, is CCed.

Also, x86-64 inherits the probe_roms() code from 2.4, and while it
doesn't have the subarch specific problems, it has all others. I'll
convert it to if this i386 version is deemed desirable.

This patch doesn't change any code, just moves stuff from the
"mach_resources.h" header to a "std_resources.c" subarch specific file, and
introduces a "std_resources.h" header for the prototypes.

22 years ago[PATCH] jbd: b_transaction zeroing cleanup
Andrew Morton [Mon, 12 Apr 2004 07:55:49 +0000 (00:55 -0700)]
[PATCH] jbd: b_transaction zeroing cleanup

Almost everywhere where JBD removes a buffer from the transaction lists the
caller then nulls out jh->b_transaction.  Sometimes, the caller does that
without holding the locks which are defined to protect b_transaction.  This
makes me queazy.

So change things so that __journal_unfile_buffer() nulls out b_transaction
inside both j_list_lock and jbd_lock_bh_state().

It cleans things up a bit, too.

22 years ago[PATCH] jbd: do_get_write_access lock contention reduction
Andrew Morton [Mon, 12 Apr 2004 07:55:38 +0000 (00:55 -0700)]
[PATCH] jbd: do_get_write_access lock contention reduction

We're seeing heavy contention against j_list_lock on 8-way in
do_get_write_access().

We actually don't need j_list_lock in there except for one little case - the
per-bh jbd_lock_bh_state() is sufficient to protect this buffer's internal
state.

On some nice quick LVM array Ram Pai measured an overall 3x speedup from this
patch:

the script took the following time on 265mm1
 real    0m57.504s
 user    0m0.400s
 sys     7m29.867s

 and with the 2patches it took
 real  0m19.983s
 user    0m0.438s
 sys     1m55.896s

22 years ago[PATCH] Feed floppy.c through Lindent
Andrew Morton [Mon, 12 Apr 2004 07:55:23 +0000 (00:55 -0700)]
[PATCH] Feed floppy.c through Lindent

From: "Randy.Dunlap" <rddunlap@osdl.org>

22 years ago[PATCH] dnotify_parent speedup
Andrew Morton [Mon, 12 Apr 2004 07:55:11 +0000 (00:55 -0700)]
[PATCH] dnotify_parent speedup

From: Anton Blanchard <anton@samba.org>

Directory notify code was showing up in a dd bs=1024k from 2 raid arrays
on an emulex FC adapter:

3635     69.4896  vmlinux-2.6.5            .default_idle
332       6.3468  vmlinux-2.6.5            .__copy_tofrom_user
112       2.1411  vmlinux-2.6.5            .save_remaining_regs
76        1.4529  vmlinux-2.6.5            .scsi_dispatch_cmd
64        1.2235  vmlinux-2.6.5            .dnotify_parent
61        1.1661  vmlinux-2.6.5            .do_generic_mapping_read

We already have a sysctl to enable/disable it, the patch below uses it
in dnotify_parent. dnotify_parent disappears and idle time goes up:

4508     70.8582  vmlinux-2.6.5            .default_idle
253       3.9767  vmlinux-2.6.5            .__copy_tofrom_user
142       2.2320  vmlinux-2.6.5            .save_remaining_regs
88        1.3832  vmlinux-2.6.5            .shrink_zone
84        1.3203  vmlinux-2.6.5            .elx_drvr_unlock
75        1.1789  vmlinux-2.6.5            .scsi_dispatch_cmd
69        1.0846  vmlinux-2.6.5            .do_generic_mapping_read

Of course, to gain this small speedup isers need to know to set
/proc/sys/fs/dir-notify-enable to zero.  Nobody does that.

22 years ago[PATCH] cyclades works OK on SMP
Andrew Morton [Mon, 12 Apr 2004 07:54:58 +0000 (00:54 -0700)]
[PATCH] cyclades works OK on SMP

From: Marcelo Tosatti <marcelo.tosatti@cyclades.com>

The cyclades.c driver was marked BROKEN_ON_SMP during early 2.6.  It was
fixed later on but the tag was left in Kconfig.

The driver is not very smart wrt SMP locking, it can be improved.  There is
only one spinlock per card which guarantees command block ordering and
protects different shared data, which can be held for long periods.

_But_ the locking works reliably, so remove the BROKEN_ON_SMP tag.

22 years ago[PATCH] rename page_to_nodenum()
Andrew Morton [Mon, 12 Apr 2004 07:54:44 +0000 (00:54 -0700)]
[PATCH] rename page_to_nodenum()

From: "Martin J. Bligh" <mbligh@aracnet.com>

I'd prefer we renamed this to page_to_nid() before anyone starts using it.
This fits with the naming convention of everything else (pfn_to_nid, etc).
Nobody uses it right now - I grepped the whole tree.

22 years ago[PATCH] rmap 3 arches + mapping_mapped
Andrew Morton [Mon, 12 Apr 2004 07:54:31 +0000 (00:54 -0700)]
[PATCH] rmap 3 arches + mapping_mapped

From: Hugh Dickins <hugh@veritas.com>

Some arches refer to page->mapping for their dcache flushing: use
page_mapping(page) for safety, to avoid confusion on anon pages, which will
store a different pointer there - though in most cases flush_dcache_page is
being applied to pagecache pages.

arm has a useful mapping_mapped macro: move that to generic, and add
mapping_writably_mapped, to avoid explicit list_empty checks on i_mmap and
i_mmap_shared in several places.

Very tempted to add page_mapped(page) tests, perhaps along with the
mapping_writably_mapped tests in do_generic_mapping_read and
do_shmem_file_read, to cut down on wasted flush_dcache effort; but the
serialization is not obvious, too unsafe to do in a hurry.