07 Feb, 2008

40 commits

  • Signed-off-by: Joe Perches
    Signed-off-by: Dave Jones

    Joe Perches
     
  • * 'async-tx-for-linus' of git://lost.foo-projects.org/~dwillia2/git/iop:
    async_tx: allow architecture specific async_tx_find_channel implementations
    async_tx: replace 'int_en' with operation preparation flags
    async_tx: kill tx_set_src and tx_set_dest methods
    async_tx: kill ASYNC_TX_ASSUME_COHERENT
    iop-adma: use LIST_HEAD instead of LIST_HEAD_INIT
    async_tx: use LIST_HEAD instead of LIST_HEAD_INIT
    async_tx: fix compile breakage, mark do_async_xor __always_inline

    Linus Torvalds
     
  • Signed-off-by: Daniel Walker
    Signed-off-by: Linus Torvalds

    Daniel Walker
     
  • * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:
    ata_piix.c:piix_init_one() must be __devinit
    sata_via.c: Remove missleading comment.
    libata-core: unblacklist HITACHI drives
    sata_nv: fix ATAPI issues with memory over 4GB (v7)
    ata: drivers/ata/sata_mv.c needs dmapool.h
    libata: kill now unused n_iter and fix sata_fsl
    ahci: fix CAP.NP and PI handling
    sata_mv: Support SoC controllers
    Rename: linux/pata_platform.h to linux/ata_platform.h

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (35 commits)
    virtio net: fix oops on interface-up
    Fix PHY Lib support for gianfar and ucc_geth
    forcedeth: preserve registers
    forcedeth: phy status fix
    forcedeth: restart tx/rx
    ipvs: Make wrr "no available servers" error message rate-limited
    [PPPOL2TP]: Label unused warning when CONFIG_PROC_FS is not set.
    [NET_SCHED]: cls_flow: support classification based on VLAN tag
    [VLAN]: Constify skb argument to vlan_get_tag()
    [NET_SCHED]: cls_flow: fix key mask validity check
    [NET_SCHED]: em_meta: fix compile warning
    b43: Fix DMA for 30/32-bit DMA engines
    b43: fix build with CONFIG_SSB_PCIHOST=n
    mac80211: Is not EXPERIMENTAL anymore
    iwl3945-base.c: fix off-by-one errors
    b43legacy: fix DMA slot resource leakage
    b43legacy: drop packets we are not able to encrypt
    b43legacy: fix suspend/resume
    b43legacy: fix PIO crash
    Generic HDLC - use random_ether_addr()
    ...

    Linus Torvalds
     
  • Warning is reproducible with selected FB_CFB_REV_PIXELS_IN_BYTE.

    CC drivers/video/sysfillrect.o
    In file included from drivers/video/sysfillrect.c:18:
    drivers/video/fb_draw.h: In function `fb_rev_pixels_in_long':
    drivers/video/fb_draw.h:94: warning: no return statement in function returning non-void
    CC drivers/video/syscopyarea.o
    In file included from drivers/video/syscopyarea.c:22:
    drivers/video/fb_draw.h: In function `fb_rev_pixels_in_long':
    drivers/video/fb_draw.h:94: warning: no return statement in function returning non-void

    Signed-off-by: Anton Vorontsov
    Cc: "Antonino A. Daplas"
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Anton Vorontsov
     
  • Include linux/delay.h to fix compiler error:

    drivers/virtio/virtio_balloon.c: In function 'fill_balloon':
    drivers/virtio/virtio_balloon.c:98: error: implicit declaration of function 'msleep'

    Signed-off-by: Johann Felix Soden
    Cc: Rusty Russell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Johann Felix Soden
     
  • Some Supermicro BIOSes describe a SATA PCI BAR as a motherboard resource.
    The PNP system driver claims motherboard resources, and this prevents the
    sata_nv driver from requesting it later.

    This patch disables the PNP0C01/PNP0C02 resources so they won't be claimed
    by the PNP system driver, so they'll available for sata_nv.

    This fixes the bugs below, where sata_nv detects only two out of four SATA
    drives. The signature includes dmesg lines similar to these:

    pnp: 00:09: iomem range 0xdfefc000-0xdfefcfff has been reserved
    pnp: 00:09: iomem range 0xdfefd000-0xdfefd3ff has been reserved
    pnp: 00:09: iomem range 0xdfefe000-0xdfefe3ff has been reserved

    PCI: Unable to reserve mem region #6:1000@dfefd000 for device 0000:80:07.0
    sata_nv: probe of 0000:80:07.0 failed with error -16
    PCI: Unable to reserve mem region #6:1000@dfefe000 for device 0000:80:08.0
    sata_nv: probe of 0000:80:08.0 failed with error -16

    References:
    https://bugzilla.redhat.com/show_bug.cgi?id=280641
    https://bugzilla.redhat.com/show_bug.cgi?id=313491
    http://lkml.org/lkml/2008/1/9/449
    http://thread.gmane.org/gmane.linux.acpi.devel/27312

    This is post-2.6.24 material.

    Signed-off-by: Bjorn Helgaas

    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Bjorn Helgaas
     
  • The PNP_DRIVER_RES_DO_NOT_CHANGE flag is meant to signify that the PNP core
    should not change resources for the device -- not that it shouldn't
    disable/enable the device on suspend/resume.

    ALSA ISAPnP drivers set PNP_DRIVER_RES_DO_NOT_CHANAGE (0x0001) through
    setting PNP_DRIVER_RES_DISABLE (0x0003). The latter including the former
    may in itself be considered rather unexpected but doesn't change that
    suspend/resume wouldn't seem to have any business testing the flag.

    As reported by Ondrej Zary for snd-cs4236, ALSA driven ISAPnP cards don't
    survive swsusp hibernation with the resume skipping setting the resources
    due to testing the flag -- the same test in the suspend path isn't enough
    to keep hibernation from disabling the card it seems.

    These tests were added (in 2005) by Piere Ossman in commit
    68094e3251a664ee1389fcf179497237cbf78331, "alsa: Improved PnP suspend
    support" who doesn't remember why. This deletes them.

    Signed-off-by: Rene Herman
    Tested-by: Ondrej Zary
    Cc: Bjorn Helgaas
    Cc: Pierre Ossman
    Cc: Adam Belay
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Rene Herman
     
  • Changed the isapnp semaphore to a mutex.

    [akpm@linux-foundation.org: no externs-in-c]
    [akpm@linux-foundation.org: build fix]
    Signed-off-by: Daniel Walker
    Cc: Bjorn Helgaas
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daniel Walker
     
  • There are three kind of parse functions provided by PNP acpi/bios:
    - get current resources
    - set resources
    - get possible resources
    The first two may be needed later at runtime.
    The possible resource settings should never change dynamically.
    And even if this would make any sense (I doubt it), the current implementation
    only parses possible resource settings at early init time:
    -> declare all the option parsing __init

    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: Thomas Renninger
    Acked-By: Rene Herman
    Cc: Bjorn Helgaas
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Renninger
     
  • Make pnp_activate_dev() and pnp_disable_dev() return only 0 (success) or a
    negative error value, as pci_enable_device() and pci_disable_device() do.

    Previously they returned:

    0: device was already active (or disabled)
    1: we just activated (or disabled) device

    Cc: Adam Belay
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Bjorn Helgaas
     
  • raid5's 'make_request' function calls generic_make_request on underlying
    devices and if we run out of stripe heads, it could end up waiting for one of
    those requests to complete. This is bad as recursive calls to
    generic_make_request go on a queue and are not even attempted until
    make_request completes.

    So: don't make any generic_make_request calls in raid5 make_request until all
    waiting has been done. We do this by simply setting STRIPE_HANDLE instead of
    calling handle_stripe().

    If we need more stripe_heads, raid5d will get called to process the pending
    stripe_heads which will call generic_make_request from a

    This change by itself causes a performance hit. So add a change so that
    raid5_activate_delayed is only called at unplug time, never in raid5. This
    seems to bring back the performance numbers. Calling it in raid5d was
    sometimes too soon...

    Neil said:

    How about we queue it for 2.6.25-rc1 and then about when -rc2 comes out,
    we queue it for 2.6.24.y?

    Acked-by: Dan Williams
    Signed-off-by: Neil Brown
    Tested-by: dean gaudet
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    NeilBrown
     
  • Finish ITERATE_ to for_each conversion.

    Signed-off-by: Neil Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    NeilBrown
     
  • As this is more in line with common practice in the kernel. Also swap the
    args around to be more like list_for_each.

    Signed-off-by: Neil Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    NeilBrown
     
  • As this is more consistent with kernel style.

    Signed-off-by: Neil Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    NeilBrown
     
  • As suggested by Andrew Morton.

    Signed-off-by: Neil Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    NeilBrown
     
  • Due to possible deadlock issues we need to use a schedule work to kobject_del
    an 'rdev' object from a different thread.

    A recent change means that kobject_add no longer gets a refernce, and
    kobject_del doesn't put a reference. Consequently, we need to explicitly hold
    a reference to ensure that the last reference isn't dropped before the
    scheduled work get a chance to call kobject_del.

    Also, rename delayed_delete to md_delayed_delete to that it is more obvious in
    a stack trace which code is to blame.

    Cc: Al Viro
    Signed-off-by: Neil Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    NeilBrown
     
  • Signed-off-by: Neil Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    NeilBrown
     
  • Signed-off-by: Neil Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    NeilBrown
     
  • Currently, a given device is "claimed" by a particular array so that it cannot
    be used by other arrays.

    This is not ideal for DDF and other metadata schemes which have their own
    partitioning concept.

    So for externally managed metadata, just claim the device for md in general,
    require that "offset" and "size" are set properly for each device, and make
    sure that if a device is included in different arrays then the active sections
    do not overlap.

    This involves adding another flag to the rdev which makes it awkward to set
    "->flags = 0" to clear certain flags. So now clear flags explicitly by name
    when we want to clear things.

    Signed-off-by: Neil Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    NeilBrown
     
  • If you try to start an array for which the number of raid disks is listed as
    zero, md will currently try to read metadata off any devices that have been
    given. This was done because the value of raid_disks is used to signal
    whether array details have been provided by userspace (raid_disks > 0) or must
    be read from the devices (raid_disks == 0).

    However for an array without persistent metadata (or with externally managed
    metadata) this is the wrong thing to do. So we add a test in do_md_run to
    give an error if raid_disks is zero for non-persistent arrays.

    This requires that mddev->persistent is set corrently at this point, which it
    currently isn't for in-kernel autodetected arrays.

    So set ->persistent for autodetect arrays, and remove the settign in
    super_*_validate which is now redundant.

    Also clear ->persistent when stopping an array so it is consistently zero when
    starting an array.

    Signed-off-by: Neil Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    NeilBrown
     
  • This allows userspace to control resync/reshape progress and synchronise it
    with other activities, such as shared access in a SAN, or backing up critical
    sections during a tricky reshape.

    Writing a number of sectors (which must be a multiple of the chunk size if
    such is meaningful) causes a resync to pause when it gets to that point.

    Signed-off-by: Neil Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    NeilBrown
     
  • When a device fails, we must not allow an further writes to the array until
    the device failure has been recorded in array metadata. When metadata is
    managed externally, this requires some synchronisation...

    Allow/require userspace to explicitly remove failed devices from active
    service in the array by writing 'none' to the 'slot' attribute. If this
    reduces the number of failed devices to 0, the write block will automatically
    be lowered.

    Signed-off-by: Neil Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    NeilBrown
     
  • - Add a state flag 'external' to indicate that the metadata is managed
    externally (by user-space) so important changes need to be
    left of user-space to handle.
    Alternates are non-persistant ('none') where there is no stable metadata -
    after the array is stopped there is no record of it's status - and
    internal which can be version 0.90 or version 1.x
    These are selected by writing to the 'metadata' attribute.

    - move the updating of superblocks (sync_sbs) to after we have checked if
    there are any superblocks or not.

    - New array state 'write_pending'. This means that the metadata records
    the array as 'clean', but a write has been requested, so the metadata has
    to be updated to record a 'dirty' array before the write can continue.
    This change is reported to md by writing 'active' to the array_state
    attribute.

    - tidy up marking of sb_dirty:
    - don't set sb_dirty when resync finishes as md_check_recovery
    calls md_update_sb when the sync thread finishes anyway.
    - Don't set sb_dirty in multipath_run as the array might not be dirty.
    - don't mark superblock dirty when switching to 'clean' if there
    is no internal superblock (if external, userspace can choose to
    update the superblock whenever it chooses to).

    Signed-off-by: Neil Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    NeilBrown
     
  • Currently an md array with a write-intent bitmap does not updated that bitmap
    to reflect successful partial resync. Rather the entire bitmap is updated
    when the resync completes.

    This is because there is no guarentee that resync requests will complete in
    order, and tracking each request individually is unnecessarily burdensome.

    However there is value in regularly updating the bitmap, so add code to
    periodically pause while all pending sync requests complete, then update the
    bitmap. Doing this only every few seconds (the same as the bitmap update
    time) does not notciably affect resync performance.

    [snitzer@gmail.com: export bitmap_cond_end_sync]
    Signed-off-by: Neil Brown
    Cc: "Mike Snitzer"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    NeilBrown
     
  • Clean up the coding style in raid6test/test.c. Break it apart into
    subfunctions to make the code more readable.

    Signed-off-by: H. Peter Anvin
    Signed-off-by: Neil Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    H. Peter Anvin
     
  • Make both mktables.c and its output CodingStyle compliant. Update the
    copyright notice.

    Signed-off-by: H. Peter Anvin
    Signed-off-by: Neil Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    H. Peter Anvin
     
  • Signed-off-by: Oliver Pinter
    Cc: Neil Brown
    Cc: "H. Peter Anvin"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Oliver Pinter
     
  • The current attr_fgcol_ec / attr_bgcol_ec macros do a simple shift of bits
    to get the color from vc_video_erase_char. For a monochrome display
    however the attribute does not contain any color, only attribute bits.
    Furthermore the reverse bit is lost because it is shifted out, the
    resulting color is always 0.

    This can bee seen on a monochrome console either directly or by setting it
    to inverse mode via "setterm -inversescreen on" . Text is written with
    correct color, fb_fillrects from a bit_clear / bit_clear_margins will get
    wrong colors.

    Signed-off-by: Thomas Pfaff
    Cc: "Antonino A. Daplas"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Pfaff
     
  • Ensure that the default display parameter passed in via the
    device's platform data is valid. It turns out when mach-bast.c
    was updated, the default_display was set outside of the display
    array bounds, causing a panic on startup.

    If the default_display is bigger than num_displays, then generate
    an error and refuse to initialise the driver.

    Signed-off-by: Ben Dooks
    Cc: "Antonino A. Daplas"
    Cc: Vincent Sanders
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ben Dooks
     
  • Change the initial pattern in the s3c2410 framebuffer driver
    to black.

    Signed-off-by: Ben Dooks
    Cc: "Antonino A. Daplas"
    Cc: Vincent Sanders
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ben Dooks
     
  • Update the debugging in the s3c2410 framebuffer driver.

    Signed-off-by: Ben Dooks
    Cc: "Antonino A. Daplas"
    Cc: Vincent Sanders
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ben Dooks
     
  • Add support for the S3C2412 to the S3C2410 frame buffer driver
    by ensuring that any moved registers can be dealt with.

    Signed-off-by: Ben Dooks
    Cc: "Antonino A. Daplas"
    Cc: Vincent Sanders
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ben Dooks
     
  • Move the console suspend to before we save the state of
    the framebuffer to ensure that it does not try and change
    the fb state again once we have copied it out.

    Signed-off-by: Ben Dooks
    Cc: "Antonino A. Daplas"
    Cc: Vincent Sanders
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ben Dooks
     
  • Fix garbled letters on big endian machines with acceleration enabled.

    This makes pm2fb works fine with full acceleration on sparc machine (card
    known as Sun PGX-32 or TechSource Raptor GFX-8P).

    Signed-off-by: Krzysztof Helt
    Cc: Geert Uytterhoeven
    Cc: "David S. Miller"
    Cc: "Antonino A. Daplas"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Krzysztof Helt
     
  • Fix modedb typos

    Signed-off-by: Geoff Levand
    Signed-off-by: Geert Uytterhoeven
    Cc: "Antonino A. Daplas"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Geoff Levand
     
  • cleanup sweep:
    - Kill ps3fb_priv.xdr_ea and ps3fb_priv.xdr_size, use info->screen_base and
    info->fix.smem_len instead.
    - Kill superfluous assignments to info->fix.smem_start, info->fix.smem_len,
    and info->screen_base in ps3fb_set_par(). Their values never change.
    - Add sparse annotations to casts to kill address space warnings

    Signed-off-by: Geert Uytterhoeven
    Cc: "Antonino A. Daplas"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Geert Uytterhoeven
     
  • Round up arbitrary video modes until they fit (if possible)

    Signed-off-by: Geert Uytterhoeven
    Cc: "Antonino A. Daplas"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Geert Uytterhoeven
     
  • Reorganize modedb handling:
    - Reorder the video modes in ps3fb_modedb, for easier indexing using
    PS3AV_MODE_* numbers,
    - Introduce ps3fb_native_vmode(), to convert from native (PS3AV_MODE_*) mode
    numbers to struct fb_videomode *,
    - Rename and move ps3fb_default_mode() to ps3fb_vmode().

    Signed-off-by: Geert Uytterhoeven
    Cc: "Antonino A. Daplas"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Geert Uytterhoeven