openwrt/staging/blogic.git
18 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Linus Torvalds [Mon, 26 Jun 2006 17:08:13 +0000 (10:08 -0700)]
Merge /pub/scm/linux/kernel/git/davem/net-2.6

* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: (42 commits)
  [IOAT]: Do not dereference THIS_MODULE directly to set unsafe.
  [NETROM]: Fix possible null pointer dereference.
  [NET] netpoll: break recursive loop in netpoll rx path
  [NET] netpoll: don't spin forever sending to stopped queues
  [IRDA]: add some IBM think pads
  [ATM]: atm/mpc.c warning fix
  [NET]: skb_find_text ignores to argument
  [NET]: make net/core/dev.c:netdev_nit static
  [NET]: Fix GSO problems in dev_hard_start_xmit()
  [NET]: Fix CHECKSUM_HW GSO problems.
  [TIPC]: Fix incorrect correction to discovery timer frequency computation.
  [TIPC]: Get rid of dynamically allocated arrays in broadcast code.
  [TIPC]: Fixed link switchover bugs
  [TIPC]: Enhanced & cleaned up system messages; fixed 2 obscure memory leaks.
  [TIPC]: First phase of assert() cleanup
  [TIPC]: Disallow config operations that aren't supported in certain modes.
  [TIPC]: Fixed memory leak in tipc_link_send() when destination is unreachable
  [TIPC]: Added missing warning for out-of-memory condition
  [TIPC]: Withdrawing all names from nameless port now returns success, not error
  [TIPC]: Optimized argument validation done by connect().
  ...

18 years ago[PATCH] sched: fix SCHED_FIFO bug in sys_sched_rr_get_interval()
Peter Williams [Mon, 26 Jun 2006 06:58:00 +0000 (16:58 +1000)]
[PATCH] sched: fix SCHED_FIFO bug in sys_sched_rr_get_interval()

The introduction of SCHED_BATCH scheduling class with a value of 3 means
that the expression (p->policy & SCHED_FIFO) will return true if policy
is SCHED_BATCH or SCHED_FIFO.

Unfortunately, this expression is used in sys_sched_rr_get_interval()
and in the absence of a comment to say that this is intentional I
presume that it is unintentional and erroneous.

The fix is to change the expression to (p->policy == SCHED_FIFO).

Acked-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] initramfs overwrite fix
H. Peter Anvin [Mon, 26 Jun 2006 07:28:02 +0000 (00:28 -0700)]
[PATCH] initramfs overwrite fix

This patch ensures that initramfs overwrites work correctly, even when dealing
with device nodes of different types.  Furthermore, when replacing a file
which already exists, we must make very certain that we truncate the existing
file.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Cc: Michael Neuling <mikey@neuling.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] drivers/md/md.c: make code static
Adrian Bunk [Mon, 26 Jun 2006 07:28:01 +0000 (00:28 -0700)]
[PATCH] drivers/md/md.c: make code static

Make needlessly global code static.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Cc: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] md: Allow the write_mostly flag to be set via sysfs
NeilBrown [Mon, 26 Jun 2006 07:28:01 +0000 (00:28 -0700)]
[PATCH] md: Allow the write_mostly flag to be set via sysfs

It appears in /sys/mdX/md/dev-YYY/state
and can be set or cleared by writing 'writemostly' or '-writemostly'
respectively.

Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] md: Allow resync_start to be set and queried via sysfs
NeilBrown [Mon, 26 Jun 2006 07:28:00 +0000 (00:28 -0700)]
[PATCH] md: Allow resync_start to be set and queried via sysfs

Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] md: Allow raid 'layout' to be read and set via sysfs
NeilBrown [Mon, 26 Jun 2006 07:27:59 +0000 (00:27 -0700)]
[PATCH] md: Allow raid 'layout' to be read and set via sysfs

Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] md: Allow rdev state to be set via sysfs
NeilBrown [Mon, 26 Jun 2006 07:27:58 +0000 (00:27 -0700)]
[PATCH] md: Allow rdev state to be set via sysfs

The md/dev-XXX/state file can now be written:

 "faulty" simulates an error on the device
 "remove" removes the device from the array (if it is not busy)

Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] md: Set/get state of array via sysfs
NeilBrown [Mon, 26 Jun 2006 07:27:58 +0000 (00:27 -0700)]
[PATCH] md: Set/get state of array via sysfs

This allows the state of an md/array to be directly controlled via sysfs and
adds the ability to stop and array without tearing it down.

Array states/settings:

 clear
     No devices, no size, no level
     Equivalent to STOP_ARRAY ioctl
 inactive
     May have some settings, but array is not active
        all IO results in error
     When written, doesn't tear down array, but just stops it
 suspended (not supported yet)
     All IO requests will block. The array can be reconfigured.
     Writing this, if accepted, will block until array is quiescent
 readonly
     no resync can happen.  no superblocks get written.
     write requests fail
 read-auto
     like readonly, but behaves like 'clean' on a write request.

 clean - no pending writes, but otherwise active.
     When written to inactive array, starts without resync
     If a write request arrives then
       if metadata is known, mark 'dirty' and switch to 'active'.
       if not known, block and switch to write-pending
     If written to an active array that has pending writes, then fails.
 active
     fully active: IO and resync can be happening.
     When written to inactive array, starts with resync

 write-pending (not supported yet)
     clean, but writes are blocked waiting for 'active' to be written.

 active-idle
     like active, but no writes have been seen for a while (100msec).

Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] md: Don't write dirty/clean update to spares - leave them alone
NeilBrown [Mon, 26 Jun 2006 07:27:57 +0000 (00:27 -0700)]
[PATCH] md: Don't write dirty/clean update to spares - leave them alone

- record the 'event' count on each individual device (they
  might sometimes be slightly different now)
- add a new value for 'sb_dirty': '3' means that the super
  block only needs to be updated to record a clean<->dirty
  transition.
- Prefer odd event numbers for dirty states and even numbers
  for clean states
- Using all the above, don't update the superblock on
  a spare device if the update is just doing a clean-dirty
  transition.  To accomodate this, a transition from
  dirty back to clean might now decrement the events counter
  if nothing else has changed.

The net effect of this is that spare drives will not see any IO requests
during normal running of the array, so they can go to sleep if that is what
they want to do.

Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] md: Allow re-add to work on array without bitmaps
NeilBrown [Mon, 26 Jun 2006 07:27:56 +0000 (00:27 -0700)]
[PATCH] md: Allow re-add to work on array without bitmaps

When an array has a bitmap, a device can be removed and re-added and only
blocks changes since the removal (as recorded in the bitmap) will be resynced.

It should be possible to do a similar thing to arrays without bitmaps.  i.e.
if a device is removed and re-added and *no* changes have been made in the
interim, then the add should not require a resync.

This patch allows that option.  This means that when assembling an array one
device at a time (e.g.  during device discovery) the array can be enabled
read-only as soon as enough devices are available, but extra devices can still
be added without causing a resync.

Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] md: Fix bug that stops raid5 resync from happening
NeilBrown [Mon, 26 Jun 2006 07:27:55 +0000 (00:27 -0700)]
[PATCH] md: Fix bug that stops raid5 resync from happening

As data_disks is *less* than raid_disks, the current test here is obviously
wrong.  And as the difference is already available in conf->max_degraded, it
makes much more sense to use that.

Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] md: Fix Kconfig error
akpm@osdl.org [Mon, 26 Jun 2006 07:27:54 +0000 (00:27 -0700)]
[PATCH] md: Fix Kconfig error

RAID5 recently changed to RAID456

Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] md: md Kconfig speeling feex
Justin Piszcz [Mon, 26 Jun 2006 07:27:50 +0000 (00:27 -0700)]
[PATCH] md: md Kconfig speeling feex

I was experimenting with Linux SW raid today and found a spelling error when
reading the help menus...  (and fly spell found more).

Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] md: Calculate correct array size for raid10 in new offset mode
NeilBrown [Mon, 26 Jun 2006 07:27:50 +0000 (00:27 -0700)]
[PATCH] md: Calculate correct array size for raid10 in new offset mode

The size calculation made assumtion which the new offset mode didn't
follow.  This gets the size right in all cases.

Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] md: Change md/bitmap file handling to use bmap to file blocks-fix
NeilBrown [Mon, 26 Jun 2006 07:27:49 +0000 (00:27 -0700)]
[PATCH] md: Change md/bitmap file handling to use bmap to file blocks-fix

Fix problems with new bmap based access to bitmap files.

1/ When not using a file based bitmap, attach a NULL list of buffers
   to each page so the common free_buffer routine can cope.
2/ Use submit_bh to read as well as write, rather than vfs_read.
   This makes read and write more symetric.
3/ sync the file before reading, to ensure that the page cache has no
   dirty pages that might get written out later.

Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] md/bitmap: change md/bitmap file handling to use bmap to file blocks
NeilBrown [Mon, 26 Jun 2006 07:27:48 +0000 (00:27 -0700)]
[PATCH] md/bitmap: change md/bitmap file handling to use bmap to file blocks

If md is asked to store a bitmap in a file, it tries to hold onto the page
cache pages for that file, manipulate them directly, and call a cocktail of
operations to write the file out.  I don't believe this is a supportable
approach.

This patch changes the approach to use the same approach as swap files.  i.e.
bmap is used to enumerate all the block address of parts of the file and we
write directly to those blocks of the device.

swapfile only uses parts of the file that provide a full pages at contiguous
addresses.  We don't have that luxury so we have to cope with pages that are
non-contiguous in storage.  To handle this we attach buffers to each page, and
store the addresses in those buffers.

With this approach the pagecache may contain data which is inconsistent with
what is on disk.  To alleviate the problems this can cause, md invalidates the
pagecache when releasing the file.  If the file is to be examined while the
array is active (a non-critical but occasionally useful function), O_DIRECT io
must be used.  And new version of mdadm will have support for this.

This approach simplifies a lot of code:
 - we no longer need to keep a list of pages which we need to wait for,
   as the b_endio function can keep track of how many outstanding
   writes there are.  This saves a mempool.
 - -EAGAIN returns from write_page are no longer possible (not sure if
    they ever were actually).

Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] md/bitmap: tidy up i_writecount handling in md/bitmap
NeilBrown [Mon, 26 Jun 2006 07:27:47 +0000 (00:27 -0700)]
[PATCH] md/bitmap: tidy up i_writecount handling in md/bitmap

md/bitmap modifies i_writecount of a bitmap file to make sure that no-one else
writes to it.  The reverting of the change is sometimes done twice, and there
is one error path where it is omitted.

This patch tidies that up.

Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] md/bitmap: remove dead code from md/bitmap
NeilBrown [Mon, 26 Jun 2006 07:27:47 +0000 (00:27 -0700)]
[PATCH] md/bitmap: remove dead code from md/bitmap

bitmap_active is never called, and the BITMAP_ACTIVE flag is never users or
tested, so discard them both.

Also remove some out-of-date 'todo' comments.

Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] md/bitmap: remove unnecessary page reference manipulations from md/bitmap...
NeilBrown [Mon, 26 Jun 2006 07:27:46 +0000 (00:27 -0700)]
[PATCH] md/bitmap: remove unnecessary page reference manipulations from md/bitmap code

md/bitmap gets a collection of pages representing the bitmap when it
initialises the bitmap, and puts all the references when discarding the
bitmap.

It also occasionally takes extra references without any good reason, and
sometimes drops them ...  though it doesn't always drop them, which can result
in a memory leak.

This patch removes the unnecessary 'get_page' calls, and the corresponding
'put_page' calls.

Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] md/bitmap: use set_bit etc for bitmap page attributes
NeilBrown [Mon, 26 Jun 2006 07:27:45 +0000 (00:27 -0700)]
[PATCH] md/bitmap: use set_bit etc for bitmap page attributes

In particular, this means that we use 4 bits per page instead of a whole
unsigned long.

Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] md/bitmap: cleaner separation of page attribute handlers in md/bitmap
NeilBrown [Mon, 26 Jun 2006 07:27:45 +0000 (00:27 -0700)]
[PATCH] md/bitmap: cleaner separation of page attribute handlers in md/bitmap

md/bitmap has some attributes per-page.  Handling of these attributes in
largely abstracted in set_page_attr and clear_page_attr.  However
get_page_attr exposes the format used to store them.  So prior to changing
that format, introduce test_page_attr instead of get_page_attr, and make
appropriate usage changes.

Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] md/bitmap: remove bitmap writeback daemon
NeilBrown [Mon, 26 Jun 2006 07:27:44 +0000 (00:27 -0700)]
[PATCH] md/bitmap: remove bitmap writeback daemon

md/bitmap currently has a separate thread to wait for writes to the bitmap
file to complete (as we cannot get a callback on that action).

However this isn't needed as bitmap_unplug is called from process context and
waits for the writeback thread to do it's work.  The same result can be
achieved by doing the waiting directly in bitmap_unplug.

Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] md/bitmap: fix online removal of file-backed bitmaps
NeilBrown [Mon, 26 Jun 2006 07:27:43 +0000 (00:27 -0700)]
[PATCH] md/bitmap: fix online removal of file-backed bitmaps

When "mdadm --grow /dev/mdX --bitmap=none" is used to remove a filebacked
bitmap, the bitmap was disconnected from the array, but the file wasn't closed
(until the array was stopped).

The file also wasn't closed if adding the bitmap file failed.

Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] md: split reshape portion of raid5 sync_request into a separate function
NeilBrown [Mon, 26 Jun 2006 07:27:43 +0000 (00:27 -0700)]
[PATCH] md: split reshape portion of raid5 sync_request into a separate function

... as raid5 sync_request is WAY too big.

Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] md: make md_print_devices() static
Adrian Bunk [Mon, 26 Jun 2006 07:27:42 +0000 (00:27 -0700)]
[PATCH] md: make md_print_devices() static

This patch makes the needlessly global md_print_devices() static.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] md: support stripe/offset mode in raid10
NeilBrown [Mon, 26 Jun 2006 07:27:41 +0000 (00:27 -0700)]
[PATCH] md: support stripe/offset mode in raid10

The "industry standard" DDF format allows for a stripe/offset layout where
data is duplicated on different stripes.  e.g.

  A  B  C  D
  D  A  B  C
  E  F  G  H
  H  E  F  G

(columns are drives, rows are stripes, LETTERS are chunks of data).

This is similar to raid10's 'far' mode, but not quite the same.  So enhance
'far' mode with a 'far/offset' option which follows the layout of DDFs
stripe/offset.

Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] md: allow a linear array to have drives added while active
NeilBrown [Mon, 26 Jun 2006 07:27:41 +0000 (00:27 -0700)]
[PATCH] md: allow a linear array to have drives added while active

Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] md: allow checkpoint of recovery with version-1 superblock
NeilBrown [Mon, 26 Jun 2006 07:27:40 +0000 (00:27 -0700)]
[PATCH] md: allow checkpoint of recovery with version-1 superblock

For a while we have had checkpointing of resync.  The version-1 superblock
allows recovery to be checkpointed as well, and this patch implements that.

Due to early carelessness we need to add a feature flag to signal that the
recovery_offset field is in use, otherwise older kernels would assume that a
partially recovered array is in fact fully recovered.

Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] md: remove nuisance message at shutdown
NeilBrown [Mon, 26 Jun 2006 07:27:39 +0000 (00:27 -0700)]
[PATCH] md: remove nuisance message at shutdown

At shutdown, we switch all arrays to read-only, which creates a message for
every instantiated array, even those which aren't actually active.

So remove the message for non-active arrays.

Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] md: merge raid5 and raid6 code
NeilBrown [Mon, 26 Jun 2006 07:27:38 +0000 (00:27 -0700)]
[PATCH] md: merge raid5 and raid6 code

There is a lot of commonality between raid5.c and raid6main.c.  This patches
merges both into one module called raid456.  This saves a lot of code, and
paves the way for online raid5->raid6 migrations.

There is still duplication, e.g.  between handle_stripe5 and handle_stripe6.
This will probably be cleaned up later.

Cc: "H. Peter Anvin" <hpa@zytor.com>
Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] md: increase the delay before marking metadata clean, and make it configurable
NeilBrown [Mon, 26 Jun 2006 07:27:37 +0000 (00:27 -0700)]
[PATCH] md: increase the delay before marking metadata clean, and make it configurable

When a md array has been idle (no writes) for 20msecs it is marked as 'clean'.
 This delay turns out to be too short for some real workloads.  So increase it
to 200msec (the time to update the metadata should be a tiny fraction of that)
and make it sysfs-configurable.

Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] md: remove useless ioctl warning
NeilBrown [Mon, 26 Jun 2006 07:27:37 +0000 (00:27 -0700)]
[PATCH] md: remove useless ioctl warning

This warning was slightly useful back in 2.2 days, but is more an annoyance
now.  It makes it awkward to add new ioctls (that we we are likely to do that
in the current climate, but it is possible).

Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] md: remove arbitrary limit on chunk size
NeilBrown [Mon, 26 Jun 2006 07:27:36 +0000 (00:27 -0700)]
[PATCH] md: remove arbitrary limit on chunk size

The largest chunk size the code can support without substantial surgery is
2^30 bytes, so make that the limit instead of an arbitrary 4Meg.  Some day,
the 'chunksize' should change to a sector-shift instead of a byte-count.  Then
no limit would be needed.

Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] md: reformat code in raid1_end_write_request to avoid goto
NeilBrown [Mon, 26 Jun 2006 07:27:35 +0000 (00:27 -0700)]
[PATCH] md: reformat code in raid1_end_write_request to avoid goto

A recent change made this goto unnecessary, so reformat the code to make it
clearer what is happening.

Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] dm: improve error message consistency
Alasdair G Kergon [Mon, 26 Jun 2006 07:27:35 +0000 (00:27 -0700)]
[PATCH] dm: improve error message consistency

Tidy device-mapper error messages to include context information
automatically.

Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] dm: prevent removal if open
Alasdair G Kergon [Mon, 26 Jun 2006 07:27:34 +0000 (00:27 -0700)]
[PATCH] dm: prevent removal if open

If you misuse the device-mapper interface (or there's a bug in your userspace
tools) it's possible to end up with 'unlinked' mapped devices that cannot be
removed until you reboot (along with uninterruptible processes).

This patch prevents you from removing a device that is still open.

It introduces dm_lock_for_deletion() which is called when a device is about to
be removed to ensure that nothing has it open and nothing further can open it.
 It uses a private open_count for this which also lets us remove one of the
problematic bdget_disk() calls elsewhere.

Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] dm: create error table
David Teigland [Mon, 26 Jun 2006 07:27:33 +0000 (00:27 -0700)]
[PATCH] dm: create error table

Add a library function dm_create_error_table() to create a table that rejects
any I/O sent to a device with EIO.

Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] dm: add exports
Alasdair G Kergon [Mon, 26 Jun 2006 07:27:33 +0000 (00:27 -0700)]
[PATCH] dm: add exports

Move definitions of core device-mapper functions for manipulating mapped
devices and their tables to <linux/device-mapper.h> advertising their
availability for use elsewhere in the kernel.

Protect the contents of device-mapper.h with ifdef __KERNEL__.  And throw
in a few formatting clean-ups and extra comments.

Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] dm: consolidate creation functions
Alasdair G Kergon [Mon, 26 Jun 2006 07:27:32 +0000 (00:27 -0700)]
[PATCH] dm: consolidate creation functions

Merge dm_create() and dm_create_with_minor() by introducing the special value
DM_ANY_MINOR to request the allocation of the next available minor number.

Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] dm table split_args: handle no input
David Teigland [Mon, 26 Jun 2006 07:27:31 +0000 (00:27 -0700)]
[PATCH] dm table split_args: handle no input

Return sense if dm_split_args is called with a NULL input parameter.

Signed-off-by: David Teigland <teigland@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] dm kcopyd: error accumulation fix
Jonathan Brassow [Mon, 26 Jun 2006 07:27:30 +0000 (00:27 -0700)]
[PATCH] dm kcopyd: error accumulation fix

kcopyd should accumulate errors - otherwise I/O failures may be ignored
unintentionally.

And invert 'success' (used in a future patch), using a more intuitive
!(read_err || write_err).

Signed-off-by: Jonathan Brassow <jbrassow@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] dm mirror log: sync_count fix
Alasdair G Kergon [Mon, 26 Jun 2006 07:27:30 +0000 (00:27 -0700)]
[PATCH] dm mirror log: sync_count fix

When a mirror is reduced in size, clear the part of the bitmap that is no
longer used.

Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] dm mirror log: bitset_size fix
Alasdair G Kergon [Mon, 26 Jun 2006 07:27:29 +0000 (00:27 -0700)]
[PATCH] dm mirror log: bitset_size fix

Fix the 'sizeof' in the region log bitmap size calculation: it's uint32_t, not
unsigned long - this breaks on some archs.

Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] dm mirror log: refactor context
Alasdair G Kergon [Mon, 26 Jun 2006 07:27:29 +0000 (00:27 -0700)]
[PATCH] dm mirror log: refactor context

Refactor the code that creates the core and disk log contexts to avoid the
repeated allocation of clean_bits introduced by the last patch.

Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] dm mirror log: sector size fix
Kevin Corry [Mon, 26 Jun 2006 07:27:28 +0000 (00:27 -0700)]
[PATCH] dm mirror log: sector size fix

On-disk logs for dm-mirror devices are currently hard-coded to use 512 byte
hard-sector-sizes.  This patch fixes dm-log so it will work with devices with
non-512-byte hard-sector-sizes.

To maintain full compatibility, instead of moving the clean-bits bitset to a
bitset, and enlarges the disk-header buffer to encompass both the header and
the bitset.  The I/O routines for the bitset are removed, and the I/O routines
for the disk-header now also read/write the bitset.

Signed-off-by: Kevin Corry <kevcorry@us.ibm.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] dm table: get_target: fix last index
Milan Broz [Mon, 26 Jun 2006 07:27:27 +0000 (00:27 -0700)]
[PATCH] dm table: get_target: fix last index

The table is indexed from 0, so an index equal to t->num_targets should be
rejected.

(There is no code in the current tree that would exercise this bug.)

Signed-off-by: Milan Broz <mbroz@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] dm: mirror sector offset fix
Neil Brown [Mon, 26 Jun 2006 07:27:26 +0000 (00:27 -0700)]
[PATCH] dm: mirror sector offset fix

The device-mapper core does not perform any remapping of bios before passing
them to the targets.  If a particular mapping begins part-way into a device,
targets obtain the sector relative to the start of the mapping by subtracting
ti->begin.

The dm-raid1 target didn't do this everywhere: this patch fixes it, taking
care to subtract ti->begin exactly once for each bio.

[akpm: too late for 2.6.17 - suitable for 2.6.17.x after it has settled]

Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] dm: fix block device initialisation
Jeff Mahoney [Mon, 26 Jun 2006 07:27:25 +0000 (00:27 -0700)]
[PATCH] dm: fix block device initialisation

In alloc_dev(), we register the device with the block layer and then continue
to initialize the device.  But register_disk() makes the device available to
be opened before we have completed initialising it.

This patch moves the final bits of the initialization above the disk
registration.

[akpm: too late for 2.6.17 - suitable for 2.6.17.x after it has settled]

Signed-off-by: Jeff Mahoney <jeffm@suse.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] dm: add module ref counting
Jeff Mahoney [Mon, 26 Jun 2006 07:27:25 +0000 (00:27 -0700)]
[PATCH] dm: add module ref counting

The reference counting on dm-mod is zero if no mapped devices are open.  This
is incorrect, and can lead to an oops if the module is unloaded while mapped
devices exist.

This patch claims a reference to the module whenever a device is created, and
drops it again when the device is freed.

Devices must be removed before dm-mod is unloaded.

[akpm: too late for 2.6.17 - suitable for 2.6.17.x after it has settled]

Signed-off-by: Jeff Mahoney <jeffm@suse.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] dm: fix mapped device ref counting
Jeff Mahoney [Mon, 26 Jun 2006 07:27:24 +0000 (00:27 -0700)]
[PATCH] dm: fix mapped device ref counting

To avoid races, _minor_lock must be held while changing mapped device
reference counts.

There are a few paths where a mapped_device pointer is returned before a
reference is taken.  This patch fixes them.

[akpm: too late for 2.6.17 - suitable for 2.6.17.x after it has settled]

Signed-off-by: Jeff Mahoney <jeffm@suse.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] dm: add DMF_FREEING
Jeff Mahoney [Mon, 26 Jun 2006 07:27:23 +0000 (00:27 -0700)]
[PATCH] dm: add DMF_FREEING

There is a chicken and egg problem between the block layer and dm in which the
gendisk associated with a mapping keeps a reference-less pointer to the
mapped_device.

This patch uses a new flag DMF_FREEING to indicate when the mapped_device is
no longer valid.  This is checked to prevent any attempt to open the device
from succeeding while the device is being destroyed.

[akpm: too late for 2.6.17 - suitable for 2.6.17.x after it has settled]

Signed-off-by: Jeff Mahoney <jeffm@suse.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] dm: change minor_lock to spinlock
Jeff Mahoney [Mon, 26 Jun 2006 07:27:22 +0000 (00:27 -0700)]
[PATCH] dm: change minor_lock to spinlock

While removing a device, another another thread might attempt to resurrect it.

This patch replaces the _minor_lock mutex with a spinlock and uses
atomic_dec_and_lock() to serialize reference counting in dm_put().

[akpm: too late for 2.6.17 - suitable for 2.6.17.x after it has settled]

Signed-off-by: Jeff Mahoney <jeffm@suse.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] dm: move idr_pre_get
Jeff Mahoney [Mon, 26 Jun 2006 07:27:21 +0000 (00:27 -0700)]
[PATCH] dm: move idr_pre_get

idr_pre_get() can sleep while allocating memory.

The next patch will change _minor_lock into a spinlock, so this patch moves
idr_pre_get() outside the lock in preparation.

[akpm: too late for 2.6.17 - suitable for 2.6.17.x after it has settled]

Signed-off-by: Jeff Mahoney <jeffm@suse.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] dm: fix idr minor allocation
Jeff Mahoney [Mon, 26 Jun 2006 07:27:21 +0000 (00:27 -0700)]
[PATCH] dm: fix idr minor allocation

One part of the system can attempt to use a mapped device before another has
finished initialising it or while it is being freed.

This patch introduces a place holder value, MINOR_ALLOCED, to mark the minor
as allocated but in a state where it can't be used, such as mid-allocation or
mid-free.  At the end of the initialization, it replaces the place holder with
the pointer to the mapped_device, making it available to the rest of the dm
subsystem.

[akpm: too late for 2.6.17 - suitable for 2.6.17.x after it has settled]

Signed-off-by: Jeff Mahoney <jeffm@suse.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] lib: add idr_replace
Jeff Mahoney [Mon, 26 Jun 2006 07:27:19 +0000 (00:27 -0700)]
[PATCH] lib: add idr_replace

This patch adds idr_replace() to replace an existing pointer in a single
operation.

Device-mapper will use this to update the pointer it stored against a given
id.

Signed-off-by: Jeff Mahoney <jeffm@suse.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] dm snapshot: unify chunk_size
Alasdair G Kergon [Mon, 26 Jun 2006 07:27:18 +0000 (00:27 -0700)]
[PATCH] dm snapshot: unify chunk_size

Persistent snapshots currently store a private copy of the chunk size.
Userspace also supplies the chunk size when loading a snapshot.  Ensure
consistency by only storing the chunk_size in one place instead of two.

Currently the two sizes will differ if the chunk size supplied by userspace
does not match the chunk size an existing snapshot actually uses.  Amongst
other problems, this causes an incorrect 'percentage full' to be reported.

The patch ensures consistency by only storing the chunk_size in one place,
removing it from struct pstore.  Some initialisation is delayed until the
correct chunk_size is known.  If read_header() discovers that the wrong chunk
size was supplied, the 'area' buffer (which the header already got read into)
is reinitialised to the correct size.

[akpm: too late for 2.6.17 - suitable for 2.6.17.x after it has settled]

Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] VT binding: Make sticon support binding
Antonino A. Daplas [Mon, 26 Jun 2006 07:27:17 +0000 (00:27 -0700)]
[PATCH] VT binding: Make sticon support binding

Do not mark sticon_startup() as __init

Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] VT binding: Make promcon support binding
Antonino A. Daplas [Mon, 26 Jun 2006 07:27:16 +0000 (00:27 -0700)]
[PATCH] VT binding: Make promcon support binding

Do not mark promcon_startup() and promcon_init_unimap() as __init

Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] VT binding: Make newport_con support binding
Antonino A. Daplas [Mon, 26 Jun 2006 07:27:15 +0000 (00:27 -0700)]
[PATCH] VT binding: Make newport_con support binding

- move register ioremap from newport_startup() to newport_console_init()
- fonts are freed multiple times, do it only once

Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] VT binding: Make mdacon support binding
Antonino A. Daplas [Mon, 26 Jun 2006 07:27:15 +0000 (00:27 -0700)]
[PATCH] VT binding: Make mdacon support binding

Do not mark mdacon_startup __init.

Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] VT binding: Update documentation
Antonino A. Daplas [Mon, 26 Jun 2006 07:27:14 +0000 (00:27 -0700)]
[PATCH] VT binding: Update documentation

Update Documentation/fb/fbcon.txt and Documentatin/console/console.txt to
reflect the following changes:

1. sysfs attributes are relocated to /sys/class/vtconsole

2. feature is selectable in Kconfig

3. add sample scripts to fbcon.txt

Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] VT binding: Do not create a device file for class device 'fbcon'
Antonino A. Daplas [Mon, 26 Jun 2006 07:27:13 +0000 (00:27 -0700)]
[PATCH] VT binding: Do not create a device file for class device 'fbcon'

The class device "fbcon" does not need to be a device file.  Do not create one
by passing a major and minor number of zero to
class_device_create()/destroy().

Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] VT binding: Make VT binding a Kconfig option
Antonino A. Daplas [Mon, 26 Jun 2006 07:27:12 +0000 (00:27 -0700)]
[PATCH] VT binding: Make VT binding a Kconfig option

To enable this feature, CONFIG_VT_HW_CONSOLE_BINDING must be set to 'y'.  This
feature will default to 'n' to minimize users accidentally corrupting their
virtual terminals.

Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] VT binding: Add sysfs control to the VT layer
Antonino A. Daplas [Mon, 26 Jun 2006 07:27:12 +0000 (00:27 -0700)]
[PATCH] VT binding: Add sysfs control to the VT layer

Add sysfs control to the VT layer.  A new sysfs class, 'vtconsole', and class
devices 'vtcon[n]' are added.  Each class device file has the following
attributes:

/sys/class/vtconsole/vtcon[n]/name - read-only attribute showing the
                                     name of the current backend

/sys/class/vtconsole/vtcon[n]/bind - read/write attribute
             where: 0 - backend is unbound/unbind backend from the VT layer
                    1 - backend is bound/bind backend to the VT layer

In addition, if any of the consoles are in KD_GRAPHICS mode, binding and
unbinding will not succeed.  KD_GRAPHICS mode usually indicates that the
underlying console hardware is used for other purposes other than displaying
text (ie X).  This feature should prevent binding/unbinding from interfering
with a graphics application using the VT.

[akpm@osdl.org: warning fixes]
Signed-off-by: Antonino Daplas <adaplas@pol.net>
Cc: Greg KH <greg@kroah.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] VT binding: Add new doc file describing the feature
Antonino A. Daplas [Mon, 26 Jun 2006 07:27:11 +0000 (00:27 -0700)]
[PATCH] VT binding: Add new doc file describing the feature

This newly added file will:

- Describe the characteristics of 2 general types of console drivers
- How to use the sysfs to unbind and bind console drivers
- Uses for this feature

Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] VT binding: fbcon: Update documentation
Antonino A. Daplas [Mon, 26 Jun 2006 07:27:10 +0000 (00:27 -0700)]
[PATCH] VT binding: fbcon: Update documentation

Update Documentation/fb/fbcon.txt to reflect the following changes:

1. Simple illustration of the binding of the console down to individual
   framebuffer drivers

2. Usage of userspace tools to help with recovery of text console

3. How to use the attributes in /sys/class/tty/console to unload fbcon and
   the framebuffer drivers

Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] VT binding: Update fbcon to support binding
Antonino A. Daplas [Mon, 26 Jun 2006 07:27:09 +0000 (00:27 -0700)]
[PATCH] VT binding: Update fbcon to support binding

The control for binding/unbinding is moved from fbcon to the console layer.
Thus the fbcon sysfs attributes, attach and detach, are also gone.

    1. Add a notifier event that tells fbcon if a framebuffer driver has been
       unregistered.  If no registered driver remains, fbcon will unregister
       itself from the console layer.

    2. Replaced calls to give_up_console() with unregister_con_driver().

    3. Still use take_over_console() instead of register_con_driver() to
       maintain compatibility

    4. Respect the parameter first_fb_vc and last_fb_vc instead of using 0 and
       MAX_NR_CONSOLES - 1. These parameters are settable by the user.

    5. When fbcon is completely unbound from the console layer, fbcon will
       also release (iow, decrement module reference counts to zero) all fbdev
       drivers. In other words, a bind or unbind request from the console layer
       will propagate down to the framebuffer drivers.

    6. If fbcon is not bound to the console, it will ignore all notifier
       events (except driver registration and unregistration) and all sysfs
       requests.

Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] VT binding: Add binding/unbinding support for the VT console
Antonino A. Daplas [Mon, 26 Jun 2006 07:27:08 +0000 (00:27 -0700)]
[PATCH] VT binding: Add binding/unbinding support for the VT console

The framebuffer console is now able to dynamically bind and unbind from the VT
console layer.  Due to the way the VT console layer works, the drivers
themselves decide when to bind or unbind.  However, it was decided that
binding must be controlled, not by the drivers themselves, but by the VT
console layer.  With this, dynamic binding is possible for all VT console
drivers, not just fbcon.

Thus, the VT console layer will impose the following to all VT console
drivers:

- all registered VT console drivers will be entered in a private list
- drivers can register themselves to the VT console layer, but they cannot
  decide when to bind or unbind. (Exception: To maintain backwards
  compatibility, take_over_console() will automatically bind the driver after
  registration.)
- drivers can remove themselves from the list by unregistering from the VT
  console layer. A prerequisite for unregistration is that the driver must not
  be bound.

The following functions are new in the vt.c:

register_con_driver() - public function, this function adds the VT console
driver to an internal list maintained by the VT console

bind_con_driver() - private function, it binds the driver to the console

take_over_console() is changed to call register_con_driver() followed by a
bind_con_driver().  This is the only time drivers can decide when to bind to
the VT layer.  This is to maintain backwards compatibility.

unbind_con_driver() - private function, it unbinds the driver from its
console.  The vacated consoles will be taken over by the default boot console
driver.

unregister_con_driver() - public function, removes the driver from the
internal list maintained by the VT console.  It will only succeed if the
driver is currently unbound.

con_is_bound() checks if the driver is currently bound or not

give_up_console() is just a wrapper to unregister_con_driver().

There are also 3 additional functions meant to be called only by the tty layer
for sysfs control:

vt_bind() - calls bind_con_driver()
vt_unbind() - calls unbind_con_driver()
vt_show_drivers() - shows the list of registered drivers

Most VT console drivers will continue to work as is, but might have problems
when unbinding or binding which should be fixable with minimal changes.

Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] Detaching fbcon: update documentation
Antonino A. Daplas [Mon, 26 Jun 2006 07:27:07 +0000 (00:27 -0700)]
[PATCH] Detaching fbcon: update documentation

Update Documentation/fb/fbcon.txt on the following:

1. sysfs attributes are now located in class/graphics/fbcon
2. instructions on how to attach, detach and/or unload fbcon

Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] Detaching fbcon: add capability to attach/detach fbcon
Antonino A. Daplas [Mon, 26 Jun 2006 07:27:06 +0000 (00:27 -0700)]
[PATCH] Detaching fbcon: add capability to attach/detach fbcon

Add the ability to detach and attach the framebuffer console to and from the
vt layer.  This is done by echo'ing any value to sysfs attributes located in
class/graphics/fbcon.  The two attributes are:

      attach - bind fbcon to the vt layer
      detach - unbind fbcon from the vt layer

Once fbcon is detached from the vt layer, fbcon can be unloaded if compiled as
a module.  This feature is quite useful for developers who work on the
framebuffer or console subsystem.  This is also useful for users who want to
go to text mode or graphics mode without having to reboot.

Directly unloading the fbcon module is not possible because the vt layer
increments the module reference count for all bound consoles.  Detaching fbcon
decrements the module reference count to zero so unloading becomes possible.

Detaching fbcon may interfere with X and/or DRM.

Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] Detaching fbcon: clean up exit code
Antonino A. Daplas [Mon, 26 Jun 2006 07:27:05 +0000 (00:27 -0700)]
[PATCH] Detaching fbcon: clean up exit code

To detach fbcon, it must also clean up all resources it allocated.  This was
never done before because fbcon cannot be unloaded.

Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] Detaching fbcon: sdd sysfs class device entry for fbcon
Antonino A. Daplas [Mon, 26 Jun 2006 07:27:05 +0000 (00:27 -0700)]
[PATCH] Detaching fbcon: sdd sysfs class device entry for fbcon

In order for this feature to work, an interface will be needed.  The most
appropriate is sysfs.  However, the framebuffer console has no sysfs entry
yet.  This will create a sysfs class device entry for fbcon under
/sys/class/graphics.

Add a class_device entry 'fbcon' under class 'graphics'.  Console-specific
attributes which where previously under class/graphics/fb[x] are moved to
class/graphics/fbcon.  These attributes, 'con_rotate' and 'con_rotate_all',
are also renamed to 'rotate' and 'rotate_all' respectively.

Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] Detaching fbcon: remove calls to pci_disable_device()
Antonino A. Daplas [Mon, 26 Jun 2006 07:27:04 +0000 (00:27 -0700)]
[PATCH] Detaching fbcon: remove calls to pci_disable_device()

Detaching fbcon allows individual drivers to be unloaded.  However several
drivers call pci_disable_device() upon exit.  This function will disable the
BAR's which will kill VGA text mode and/or affect X/DRM.

To prevent this, remove calls to pci_disable_device() from several drivers.

Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] Detaching fbcon: fix give_up_console()
Antonino A. Daplas [Mon, 26 Jun 2006 07:27:03 +0000 (00:27 -0700)]
[PATCH] Detaching fbcon: fix give_up_console()

To allow for detaching fbcon, it must be able to give up the console.
However, the function give_up_console() is plain broken.  It just sets the
entries in the console driver map to NULL, it leaves the vt layer without a
console driver, and does not decrement the module reference count.  Calling
give_up_console() is guaranteed to hang the machine..

To fix this problem, ensure that the virtual consoles are not left dangling
without a driver.  All systems have a default boot driver (either vgacon or
dummycon) which is never unloaded.  For those vt's that lost their driver, the
default boot driver is reassigned back to them.

Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] Detaching fbcon: fix vgacon to allow retaking of the console
Antonino A. Daplas [Mon, 26 Jun 2006 07:27:02 +0000 (00:27 -0700)]
[PATCH] Detaching fbcon: fix vgacon to allow retaking of the console

One of the limitations of the framebuffer console system is its inablity to
unload or detach itself from the console layer.  And once it loads, it also
locks in framebuffer drivers preventing their unload. Although the con2fbmap
utility does provide a means to unload individual drivers, it requires that at
least one framebuffer driver is loaded for use by fbcon.

With this change, it is possible to detach fbcon from the console layer. If it
is detached, it will reattach the boot console driver (which is permanently
loaded) back to the console layer so the system can continue to work.  As a
consequence, fbcon will also decrement its reference count of individual
framebuffer drivers, allowing all of these drivers to be unloaded even if
fbcon is still loaded.

Unless you use drivers that restores the display to text mode (rivafb and
i810fb, for example), detaching fbcon does require assistance from userspace
tools (ie, vbetools) for text mode to be restored completely.  Without the
help of these tools, fbcon will leave the VGA console corrupted. The methods
that can be used will be described in Documentation/fb/fbcon.txt.

Because the vt layer also increments the module reference count for each
console driver, fbcon cannot be directly unloaded.  It must be detached first
prior to unload.

Similarly, fbcon can be reattached to the console layer without having to
reload the module.  A nice feature if fbcon is compiled statically.

Attaching and detaching fbcon is done via sysfs attributes. A class device
entry for fbcon is created in /sys/class/graphics. The two attributes that
controls this feature are detach and attach. Two other attributes that are
piggybacked under /sys/class/graphics/fb[n] that are fbcon-specific,
'con_rotate' and 'con_rotate_all' are moved to fbcon.  They are renamed as
'rotate' and 'rotate_all' respectively.

Overall, this feature is a great help for developers working in the
framebuffer or console layer.  There is not need to continually reboot the
kernel for every small change. It is also useful for regular users who wants
to choose between a graphical console or a text console without having to
reboot.

Example usage for x86:

/* start in text mode */
modprobe xxxfb
modprobe fbcon
/* graphical mode with fbcon using xxxfb */
echo 1 > /sys/class/graphics/fbcon/detach
/* back to text mode, will produce corrupt display unless vbetool is used */
rmmod xxxfb
modprobe yyyfb
/* back to graphical mode with fbcon using yyyfb */

Before trying out this feature, please read Documentation/fb/fbcon.txt.

This patch:

In order for fbcon to detach itself from the console layer, vgacon, which is a
boot console driver, must be fixed so it can retake the console multiple
times, not just during init.  The following needs to be done:

- remove __init from the vgacon_startup, this is called again by
  take_over_console().

- vc->rows and vc->cols are set manually by vgacon during init. After init,
  vc_resize() can be used

- make sure the scrollback_buffer is not reallocated

Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] fbdev: tag by scantype in sysfs
Daniel R Thompson [Mon, 26 Jun 2006 07:27:00 +0000 (00:27 -0700)]
[PATCH] fbdev: tag by scantype in sysfs

Modify the sysfs description of a video mode such that modes are tagged with
their scan type, (p)rogessive, (i)nterlaced, (d)ouble scan.  For example,
U:1920x1080i-50.  This is useful to disambiguate some of the 'consumer' video
timings found in CEA-861 (especially those for EDTV).

Signed-off-by: Daniel R Thompson <daniel.thompson@st.com>
Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] imacfb: Add Intel-based Macintosh Framebuffer Support
Edgar Hucek [Mon, 26 Jun 2006 07:26:59 +0000 (00:26 -0700)]
[PATCH] imacfb: Add Intel-based Macintosh Framebuffer Support

This patch adds a new framebuffer driver for the Intel Based macs.  This
framebuffer is needed when booting from EFI to get something out the box.

[akpm: note: doesn't support modular building]

[akpm@osdl.org: cleanups]
Signed-off-by: Edgar Hucek <hostmaster@ed-soft.at>
Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] atyfb: Fix section warnings
Antonino A. Daplas [Mon, 26 Jun 2006 07:26:58 +0000 (00:26 -0700)]
[PATCH] atyfb: Fix section warnings

Fix the following warning:

WARNING: drivers/video/aty/atyfb.o - Section mismatch: reference to
.init.text:aty_init_cursor from .text between 'aty_init' (at offset 0x241d)
and 'atyfb_blank'

Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] macmodes: Fix section warning
Antonino A. Daplas [Mon, 26 Jun 2006 07:26:57 +0000 (00:26 -0700)]
[PATCH] macmodes: Fix section warning

Fix the following warning:

WARNING: drivers/video/macmodes.o - Section mismatch: reference to
.init.text:mac_find_mode from __ksymtab after '__ksymtab_mac_find_mode' (at
offset 0x10)

Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] fbdev: Fix logo rotation if width != height
Antonino A. Daplas [Mon, 26 Jun 2006 07:26:56 +0000 (00:26 -0700)]
[PATCH] fbdev: Fix logo rotation if width != height

Logo drawing crashes or produces a corrupt display if the logo width and
height are not equal.  The dimensions are transposed prior to the actual
rotation and the width is used instead of the height in the actual rotation
code.  These produce a corrupt image.

Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] neofb: fix unblank logic interfering with lid toggled backlight
Christian Trefzer [Mon, 26 Jun 2006 07:26:55 +0000 (00:26 -0700)]
[PATCH] neofb: fix unblank logic interfering with lid toggled backlight

This is a fix for the most annoying problem that remained with neofb:

After "setterm -powersave powerdown" the console blanker will disable the
backlight after the given timeout expires.  If this happens after the lid
has been shut, we read "LCD off" from the register and store that in the
driver.  Once the lid is opened, the backlight turns on, but any key press
that would awaken the blanked console will switch the backlight off again.

The workaround so far was to use the "display config toggle" Fn key combo -
once if no external display is attached, otherwise as often as required to
restore the desired display setup.

The following patch fixes the issue at least for the LCD-only case, with no
external monitor attached.  Other display setup permutations are pending
further testing, but so far I can guarantee at least no negative change in
behaviour, if any at all.

Signed-off-by: Christian Trefzer <ctrefzer@gmx.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] skeletonfb: remove duplicate module init, exit, license lines
Arnaldo Carvalho de Melo [Mon, 26 Jun 2006 07:26:51 +0000 (00:26 -0700)]
[PATCH] skeletonfb: remove duplicate module init, exit, license lines

Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
Acked-by: "Antonino A. Daplas" <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] au1100fb: add power management support
Rodolfo Giometti [Mon, 26 Jun 2006 07:26:49 +0000 (00:26 -0700)]
[PATCH] au1100fb: add power management support

Add power management support

[akpm@osdl.org: cleanup]
Signed-off-by: Rodolfo Giometti <giometti@linux.it>
Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] backlight: Fix Kconfig dependency
Antonino A. Daplas [Mon, 26 Jun 2006 07:26:49 +0000 (00:26 -0700)]
[PATCH] backlight: Fix Kconfig dependency

CONFIG_FB = m and CONFIG_{BACKLIGHT:LCD}_CLASS_DEVICE = y is possible
resulting in link errors.  Fix by making backlight and lcd class also depend
on FB

Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] s3c2410fb: Fix resume
Arnaud Patard [Mon, 26 Jun 2006 07:26:45 +0000 (00:26 -0700)]
[PATCH] s3c2410fb: Fix resume

regs.lcdcon1 was not updated on suspend.  The result was a garbaged display on
resume.  This bug was first noticed by Christer Weinigel.  This patch is a
modified version of the one he sent to me.

Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] fbdev: Remove unused exports
Adrian Bunk [Mon, 26 Jun 2006 07:26:45 +0000 (00:26 -0700)]
[PATCH] fbdev: Remove unused exports

This patch removes the following unused EXPORT_SYMBOL's:
- fbcvt.c: fb_find_mode_cvt
- fbmem.c: fb_con_duit
- fbmem.c: fb_new_modelist
- macmodes.c: mac_var_to_vmode
- modedb.c: fb_delete_videomode
- modedb.c: fb_destroy_modelist

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] fbdev: Coverity Bug 90
Antonino A. Daplas [Mon, 26 Jun 2006 07:26:44 +0000 (00:26 -0700)]
[PATCH] fbdev: Coverity Bug 90

It's a false positive, but let's suppress it anyway.

Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] fbdev: Coverity Bug 85
Antonino A. Daplas [Mon, 26 Jun 2006 07:26:43 +0000 (00:26 -0700)]
[PATCH] fbdev: Coverity Bug 85

It's a false positive, but let's suppress it anyway.

Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] atyfb: Fix dead code
Antonino A. Daplas [Mon, 26 Jun 2006 07:26:43 +0000 (00:26 -0700)]
[PATCH] atyfb: Fix dead code

Coverity Bug 68:

Fix dead code

Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] vt: Delay the update of the visible console
David Hollister [Mon, 26 Jun 2006 07:26:41 +0000 (00:26 -0700)]
[PATCH] vt: Delay the update of the visible console

Delay the update of the visible framebuffer console until all other consoles
have been initialized in order to avoid losing information.  This only seems
to be a problem with modules, not with built-in drivers.

Signed-off-by: David Hollister <david.hollister@amd.com>
Signed-off-by: Jordan Crouse <jordan.crouse@amd.com>
Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] vesafb: Prefer VGA registers over PMI
Antonino A. Daplas [Mon, 26 Jun 2006 07:26:41 +0000 (00:26 -0700)]
[PATCH] vesafb: Prefer VGA registers over PMI

- As per VESA specs, use the VGA registers to set the palette if the mode is
  VGA compatible.  Otherwise, use the protected mode interface.

- Make pmi_setpal default to 1

Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] vesafb: Fix return code of vesafb_setcolreg
Antonino A. Daplas [Mon, 26 Jun 2006 07:26:40 +0000 (00:26 -0700)]
[PATCH] vesafb: Fix return code of vesafb_setcolreg

If the hardware palette cannot be accessed, make vesafb_setcolreg return a
nonzero value.

Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] fbdev: Add 1366x768 (WXGA) mode to mode database
Dennis Munsie [Mon, 26 Jun 2006 07:26:39 +0000 (00:26 -0700)]
[PATCH] fbdev: Add 1366x768 (WXGA) mode to mode database

Adds 1366x768 @ 60Hz to drivers/video/modedb.c.

Signed-off-by: Dennis Munsie <dmunsie@cecropia.com>
Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] nvidiafb: Add support for Geforce 6100 and related chipsets
Antonino A. Daplas [Mon, 26 Jun 2006 07:26:38 +0000 (00:26 -0700)]
[PATCH] nvidiafb: Add support for Geforce 6100 and related chipsets

Add support for Geforce 6100 and related chipsets (PCI device id 0x024x)

Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] fbdev: Firmware EDID fixes
Antonino A. Daplas [Mon, 26 Jun 2006 07:26:37 +0000 (00:26 -0700)]
[PATCH] fbdev: Firmware EDID fixes

- make firmware edid independent from framebuffer (No need to choose
  framebuffer just to disable this option

- enable this option in X86_64

- check if VBE/DDC function is implemented before calling actual function

Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] savagefb: Whitespace cleanup
Antonino A. Daplas [Mon, 26 Jun 2006 07:26:36 +0000 (00:26 -0700)]
[PATCH] savagefb: Whitespace cleanup

Whitespace cleanup

Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] fbdev: Static pseudocolor with depth less than 4 does exist
Antonino A. Daplas [Mon, 26 Jun 2006 07:26:36 +0000 (00:26 -0700)]
[PATCH] fbdev: Static pseudocolor with depth less than 4 does exist

A static pseudocolor visual with depth less than 4 does exist, so let's not
accidentally upscale the depth with this configuration

Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] vga16fb: Update platform code
Antonino A. Daplas [Mon, 26 Jun 2006 07:26:35 +0000 (00:26 -0700)]
[PATCH] vga16fb: Update platform code

Update platform code to dynamically allocate the platform device

Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] vfb: Update platform code
Antonino A. Daplas [Mon, 26 Jun 2006 07:26:34 +0000 (00:26 -0700)]
[PATCH] vfb: Update platform code

Update platform code to dynamically allocate the platform device

Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>