pandora-kernel.git
17 years ago[PATCH] allow /proc/config.gz to be built as a module
Ross Biro [Sun, 1 Oct 2006 06:27:25 +0000 (23:27 -0700)]
[PATCH] allow /proc/config.gz to be built as a module

The driver for /proc/config.gz consumes rather a lot of memory and it is in
fact possible to build it as a module.

In some ways this is a bit risky, because the .config which is used for
compiling kernel/configs.c isn't necessarily the same as the .config which was
used to build vmlinux.

But OTOH the potential memory savings are decent, and it'd be fairly dumb to
build your configs.o with a different .config.

Signed-off-by: Andrew Morton <akpm@google.com>
Cc: "Randy.Dunlap" <rdunlap@xenotime.net>
Cc: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] CodingStyle cleanup for kernel/sys.c
Cal Peake [Sun, 1 Oct 2006 06:27:24 +0000 (23:27 -0700)]
[PATCH] CodingStyle cleanup for kernel/sys.c

Fix up kernel/sys.c to be consistent with CodingStyle and the rest of the
file.

Signed-off-by: Cal Peake <cp@absolutedigital.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] serial: Fix up offenders peering at baud bits directly
Alan Cox [Sun, 1 Oct 2006 06:27:24 +0000 (23:27 -0700)]
[PATCH] serial: Fix up offenders peering at baud bits directly

Stop some other people peering into the baud bits on their own and make
them use the tty_get_baud_rate() helper as a preperation for the move to
the new termios.  Corrected dependancy previous one had on new termios
structs

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] cciss: support for >2TB logical volumes
Mike Miller (OS Dev) [Sun, 1 Oct 2006 06:27:23 +0000 (23:27 -0700)]
[PATCH] cciss: support for >2TB logical volumes

Add support for logical volumes >2TB.  All SAS/SATA controllers support
large volumes.

Signed-off-by: Mike Miller <mike.miller@hp.com>
Cc: Jens Axboe <axboe@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] Create fs/utimes.c
Alexey Dobriyan [Sun, 1 Oct 2006 06:27:22 +0000 (23:27 -0700)]
[PATCH] Create fs/utimes.c

* fs/open.c is getting bit crowdy
* preparation to lutimes(2)

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] kmemdup: some users
Alexey Dobriyan [Sun, 1 Oct 2006 06:27:21 +0000 (23:27 -0700)]
[PATCH] kmemdup: some users

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] kmemdup: introduce
Alexey Dobriyan [Sun, 1 Oct 2006 06:27:20 +0000 (23:27 -0700)]
[PATCH] kmemdup: introduce

One of idiomatic ways to duplicate a region of memory is

dst = kmalloc(len, GFP_KERNEL);
if (!dst)
return -ENOMEM;
memcpy(dst, src, len);

which is neat code except a programmer needs to write size twice.  Which
sometimes leads to mistakes.  If len passed to kmalloc is smaller that len
passed to memcpy, it's straight overwrite-beyond-end.  If len passed to
memcpy is smaller than len passed to kmalloc, it's either a) legit
behaviour ;-), or b) cloned buffer will contain garbage in second half.

Slight trolling of commit lists shows several duplications bugs
done exactly because of diverged lenghts:

Linux:
[CRYPTO]: Fix memcpy/memset args.
[PATCH] memcpy/memset fixes
OpenBSD:
kerberosV/src/lib/asn1: der_copy.c:1.4

If programmer is given only one place to play with lengths, I believe, such
mistakes could be avoided.

With kmemdup, the snippet above will be rewritten as:

dst = kmemdup(src, len, GFP_KERNEL);
if (!dst)
return -ENOMEM;

This also leads to smaller code (kzalloc effect). Quick grep shows
200+ places where kmemdup() can be used.

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] maximum latency tracking: ALSA support
Takashi Iwai [Sun, 1 Oct 2006 06:27:19 +0000 (23:27 -0700)]
[PATCH] maximum latency tracking: ALSA support

Add maximum latency tracking to the ALSA subsystem for PCM playback.  In
ALSA, the playback application controls the buffer size and thus indirectly
the period of latency that it can deal with.  This patch uses 75% of the
total available latency as threshold to announce to the latency subsystem;
While 75% is a crude heuristic it's a quite reasonable one; the remaining
25% can be used for all driver processing for the next samples which is
also proportional to the size of the buffer.

With ogg123 a latency setting of about 4msec was seen (at 44Khz), while
with the "play" command a much longer maximum tolerable latency was seen.
Other, more multimedia oriented players as well as games, will have a lot
smaller buffers to allow better synchronization and those will actually get
into the latency domains where there is impact on the power management
rules.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] maximum latency tracking infrastructure
Arjan van de Ven [Sun, 1 Oct 2006 06:27:17 +0000 (23:27 -0700)]
[PATCH] maximum latency tracking infrastructure

Add infrastructure to track "maximum allowable latency" for power saving
policies.

The reason for adding this infrastructure is that power management in the
idle loop needs to make a tradeoff between latency and power savings
(deeper power save modes have a longer latency to running code again).  The
code that today makes this tradeoff just does a rather simple algorithm;
however this is not good enough: There are devices and use cases where a
lower latency is required than that the higher power saving states provide.
 An example would be audio playback, but another example is the ipw2100
wireless driver that right now has a very direct and ugly acpi hook to
disable some higher power states randomly when it gets certain types of
error.

The proposed solution is to have an interface where drivers can

* announce the maximum latency (in microseconds) that they can deal with
* modify this latency
* give up their constraint

and a function where the code that decides on power saving strategy can
query the current global desired maximum.

This patch has a user of each side: on the consumer side, ACPI is patched
to use this, on the producer side the ipw2100 driver is patched.

A generic maximum latency is also registered of 2 timer ticks (more and you
lose accurate time tracking after all).

While the existing users of the patch are x86 specific, the infrastructure
is not.  I'd like to ask the arch maintainers of other architectures if the
infrastructure is generic enough for their use (assuming the architecture
has such a tradeoff as concept at all), and the sound/multimedia driver
owners to look at the driver facing API to see if this is something they
can use.

[akpm@osdl.org: cleanups]
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Acked-by: Jesse Barnes <jesse.barnes@intel.com>
Cc: "Brown, Len" <len.brown@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] fs/partitions: Conversion to generic boolean
Richard Knutsson [Sun, 1 Oct 2006 06:27:15 +0000 (23:27 -0700)]
[PATCH] fs/partitions: Conversion to generic boolean

Conversion of booleans to: generic-boolean.patch (2006-08-23)

Signed-off-by: Richard Knutsson <ricknu-0@student.ltu.se>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] fs/jfs: Conversion to generic boolean
Richard Knutsson [Sun, 1 Oct 2006 06:27:14 +0000 (23:27 -0700)]
[PATCH] fs/jfs: Conversion to generic boolean

Conversion of booleans to: generic-boolean.patch (2006-08-23)

Signed-off-by: Richard Knutsson <ricknu-0@student.ltu.se>
Cc: Dave Kleikamp <shaggy@austin.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] fs/ntfs: Conversion to generic boolean
Richard Knutsson [Sun, 1 Oct 2006 06:27:12 +0000 (23:27 -0700)]
[PATCH] fs/ntfs: Conversion to generic boolean

Conversion of booleans to: generic-boolean.patch (2006-08-23)

Signed-off-by: Richard Knutsson <ricknu-0@student.ltu.se>
Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] Generic boolean
Richard Knutsson [Sun, 1 Oct 2006 06:27:11 +0000 (23:27 -0700)]
[PATCH] Generic boolean

This patch defines:
* a generic boolean-type, named 'bool'
* aliases to 0 and 1, named 'false' and 'true'

Removing colliding definitions of 'bool', 'false' and 'true'.

Signed-off-by: Richard Knutsson <ricknu-0@student.ltu.se>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] arch/i386/pci/mmconfig.c tweaks
Andrew Morton [Sun, 1 Oct 2006 06:27:10 +0000 (23:27 -0700)]
[PATCH] arch/i386/pci/mmconfig.c tweaks

- Add soothing comment

- uninline thrice-called function

Cc: OGAWA Hirofumi <hogawa@miraclelinux.com>
Cc: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] hot-add-mem x86_64: use CONFIG_MEMORY_HOTPLUG_RESERVE
Keith Mannthey [Sun, 1 Oct 2006 06:27:09 +0000 (23:27 -0700)]
[PATCH] hot-add-mem x86_64: use CONFIG_MEMORY_HOTPLUG_RESERVE

The api for hot-add memory already has a construct for finding nodes based on
an address, memory_add_physaddr_to_nid.  This patch allows the fucntion to do
something besides return 0.  It uses the nodes_add infomation to lookup to
node info for a hot add event.

Signed-off-by: Keith Mannthey <kmannth@us.ibm.com>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Andi Kleen <ak@muc.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] hot-add-mem x86_64: use CONFIG_MEMORY_HOTPLUG_SPARSE
Keith Mannthey [Sun, 1 Oct 2006 06:27:08 +0000 (23:27 -0700)]
[PATCH] hot-add-mem x86_64: use CONFIG_MEMORY_HOTPLUG_SPARSE

Migate CONFIG_MEMORY_HOTPLUG to CONFIG_MEMORY_HOTPLUG_SPARSE where needed.

Signed-off-by: Keith Mannthey <kmannth@us.ibm.com>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Andi Kleen <ak@muc.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] hot-add-mem x86_64: memory_add_physaddr_to_nid node fixup
Keith Mannthey [Sun, 1 Oct 2006 06:27:07 +0000 (23:27 -0700)]
[PATCH] hot-add-mem x86_64: memory_add_physaddr_to_nid node fixup

In cases where the acpi memory-add event does not containe the pxm (node)
infomation allow the driver to look up node info based on the address.  The
acpi_get_node call returns -1 if it can't decode the pxm info, this causes
add_memory to panic.  acpi_get_node would have to decode the resource from the
handle (a lenghty proposition).  This seems to be the cleanist point to
interject the hook.

[kamezawa.hiroyu@jp.fujitsu.com: build fixes]
[y-goto@jp.fujitsu.com: build fixes]
Signed-off-by: Keith Mannthey <kmannth@us.ibm.com>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Andi Kleen <ak@muc.de>
Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Signed-off-by: Yasunori Goto <y-goto@jp.fujitsu.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] hot-add-mem x86_64: memory_add_physaddr_to_nid enable
Keith Mannthey [Sun, 1 Oct 2006 06:27:06 +0000 (23:27 -0700)]
[PATCH] hot-add-mem x86_64: memory_add_physaddr_to_nid enable

The api for hot-add memory already has a construct for finding nodes based on
an address, memory_add_physaddr_to_nid.  This patch allows the fucntion to do
something besides return 0.  It uses the nodes_add infomation to lookup to
node info for a hot add event.

Signed-off-by: Keith Mannthey <kmannth@us.ibm.com>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Andi Kleen <ak@muc.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] hot-add-mem x86_64: Enable SPARSEMEM in srat.c
Keith Mannthey [Sun, 1 Oct 2006 06:27:05 +0000 (23:27 -0700)]
[PATCH] hot-add-mem x86_64: Enable SPARSEMEM in srat.c

Enable x86_64 srat.c to share code between both reserve and sparsemem based
add memory paths.  Both paths need the hot-add area node locality infomration
(nodes_add).  This code refactors the code path to allow this.

Signed-off-by: Keith Mannthey <kmannth@us.ibm.com>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Andi Kleen <ak@muc.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] hot-add-mem x86_64: Kconfig changes
Keith Mannthey [Sun, 1 Oct 2006 06:27:05 +0000 (23:27 -0700)]
[PATCH] hot-add-mem x86_64: Kconfig changes

Create Kconfig namespace for MEMORY_HOTPLUG_RESERVE and MEMORY_HOTPLUG_SPARSE.
 This is needed to create a disticiton between the 2 paths.  Selecting the
high level opiton of MEMORY_HOTPLUG will get you MEMORY_HOTPLUG_SPARSE if you
have sparsemem enabled or MEMORY_HOTPLUG_RESERVE if you are x86_64 with
discontig and ACPI numa support.

Signed-off-by: Keith Mannthey <kmannth@us.ibm.com>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Andi Kleen <ak@muc.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] hot-add-mem x86_64: fixup externs
Keith Mannthey [Sun, 1 Oct 2006 06:27:04 +0000 (23:27 -0700)]
[PATCH] hot-add-mem x86_64: fixup externs

Fix up externs in memory_hotplug.c.  Cleanup.

Signed-off-by: Keith Mannthey <kmannth@us.ibm.com>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Andi Kleen <ak@muc.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] PCI quirks update
Alan Cox [Sun, 1 Oct 2006 06:27:03 +0000 (23:27 -0700)]
[PATCH] PCI quirks update

This fixes two things

Firstly someone mistakenly used "errata" for the singular.  This causes
Dave Woodhouse to emit diagnostics whenever the string is read, and so
should be fixed.

Secondly the AMD AGP tunnel has an erratum which causes hangs if you try
and do direct PCI to AGP transfers in some cases.  We have a flag for
PCI/PCI failures but we need a different flag for this really as in this
case we don't want to stop PCI/PCI transfers using things like IOAT and the
new RAID offload work.

I'll post some updates to make proper use of the PCIAGP flag in the
media/video drivers to Mauro.

Signed-off-by: Alan Cox <alan@redhat.com>
Cc: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] NOMMU: don't try and give NULL to fput()
Gavin Lambert [Sun, 1 Oct 2006 06:27:01 +0000 (23:27 -0700)]
[PATCH] NOMMU: don't try and give NULL to fput()

Don't try and give NULL to fput() in the error handling in do_mmap_pgoff()
as it'll cause an oops.

Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] list_del-debug fix
Andrew Morton [Sun, 1 Oct 2006 06:26:59 +0000 (23:26 -0700)]
[PATCH] list_del-debug fix

These two BUG_ON()s are redundant and undesired: we're checking for this
condition further on in the function, only better.

Cc: Dave Jones <davej@codemonkey.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] SCSI: fix request flag-related build breakage
Jeff Garzik [Sun, 1 Oct 2006 01:28:22 +0000 (21:28 -0400)]
[PATCH] SCSI: fix request flag-related build breakage

The ->flags in struct request was split into two variables, in a recent
changeset.  The merge of this change forgot to update SCSI's libsas,
probably because libsas was a very recent merge.

Signed-off-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] scsi: device_reprobe() can fail
Andrew Morton [Sun, 1 Oct 2006 01:23:44 +0000 (21:23 -0400)]
[PATCH] scsi: device_reprobe() can fail

device_reprobe() should return an error code.  When it does so,
scsi_device_reprobe() should propagate it back.

Acked-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years agoMerge branch 'block' of git://brick.kernel.dk/data/git/linux-2.6-block
Linus Torvalds [Sat, 30 Sep 2006 20:59:54 +0000 (13:59 -0700)]
Merge branch 'block' of git://brick.kernel.dk/data/git/linux-2.6-block

* 'block' of git://brick.kernel.dk/data/git/linux-2.6-block:
  [PATCH] Only enable CONFIG_BLOCK option for embedded

17 years ago[PATCH] Only enable CONFIG_BLOCK option for embedded
Jens Axboe [Sat, 30 Sep 2006 19:14:05 +0000 (21:14 +0200)]
[PATCH] Only enable CONFIG_BLOCK option for embedded

It's too easy for people to shoot themselves in the foot, and it
only makes sense for embedded folks anyway.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
17 years agoMerge branch 'block' of git://brick.kernel.dk/data/git/linux-2.6-block
Linus Torvalds [Sat, 30 Sep 2006 19:07:01 +0000 (12:07 -0700)]
Merge branch 'block' of git://brick.kernel.dk/data/git/linux-2.6-block

* 'block' of git://brick.kernel.dk/data/git/linux-2.6-block: (67 commits)
  [PATCH] blk_queue_start_tag() shared map race fix
  [PATCH] Update axboe@suse.de email address
  [PATCH] fix creating zero sized bio mempools in low memory system
  [PATCH] CONFIG_BLOCK: blk_congestion_wait() fix
  [PATCH] CONFIG_BLOCK internal.h cleanups
  [PATCH] BLOCK: Make USB storage depend on SCSI rather than selecting it [try #6]
  [PATCH] BLOCK: Make it possible to disable the block layer [try #6]
  [PATCH] BLOCK: Remove no-longer necessary linux/buffer_head.h inclusions [try #6]
  [PATCH] BLOCK: Remove no-longer necessary linux/mpage.h inclusions [try #6]
  [PATCH] BLOCK: Move the msdos device ioctl compat stuff to the msdos driver [try #6]
  [PATCH] BLOCK: Move the Ext3 device ioctl compat stuff to the Ext3 driver [try #6]
  [PATCH] BLOCK: Move the Ext2 device ioctl compat stuff to the Ext2 driver [try #6]
  [PATCH] BLOCK: Move the ReiserFS device ioctl compat stuff to the ReiserFS driver [try #6]
  [PATCH] BLOCK: Move common FS-specific ioctls to linux/fs.h [try #6]
  [PATCH] BLOCK: Move the loop device ioctl compat stuff to the loop driver [try #6]
  [PATCH] BLOCK: Move __invalidate_device() to block_dev.c [try #6]
  [PATCH] BLOCK: Dissociate generic_writepages() from mpage stuff [try #6]
  [PATCH] BLOCK: Remove dependence on existence of blockdev_superblock [try #6]
  [PATCH] BLOCK: Move extern declarations out of fs/*.c into header files [try #6]
  [PATCH] BLOCK: Don't call block_sync_page() from AFS [try #6]
  ...

17 years ago[PATCH] blk_queue_start_tag() shared map race fix
Jens Axboe [Thu, 21 Sep 2006 18:37:22 +0000 (20:37 +0200)]
[PATCH] blk_queue_start_tag() shared map race fix

If we share the tag map between two or more queues, then we cannot
use __set_bit() to set the bit. In fact we need to make sure we
atomically acquire this tag, so loop using test_and_set_bit() to
protect from that.

Noticed by Mike Christie <michaelc@cs.wisc.edu>

Signed-off-by: Jens Axboe <axboe@kernel.dk>
17 years ago[PATCH] Update axboe@suse.de email address
Jens Axboe [Mon, 4 Sep 2006 13:41:16 +0000 (15:41 +0200)]
[PATCH] Update axboe@suse.de email address

As people often look for the copyright in files to see who to mail,
update the link to a neutral one.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
17 years ago[PATCH] fix creating zero sized bio mempools in low memory system
Milan Broz [Mon, 4 Sep 2006 13:37:57 +0000 (15:37 +0200)]
[PATCH] fix creating zero sized bio mempools in low memory system

In the very low memory systems is in the init_bio call
scale parameter set to zero and it leads to creating
zero sized mempool.

This patch prevents pool_entries parameter become zero,
so the created pool have at least 1 entry.

Mempool with 0 entries lead to incorrect behaviour
of mempool_free. (Alloc requests are not waken up
and system stalls in mempool_alloc->ioschedule).

Signed-off-by: Milan Broz <mbroz@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
17 years ago[PATCH] CONFIG_BLOCK: blk_congestion_wait() fix
Andrew Morton [Thu, 31 Aug 2006 10:56:06 +0000 (12:56 +0200)]
[PATCH] CONFIG_BLOCK: blk_congestion_wait() fix

Don't just do nothing: it'll cause busywaits all over writeback and page
reclaim.

For now, take a fixed-length nap.  Will improve when NFS starts waking up
throttled processes.

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
17 years ago[PATCH] CONFIG_BLOCK internal.h cleanups
Andrew Morton [Thu, 31 Aug 2006 10:55:23 +0000 (12:55 +0200)]
[PATCH] CONFIG_BLOCK internal.h cleanups

- forward declare struct superblock
- use inlines, not macros

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
17 years ago[PATCH] BLOCK: Make USB storage depend on SCSI rather than selecting it [try #6]
David Howells [Tue, 29 Aug 2006 18:06:31 +0000 (19:06 +0100)]
[PATCH] BLOCK: Make USB storage depend on SCSI rather than selecting it [try #6]

This makes CONFIG_USB_STORAGE depend on CONFIG_SCSI rather than selecting it,
as selecting it makes CONFIG_USB_STORAGE override the dependencies of SCSI,
causing it to turn on even if they aren't all met.

Signed-Off-By: David Howells <dhowells@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
17 years ago[PATCH] BLOCK: Make it possible to disable the block layer [try #6]
David Howells [Sat, 30 Sep 2006 18:45:40 +0000 (20:45 +0200)]
[PATCH] BLOCK: Make it possible to disable the block layer [try #6]

Make it possible to disable the block layer.  Not all embedded devices require
it, some can make do with just JFFS2, NFS, ramfs, etc - none of which require
the block layer to be present.

This patch does the following:

 (*) Introduces CONFIG_BLOCK to disable the block layer, buffering and blockdev
     support.

 (*) Adds dependencies on CONFIG_BLOCK to any configuration item that controls
     an item that uses the block layer.  This includes:

     (*) Block I/O tracing.

     (*) Disk partition code.

     (*) All filesystems that are block based, eg: Ext3, ReiserFS, ISOFS.

     (*) The SCSI layer.  As far as I can tell, even SCSI chardevs use the
       block layer to do scheduling.  Some drivers that use SCSI facilities -
       such as USB storage - end up disabled indirectly from this.

     (*) Various block-based device drivers, such as IDE and the old CDROM
       drivers.

     (*) MTD blockdev handling and FTL.

     (*) JFFS - which uses set_bdev_super(), something it could avoid doing by
       taking a leaf out of JFFS2's book.

 (*) Makes most of the contents of linux/blkdev.h, linux/buffer_head.h and
     linux/elevator.h contingent on CONFIG_BLOCK being set.  sector_div() is,
     however, still used in places, and so is still available.

 (*) Also made contingent are the contents of linux/mpage.h, linux/genhd.h and
     parts of linux/fs.h.

 (*) Makes a number of files in fs/ contingent on CONFIG_BLOCK.

 (*) Makes mm/bounce.c (bounce buffering) contingent on CONFIG_BLOCK.

 (*) set_page_dirty() doesn't call __set_page_dirty_buffers() if CONFIG_BLOCK
     is not enabled.

 (*) fs/no-block.c is created to hold out-of-line stubs and things that are
     required when CONFIG_BLOCK is not set:

     (*) Default blockdev file operations (to give error ENODEV on opening).

 (*) Makes some /proc changes:

     (*) /proc/devices does not list any blockdevs.

     (*) /proc/diskstats and /proc/partitions are contingent on CONFIG_BLOCK.

 (*) Makes some compat ioctl handling contingent on CONFIG_BLOCK.

 (*) If CONFIG_BLOCK is not defined, makes sys_quotactl() return -ENODEV if
     given command other than Q_SYNC or if a special device is specified.

 (*) In init/do_mounts.c, no reference is made to the blockdev routines if
     CONFIG_BLOCK is not defined.  This does not prohibit NFS roots or JFFS2.

 (*) The bdflush, ioprio_set and ioprio_get syscalls can now be absent (return
     error ENOSYS by way of cond_syscall if so).

 (*) The seclvl_bd_claim() and seclvl_bd_release() security calls do nothing if
     CONFIG_BLOCK is not set, since they can't then happen.

Signed-Off-By: David Howells <dhowells@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
17 years ago[PATCH] BLOCK: Remove no-longer necessary linux/buffer_head.h inclusions [try #6]
David Howells [Tue, 29 Aug 2006 18:06:29 +0000 (19:06 +0100)]
[PATCH] BLOCK: Remove no-longer necessary linux/buffer_head.h inclusions [try #6]

Remove inclusions of linux/buffer_head.h that are no longer necessary due to the
transfer of a number of things out of there.

Signed-Off-By: David Howells <dhowells@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
17 years ago[PATCH] BLOCK: Remove no-longer necessary linux/mpage.h inclusions [try #6]
David Howells [Tue, 29 Aug 2006 18:06:27 +0000 (19:06 +0100)]
[PATCH] BLOCK: Remove no-longer necessary linux/mpage.h inclusions [try #6]

Remove inclusions of linux/mpage.h that are no longer necessary due to the
transfer of generic_writepages().

Signed-Off-By: David Howells <dhowells@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
17 years ago[PATCH] BLOCK: Move the msdos device ioctl compat stuff to the msdos driver [try #6]
David Howells [Thu, 31 Aug 2006 10:50:04 +0000 (12:50 +0200)]
[PATCH] BLOCK: Move the msdos device ioctl compat stuff to the msdos driver [try #6]

Move the msdos device ioctl compat stuff from fs/compat_ioctl.c to the msdos
driver so that the msdos header file doesn't need to be included.

Signed-Off-By: David Howells <dhowells@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
17 years ago[PATCH] BLOCK: Move the Ext3 device ioctl compat stuff to the Ext3 driver [try #6]
David Howells [Tue, 29 Aug 2006 18:06:23 +0000 (19:06 +0100)]
[PATCH] BLOCK: Move the Ext3 device ioctl compat stuff to the Ext3 driver [try #6]

Move the Ext3 device ioctl compat stuff from fs/compat_ioctl.c to the Ext3
driver so that the Ext3 header file doesn't need to be included.

Signed-Off-By: David Howells <dhowells@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
17 years ago[PATCH] BLOCK: Move the Ext2 device ioctl compat stuff to the Ext2 driver [try #6]
David Howells [Tue, 29 Aug 2006 18:06:20 +0000 (19:06 +0100)]
[PATCH] BLOCK: Move the Ext2 device ioctl compat stuff to the Ext2 driver [try #6]

Move the Ext2 device ioctl compat stuff from fs/compat_ioctl.c to the Ext2
driver so that the Ext2 header file doesn't need to be included.

Signed-Off-By: David Howells <dhowells@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
17 years ago[PATCH] BLOCK: Move the ReiserFS device ioctl compat stuff to the ReiserFS driver...
David Howells [Tue, 29 Aug 2006 18:06:18 +0000 (19:06 +0100)]
[PATCH] BLOCK: Move the ReiserFS device ioctl compat stuff to the ReiserFS driver [try #6]

Move the ReiserFS device ioctl compat stuff from fs/compat_ioctl.c to the
ReiserFS driver so that the ReiserFS header file doesn't need to be included.

Signed-Off-By: David Howells <dhowells@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
17 years ago[PATCH] BLOCK: Move common FS-specific ioctls to linux/fs.h [try #6]
David Howells [Tue, 29 Aug 2006 18:06:16 +0000 (19:06 +0100)]
[PATCH] BLOCK: Move common FS-specific ioctls to linux/fs.h [try #6]

Move common FS-specific ioctls from linux/ext2_fs.h to linux/fs.h as FS_IOC_*
and FS_IOC32_* and have the users of them use those as a base.

Also move the GETFLAGS/SETFLAGS flags to linux/fs.h as FS_*_FL macros, and then
have the other users use them as a base.

Signed-Off-By: David Howells <dhowells@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
17 years ago[PATCH] BLOCK: Move the loop device ioctl compat stuff to the loop driver [try #6]
David Howells [Tue, 29 Aug 2006 18:06:14 +0000 (19:06 +0100)]
[PATCH] BLOCK: Move the loop device ioctl compat stuff to the loop driver [try #6]

Move the loop device ioctl compat stuff from fs/compat_ioctl.c to the loop
driver so that the loop header file doesn't need to be included.

Signed-Off-By: David Howells <dhowells@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
17 years ago[PATCH] BLOCK: Move __invalidate_device() to block_dev.c [try #6]
David Howells [Tue, 29 Aug 2006 18:06:11 +0000 (19:06 +0100)]
[PATCH] BLOCK: Move __invalidate_device() to block_dev.c [try #6]

Move __invalidate_device() from fs/inode.c to fs/block_dev.c so that it can
more easily be disabled when the block layer is disabled.

Signed-Off-By: David Howells <dhowells@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
17 years ago[PATCH] BLOCK: Dissociate generic_writepages() from mpage stuff [try #6]
David Howells [Tue, 29 Aug 2006 18:06:09 +0000 (19:06 +0100)]
[PATCH] BLOCK: Dissociate generic_writepages() from mpage stuff [try #6]

Dissociate the generic_writepages() function from the mpage stuff, moving its
declaration to linux/mm.h and actually emitting a full implementation into
mm/page-writeback.c.

The implementation is a partial duplicate of mpage_writepages() with all BIO
references removed.

It is used by NFS to do writeback.

Signed-Off-By: David Howells <dhowells@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
17 years ago[PATCH] BLOCK: Remove dependence on existence of blockdev_superblock [try #6]
David Howells [Tue, 29 Aug 2006 18:06:07 +0000 (19:06 +0100)]
[PATCH] BLOCK: Remove dependence on existence of blockdev_superblock [try #6]

Move blockdev_superblock extern declaration from fs/fs-writeback.c to a
headerfile and remove the dependence on it by wrapping it in a macro.

Signed-Off-By: David Howells <dhowells@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
17 years ago[PATCH] BLOCK: Move extern declarations out of fs/*.c into header files [try #6]
David Howells [Sat, 30 Sep 2006 18:52:18 +0000 (20:52 +0200)]
[PATCH] BLOCK: Move extern declarations out of fs/*.c into header files [try #6]

Create a new header file, fs/internal.h, for common definitions local to the
sources in the fs/ directory.

Move extern definitions that should be in header files from fs/*.c to
fs/internal.h or other main header files where they span directories.

Signed-Off-By: David Howells <dhowells@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
17 years ago[PATCH] BLOCK: Don't call block_sync_page() from AFS [try #6]
David Howells [Tue, 29 Aug 2006 18:06:03 +0000 (19:06 +0100)]
[PATCH] BLOCK: Don't call block_sync_page() from AFS [try #6]

The AFS filesystem no longer needs to override its sync_page() op.

Signed-Off-By: David Howells <dhowells@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
17 years ago[PATCH] BLOCK: Separate the bounce buffering code from the highmem code [try #6]
David Howells [Tue, 29 Aug 2006 18:06:00 +0000 (19:06 +0100)]
[PATCH] BLOCK: Separate the bounce buffering code from the highmem code [try #6]

Move the bounce buffer code from mm/highmem.c to mm/bounce.c so that it can be
more easily disabled when the block layer is disabled.

!!!NOTE!!! There may be a bug in this code: Should init_emergency_pool() be
   contingent on CONFIG_HIGHMEM?

Signed-Off-By: David Howells <dhowells@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
17 years ago[PATCH] BLOCK: Stop fallback_migrate_page() from using page_has_buffers() [try #6]
David Howells [Tue, 29 Aug 2006 18:05:58 +0000 (19:05 +0100)]
[PATCH] BLOCK: Stop fallback_migrate_page() from using page_has_buffers() [try #6]

Stop fallback_migrate_page() from using page_has_buffers() since that might not
be available.  Use PagePrivate() instead since that's more general.

Signed-Off-By: David Howells <dhowells@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
17 years ago[PATCH] BLOCK: Remove duplicate declaration of exit_io_context() [try #6]
David Howells [Tue, 29 Aug 2006 18:05:56 +0000 (19:05 +0100)]
[PATCH] BLOCK: Remove duplicate declaration of exit_io_context() [try #6]

Remove the duplicate declaration of exit_io_context() from linux/sched.h.

Signed-Off-By: David Howells <dhowells@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
17 years ago[PATCH] BLOCK: Move functions out of buffer code [try #6]
David Howells [Tue, 29 Aug 2006 18:05:54 +0000 (19:05 +0100)]
[PATCH] BLOCK: Move functions out of buffer code [try #6]

Move some functions out of the buffering code that aren't strictly buffering
specific.  This is a precursor to being able to disable the block layer.

 (*) Moved some stuff out of fs/buffer.c:

     (*) The file sync and general sync stuff moved to fs/sync.c.

     (*) The superblock sync stuff moved to fs/super.c.

     (*) do_invalidatepage() moved to mm/truncate.c.

     (*) try_to_release_page() moved to mm/filemap.c.

 (*) Moved some related declarations between header files:

     (*) declarations for do_invalidatepage() and try_to_release_page() moved
       to linux/mm.h.

     (*) __set_page_dirty_buffers() moved to linux/buffer_head.h.

Signed-Off-By: David Howells <dhowells@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
17 years ago[PATCH] blktrace: cleanup using on_each_cpu
Martin Peschke [Tue, 29 Aug 2006 17:52:55 +0000 (19:52 +0200)]
[PATCH] blktrace: cleanup using on_each_cpu

This patch kills a few lines of code in blktrace by making use of
on_each_cpu().

Signed-off-by: Martin Peschke <mp3@de.ibm.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
17 years ago[PATCH] Don't need to disable interrupts for tasklist_lock
Oleg Nesterov [Tue, 29 Aug 2006 07:17:41 +0000 (09:17 +0200)]
[PATCH] Don't need to disable interrupts for tasklist_lock

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
17 years ago[PATCH] exit_io_context: don't disable irqs
Oleg Nesterov [Tue, 29 Aug 2006 07:15:14 +0000 (09:15 +0200)]
[PATCH] exit_io_context: don't disable irqs

We don't need to disable irqs to clear current->io_context, it is protected
by ->alloc_lock. Even IF it was possible to submit I/O from IRQ on behalf of
current this irq_disable() can't help: current_io_context() will re-instantiate
->io_context after irq_enable().

We don't need task_lock() or local_irq_disable() to clear ioc->task. This can't
prevent other CPUs from playing with our io_context anyway.

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
17 years ago[PATCH] SCSI: scsi_done_q is unused
Jens Axboe [Sat, 30 Sep 2006 18:31:11 +0000 (20:31 +0200)]
[PATCH] SCSI: scsi_done_q is unused

It is a leftover from before the softirq completion was migrated
to the block layer.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
17 years agoMerge branch 'drm-patches' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied...
Linus Torvalds [Sat, 30 Sep 2006 18:29:54 +0000 (11:29 -0700)]
Merge branch 'drm-patches' of git://git./linux/kernel/git/airlied/drm-2.6

* 'drm-patches' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: (36 commits)
  drm: Use register writes instead of BITBLT_MULTI packets for buffer swap blits
  drm: use radeon specific names for radeon flags
  drm: add device/vendor id to drm_device_t for compat with FreeBSD drivers
  drm: allow multiple addMaps with the same 32-bit map offsset.
  drm: fd.o Bug #7595: Avoid u32 overflows in radeon_check_and_fixup_offset().
  drm: Fix hashtab implementation leaking illegal error codes to user space.
  drm: domain changes broke ppc r200
  drm: fixup setversion return codes..
  drm: fixup i915 error codes
  drm: realign sosme radeon code with drm git tree
  drm: realign via driver with drm git tree
  drm: remove hash tables on drm exit
  drm: cleanups
  drm: i810_dma.c: fix pointer arithmetic for 64-bit target
  drm: avoid kernel oops in some error paths calling drm_lastclose
  drm: allow detection of new VIA chipsets
  drm: fix i965 build bug
  drm: remove FALSE/TRUE that snuck in with simple memory manager changes.
  drm: Add support for Intel i965G chipsets.
  drm: add better explanation for i830/i915
  ...

17 years ago[PATCH] blktrace: support for logging metadata reads
Jens Axboe [Sun, 23 Jul 2006 00:12:01 +0000 (02:12 +0200)]
[PATCH] blktrace: support for logging metadata reads

Signed-off-by: Jens Axboe <axboe@suse.de>
17 years ago[PATCH] cfq-iosched: use metadata read flag
Jens Axboe [Sat, 22 Jul 2006 23:42:19 +0000 (01:42 +0200)]
[PATCH] cfq-iosched: use metadata read flag

Give meta data reads preference over regular reads, as the process
often needs to get that out of the way to do the io it was actually
interested in.

Signed-off-by: Jens Axboe <axboe@suse.de>
17 years ago[PATCH] ext3: make meta data reads use READ_META
Jens Axboe [Sat, 22 Jul 2006 23:41:26 +0000 (01:41 +0200)]
[PATCH] ext3: make meta data reads use READ_META

Signed-off-by: Jens Axboe <axboe@suse.de>
17 years ago[PATCH] Allow file systems to differentiate between data and meta reads
Jens Axboe [Thu, 10 Aug 2006 07:01:02 +0000 (09:01 +0200)]
[PATCH] Allow file systems to differentiate between data and meta reads

We can use this information for making more intelligent priority
decisions, and it will also be useful for blktrace.

Signed-off-by: Jens Axboe <axboe@suse.de>
17 years ago[PATCH] ll_rw_blk: allow more flexibility for read_ahead_kb store
Jens Axboe [Fri, 21 Jul 2006 18:30:28 +0000 (20:30 +0200)]
[PATCH] ll_rw_blk: allow more flexibility for read_ahead_kb store

It can make sense to set read-ahead larger than a single request.
We should not be enforcing such policy on the user. Additionally,
using the BLKRASET ioctl doesn't impose such a restriction. So
additionally we now expose identical behaviour through the two.

Issue also reported by Anton <cbou@mail.ru>

Signed-off-by: Jens Axboe <axboe@suse.de>
17 years ago[PATCH] cfq-iosched: improve queue preemption
Jens Axboe [Wed, 19 Jul 2006 18:29:12 +0000 (20:29 +0200)]
[PATCH] cfq-iosched: improve queue preemption

Don't touch the current queues, just make sure that the wanted queue
is selected next. Simplifies the logic.

Signed-off-by: Jens Axboe <axboe@suse.de>
17 years ago[PATCH] Add blk_start_queueing() helper
Jens Axboe [Thu, 20 Jul 2006 12:54:05 +0000 (14:54 +0200)]
[PATCH] Add blk_start_queueing() helper

CFQ implements this on its own now, but it's really block layer
knowledge. Tells a device queue to start dispatching requests to
the driver, taking care to unplug if needed. Also fixes the issue
where as/cfq will invoke a stopped queue, which we really don't
want.

Signed-off-by: Jens Axboe <axboe@suse.de>
17 years ago[PATCH] cfq-iosched: kill the empty_list
Jens Axboe [Wed, 19 Jul 2006 12:56:28 +0000 (14:56 +0200)]
[PATCH] cfq-iosched: kill the empty_list

No point in having a place holder list just for empty queues, so remove
it. It's not used for anything other than to keep ->cfq_list busy.

Signed-off-by: Jens Axboe <axboe@suse.de>
17 years ago[PATCH] cfq-iosched: Kill O(N) runtime of cfq_resort_rr_list()
Jens Axboe [Fri, 28 Jul 2006 07:48:51 +0000 (09:48 +0200)]
[PATCH] cfq-iosched: Kill O(N) runtime of cfq_resort_rr_list()

Currently it scales with number of processes in that priority group,
which is potentially not very nice as it's called quite often.
Basically we always need to do tail inserts, except for the case of a
new process. So just mark/detect a queue as such.

Signed-off-by: Jens Axboe <axboe@suse.de>
17 years ago[PATCH] Make sure all block/io scheduler setups are node aware
Jens Axboe [Wed, 19 Jul 2006 21:39:40 +0000 (23:39 +0200)]
[PATCH] Make sure all block/io scheduler setups are node aware

Some were kmalloc_node(), some were still kmalloc(). Change them all to
kmalloc_node().

Signed-off-by: Jens Axboe <axboe@suse.de>
17 years ago[PATCH] Kill various deprecated/unused block layer defines/functions
Jens Axboe [Fri, 28 Jul 2006 07:36:46 +0000 (09:36 +0200)]
[PATCH] Kill various deprecated/unused block layer defines/functions

Signed-off-by: Jens Axboe <axboe@suse.de>
17 years ago[PATCH] Audit block layer inlines
Jens Axboe [Tue, 18 Jul 2006 20:24:11 +0000 (22:24 +0200)]
[PATCH] Audit block layer inlines

Kill a few inlines that bring in too much code to more than one location
Shrinks kernel text by about 300 bytes on 32-bit x86.

Signed-off-by: Jens Axboe <axboe@suse.de>
17 years ago[PATCH] cfq-iosched: use new io context counting mechanism
Jens Axboe [Wed, 19 Jul 2006 03:07:12 +0000 (05:07 +0200)]
[PATCH] cfq-iosched: use new io context counting mechanism

It's ok if the read path is a lot more costly, as long as inc/dec is
really cheap. The inc/dec will happen for each created/freed io context,
while the reading only happens when a disk queue exits.

Signed-off-by: Jens Axboe <axboe@suse.de>
17 years ago[PATCH] as-iosched: use new io context counting mechanism
Jens Axboe [Wed, 19 Jul 2006 03:10:01 +0000 (05:10 +0200)]
[PATCH] as-iosched: use new io context counting mechanism

It's ok if the read path is a lot more costly, as long as inc/dec is
really cheap. The inc/dec will happen for each created/freed io context,
while the reading only happens when a disk queue exits.

Signed-off-by: Jens Axboe <axboe@suse.de>
17 years ago[PATCH] elevator: define ioc counting mechanism
Jens Axboe [Sat, 22 Jul 2006 13:37:43 +0000 (15:37 +0200)]
[PATCH] elevator: define ioc counting mechanism

None of the in-kernel primitives for handling "atomic" counting seem
to be a good fit. We need something that is essentially free for
incrementing/decrementing, while the read side may be more expensive
as we only ever need to do that when a device is removed from the
kernel.

Use a per-cpu variable for maintaining a per-cpu ioc count and define
a reading mechanism that just sums up the values.

Signed-off-by: Jens Axboe <axboe@suse.de>
17 years ago[PATCH] cfq-iosched: kill cfq_exit_lock
Jens Axboe [Tue, 29 Aug 2006 07:05:44 +0000 (09:05 +0200)]
[PATCH] cfq-iosched: kill cfq_exit_lock

cfq_exit_lock is protecting two things now:

- The per-ioc rbtree of cfq_io_contexts

- The per-cfqd linked list of cfq_io_contexts

The per-cfqd linked list can be protected by the queue lock, as it is (by
definition) per cfqd as the queue lock is.

The per-ioc rbtree is mainly used and updated by the process itself only.
The only outside use is the io priority changing. If we move the
priority changing to not browsing the rbtree, we can remove any locking
from the rbtree updates and lookup completely. Let the sys_ioprio syscall
just mark processes as having the iopriority changed and lazily update
the private cfq io contexts the next time io is queued, and we can
remove this locking as well.

Signed-off-by: Jens Axboe <axboe@suse.de>
17 years ago[PATCH] cfq-iosched: cleanups, fixes, dead code removal
Jens Axboe [Sat, 22 Jul 2006 14:48:31 +0000 (16:48 +0200)]
[PATCH] cfq-iosched: cleanups, fixes, dead code removal

A collection of little fixes and cleanups:

- We don't use the 'queued' sysfs exported attribute, since the
  may_queue() logic was rewritten. So kill it.

- Remove dead defines.

- cfq_set_active_queue() can be rewritten cleaner with else if conditions.

- Several places had cfq_exit_cfqq() like logic, abstract that out and
  use that.

- Annotate the cfqq kmem_cache_alloc() so the allocator knows that this
  is a repeat allocation if it fails with __GFP_WAIT set. Allows the
  allocator to start freeing some memory, if needed. CFQ already loops for
  this condition, so might as well pass the hint down.

- Remove cfqd->rq_starved logic. It's not needed anymore after we dropped
  the crq allocation in cfq_set_request().

- Remove uneeded parameter passing.

Signed-off-by: Jens Axboe <axboe@suse.de>
17 years ago[PATCH] struct request: shrink and optimize some more
Jens Axboe [Thu, 10 Aug 2006 07:00:21 +0000 (09:00 +0200)]
[PATCH] struct request: shrink and optimize some more

Move some members around and unionize completion_data and rb_node since
they cannot ever be used at the same time.

Signed-off-by: Jens Axboe <axboe@suse.de>
17 years ago[PATCH] ll_rw_blk: cleanup __make_request()
Jens Axboe [Tue, 18 Jul 2006 02:14:45 +0000 (04:14 +0200)]
[PATCH] ll_rw_blk: cleanup __make_request()

- Don't assign variables that are only used once.

- Kill spin_lock() prefetching, it's opportunistic at best.

Signed-off-by: Jens Axboe <axboe@suse.de>
17 years ago[PATCH] Drop useless bio passing in may_queue/set_request API
Jens Axboe [Fri, 28 Jul 2006 07:32:57 +0000 (09:32 +0200)]
[PATCH] Drop useless bio passing in may_queue/set_request API

It's not needed for anything, so kill the bio passing.

Signed-off-by: Jens Axboe <axboe@suse.de>
17 years ago[PATCH] Remove ->rq_status from struct request
Jens Axboe [Fri, 28 Jul 2006 07:32:07 +0000 (09:32 +0200)]
[PATCH] Remove ->rq_status from struct request

After Christophs SCSI change, the only usage left is RQ_ACTIVE
and RQ_INACTIVE. The block layer sets RQ_INACTIVE right before freeing
the request, so any check for RQ_INACTIVE in a driver is a bug and
indicates use-after-free.

So kill/clean the remaining users, straight forward.

Signed-off-by: Jens Axboe <axboe@suse.de>
17 years ago[PATCH] Remove struct request_list from struct request
Jens Axboe [Thu, 10 Aug 2006 06:59:11 +0000 (08:59 +0200)]
[PATCH] Remove struct request_list from struct request

It is always identical to &q->rq, and we only use it for detecting
whether this request came out of our mempool or not. So replace it
with an additional ->flags bit flag.

Signed-off-by: Jens Axboe <axboe@suse.de>
17 years ago[PATCH] Remove ->waiting member from struct request
Jens Axboe [Sat, 30 Sep 2006 18:29:12 +0000 (20:29 +0200)]
[PATCH] Remove ->waiting member from struct request

As the comments indicates in blkdev.h, we can fold it into ->end_io_data
usage as that is really what ->waiting is. Fixup the users of
blk_end_sync_rq().

Signed-off-by: Jens Axboe <axboe@kernel.dk>
17 years ago[PATCH] as-iosched: kill arq
Jens Axboe [Tue, 18 Jul 2006 19:07:29 +0000 (21:07 +0200)]
[PATCH] as-iosched: kill arq

Get rid of the as_rq request type. With the added elevator_private2, we
have enough room in struct request to get rid of any arq allocation/free
for each request.

Signed-off-by: Jens Axboe <axboe@suse.de>
Signed-off-by: Nick Piggin <npiggin@suse.de>
17 years ago[PATCH] cfq-iosched: kill crq
Jens Axboe [Thu, 13 Jul 2006 10:39:25 +0000 (12:39 +0200)]
[PATCH] cfq-iosched: kill crq

Get rid of the cfq_rq request type. With the added elevator_private2, we
have enough room in struct request to get rid of any crq allocation/free
for each request.

Signed-off-by: Jens Axboe <axboe@suse.de>
17 years ago[PATCH] Add one more pointer to struct request for IO scheduler usage
Jens Axboe [Wed, 12 Jul 2006 12:04:37 +0000 (14:04 +0200)]
[PATCH] Add one more pointer to struct request for IO scheduler usage

Then we have enough room in the request to get rid of the dynamic
allocations in CFQ/AS.

Signed-off-by: Jens Axboe <axboe@suse.de>
17 years ago[PATCH] cfq-iosched: remove the crq flag functions/variable
Jens Axboe [Thu, 13 Jul 2006 10:37:56 +0000 (12:37 +0200)]
[PATCH] cfq-iosched: remove the crq flag functions/variable

There's just one flag currently (SYNC), and that one can be grabbed from
the request.

Signed-off-by: Jens Axboe <axboe@suse.de>
17 years ago[PATCH] deadline-iosched: remove elevator private drq request type
Jens Axboe [Thu, 13 Jul 2006 10:36:41 +0000 (12:36 +0200)]
[PATCH] deadline-iosched: remove elevator private drq request type

A big win, we now save an allocation/free on each request! With the
previous rb/hash abstractions, we can just reuse queuelist/donelist
for the FIFO data and be done with it.

Signed-off-by: Jens Axboe <axboe@suse.de>
17 years ago[PATCH] as-iosched: remove arq->is_sync member
Jens Axboe [Fri, 28 Jul 2006 07:26:13 +0000 (09:26 +0200)]
[PATCH] as-iosched: remove arq->is_sync member

We can track this in struct request.

Signed-off-by: Jens Axboe <axboe@suse.de>
Signed-off-by: Nick Piggin <npiggin@suse.de>
17 years ago[PATCH] as-iosched: reuse rq for fifo
Jens Axboe [Thu, 13 Jul 2006 07:12:14 +0000 (09:12 +0200)]
[PATCH] as-iosched: reuse rq for fifo

Saves some space in arq.

Signed-off-by: Jens Axboe <axboe@suse.de>
Signed-off-by: Nick Piggin <npiggin@suse.de>
17 years ago[PATCH] cfq-iosched: convert to using the FIFO elevator defines
Jens Axboe [Tue, 11 Jul 2006 19:30:31 +0000 (21:30 +0200)]
[PATCH] cfq-iosched: convert to using the FIFO elevator defines

Signed-off-by: Jens Axboe <axboe@suse.de>
17 years ago[PATCH] elevator: introduce a way to reuse rq for internal FIFO handling
Jens Axboe [Tue, 11 Jul 2006 19:49:15 +0000 (21:49 +0200)]
[PATCH] elevator: introduce a way to reuse rq for internal FIFO handling

The io schedulers can use this instead of having to allocate space for
it themselves.

Signed-off-by: Jens Axboe <axboe@suse.de>
17 years ago[PATCH] deadline-iosched: migrate to using the elevator rb functions
Jens Axboe [Thu, 13 Jul 2006 10:34:24 +0000 (12:34 +0200)]
[PATCH] deadline-iosched: migrate to using the elevator rb functions

This removes the rbtree handling from deadline.

Signed-off-by: Jens Axboe <axboe@suse.de>
17 years ago[PATCH] cfq-iosched: migrate to using the elevator rb functions
Jens Axboe [Thu, 13 Jul 2006 10:33:14 +0000 (12:33 +0200)]
[PATCH] cfq-iosched: migrate to using the elevator rb functions

This removes the rbtree handling from CFQ.

Signed-off-by: Jens Axboe <axboe@suse.de>
17 years ago[PATCH] as-iosched: migrate to using the elevator rb functions
Jens Axboe [Tue, 18 Jul 2006 19:06:01 +0000 (21:06 +0200)]
[PATCH] as-iosched: migrate to using the elevator rb functions

This removes the rbtree handling from AS.

Signed-off-by: Jens Axboe <axboe@suse.de>
Signed-off-by: Nick Piggin <npiggin@suse.de>
17 years ago[PATCH] elevator: abstract out the rbtree sort handling
Jens Axboe [Thu, 13 Jul 2006 09:55:04 +0000 (11:55 +0200)]
[PATCH] elevator: abstract out the rbtree sort handling

The rbtree sort/lookup/reposition logic is mostly duplicated in
cfq/deadline/as, so move it to the elevator core. The io schedulers
still provide the actual rb root, as we don't want to impose any sort
of specific handling on the schedulers.

Introduce the helpers and rb_node in struct request to help migrate the
IO schedulers.

Signed-off-by: Jens Axboe <axboe@suse.de>
17 years ago[PATCH] rbtree: fixed reversed RB_EMPTY_NODE and rb_next/prev
Jens Axboe [Tue, 11 Jul 2006 19:15:52 +0000 (21:15 +0200)]
[PATCH] rbtree: fixed reversed RB_EMPTY_NODE and rb_next/prev

The conditions got reserved. Also make rb_next() and rb_prev() check
for the empty condition.

Signed-off-by: Jens Axboe <axboe@suse.de>
17 years ago[PATCH] elevator: move the backmerging logic into the elevator core
Jens Axboe [Fri, 28 Jul 2006 07:23:08 +0000 (09:23 +0200)]
[PATCH] elevator: move the backmerging logic into the elevator core

Right now, every IO scheduler implements its own backmerging (except for
noop, which does no merging). That results in duplicated code for
essentially the same operation, which is never a good thing. This patch
moves the backmerging out of the io schedulers and into the elevator
core. We save 1.6kb of text and as a bonus get backmerging for noop as
well. Win-win!

Signed-off-by: Jens Axboe <axboe@suse.de>
17 years ago[PATCH] Split struct request ->flags into two parts
Jens Axboe [Thu, 10 Aug 2006 06:44:47 +0000 (08:44 +0200)]
[PATCH] Split struct request ->flags into two parts

Right now ->flags is a bit of a mess: some are request types, and
others are just modifiers. Clean this up by splitting it into
->cmd_type and ->cmd_flags. This allows introduction of generic
Linux block message types, useful for sending generic Linux commands
to block devices.

Signed-off-by: Jens Axboe <axboe@suse.de>
17 years ago[PATCH] i2c: Prevent deadlock on i2c client registration
Jean Delvare [Sat, 30 Sep 2006 15:18:59 +0000 (17:18 +0200)]
[PATCH] i2c: Prevent deadlock on i2c client registration

Delay the call to adapter->client_register() until after we are
certain that the client registration is a success. At this point the
client is fully initialized and we no longer hold the adapter->clist
mutex, so this should prevent the deadlocks if the client_register()
callback needs to take that mutex too, as is the case for the bttv
driver.

This fixes bug #7234.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb
Linus Torvalds [Sat, 30 Sep 2006 16:39:15 +0000 (09:39 -0700)]
Merge /pub/scm/linux/kernel/git/mchehab/v4l-dvb

* master.kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb: (180 commits)
  V4L/DVB (4641): Trivial: use lowercase letters in hex subsystem ids
  V4L/DVB (4639): Cx88: add autodetection for alternate revision of Leadtek PVR
  V4L/DVB (4638): Basic DVB-T and analog TV support for the HVR1300.
  V4L/DVB (4637): Add a default method for VIDIOC_G_PARM
  V4L/DVB (4635): Extend bttv and saa7134 to check for both AGP and PCI PCI failure case
  V4L/DVB (4634): Zr36120: implement pcipci checks
  V4L/DVB (4632): Zoran: Implement pcipci failure check
  V4L/DVB (4631): Av7110: remove V4L2_CAP_VBI_CAPTURE flag
  V4L/DVB (4630): Av7110: FW_LOADER depemdency fixed
  V4L/DVB (4629): Saa7134: add card support for Proteus Pro 2309
  V4L/DVB (4628): Fix VIDIOC_ENUMSTD ioctl in videodev.c
  V4L/DVB (4627): Vivi crashes with mplayer
  V4L/DVB (4626): On saa7111/7113, LUMA_CTRL need a different value
  V4L/DVB (4624): Tvaudio: Replaced kernel_thread() with kthread_run()
  V4L/DVB (4622): Copy-paste bug in videodev.c
  V4L/DVB (4620): Fix AGC configuration for MOD3000P-based boards
  V4L/DVB (4619): Fixes some I2C dependencies on V4L devices
  V4L/DVB (4617): Problem with dibusb-mb.c USB IDs
  V4L/DVB (4616): [PATCH] Nebula DigiTV USB RC support
  V4L/DVB (4614): Export symbol saa7134_tvaudio_setmute from saa7134 for saa7134-alsa
  ...

17 years agoMerge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee13...
Linus Torvalds [Sat, 30 Sep 2006 16:38:19 +0000 (09:38 -0700)]
Merge branch 'upstream-linus' of git://git./linux/kernel/git/ieee1394/linux1394-2.6

* 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6: (48 commits)
  ieee1394: raw1394: arm functions slept in atomic context
  ieee1394: sbp2: enable auto spin-up for all SBP-2 devices
  MAINTAINERS: updates to IEEE 1394 subsystem maintainership
  ieee1394: ohci1394: check for errors in suspend or resume
  set power state of firewire host during suspend
  ieee1394: ohci1394: more obvious endianess handling
  ieee1394: ohci1394: fix endianess bug in debug message
  ieee1394: sbp2: don't prefer MODE SENSE 10
  ieee1394: nodemgr: grab class.subsys.rwsem in nodemgr_resume_ne
  ieee1394: nodemgr: fix rwsem recursion
  ieee1394: sbp2: more help in Kconfig
  ieee1394: sbp2: prevent rare deadlock in shutdown
  ieee1394: sbp2: update includes
  ieee1394: sbp2: better handling of transport errors
  ieee1394: sbp2: recheck node generation in sbp2_update
  ieee1394: sbp2: safer agent reset in error handlers
  ieee1394: sbp2: handle "sbp2util_node_write_no_wait failed"
  CONFIG_PM=n slim: drivers/ieee1394/ohci1394.c
  ieee1394: safer definition of empty macros
  video1394: add poll file operation support
  ...