13 Jul, 2007

40 commits

  • this implements generic support for suspend/resume for usb serial.

    Signed-off-by: Oliver Neukum
    Signed-off-by: Greg Kroah-Hartman

    Oliver Neukum
     
  • This patch supports LSI/Engenio devices in RDAC mode. Like dm-emc
    it requires userspace support. In your multipath.conf file you must have:

    path_checker rdac
    hardware_handler "1 rdac"
    prio_callout "/sbin/mpath_prio_tpc /dev/%n"

    And you also then must have a updated multipath tools release which
    has rdac support.

    Signed-off-by: Chandra Seetharaman
    Signed-off-by: Mike Christie
    Signed-off-by: Alasdair G Kergon
    Signed-off-by: Linus Torvalds

    Chandra Seetharaman
     
  • When writing to a mirror, the log must be updated first. Failure
    to update the log could result in the log not properly reflecting
    the state of the mirror if the machine should crash.

    We change the return type of the rh_flush function to give us
    the ability to check if a log write was successful. If the
    log write was unsuccessful, we fail the writes to avoid the
    case where the log does not properly reflect the state of the
    mirror.

    A follow-up patch - which is dependent on the ability to
    requeue I/O's to core device-mapper - will requeue the I/O's
    for retry (allowing the mirror to be reconfigured.)

    Signed-off-by: Jonathan Brassow
    Signed-off-by: Alasdair G Kergon
    Signed-off-by: Linus Torvalds

    Jonathan Brassow
     
  • Device-mapper mirroring currently takes a best effort approach to
    recovery - failures during mirror synchronization are completely ignored.
    This means that regions are marked 'in-sync' and 'clean' and removed
    from the hash list. Future reads and writes that query the region
    will incorrectly interpret the region as in-sync.

    This patch handles failures during the recovery process. If a failure
    occurs, the region is marked as 'not-in-sync' (aka RH_NOSYNC) and added
    to a new list 'failed_recovered_regions'.

    Regions on the 'failed_recovered_regions' list are not marked as 'clean'
    upon removal from the list. Furthermore, if the DM_RAID1_HANDLE_ERRORS
    flag is set, the region is marked as 'not-in-sync'. This action prevents
    any future read-balancing from choosing an invalid device because of the
    'not-in-sync' status.

    If "handle_errors" is not specified when creating a mirror (leaving the
    DM_RAID1_HANDLE_ERRORS flag unset), failures will be ignored exactly as they
    would be without this patch. This is to preserve backwards compatibility with
    user-space tools, such as 'pvmove'. However, since future read-balancing
    policies will rely on the correct sync status of a region, a user must choose
    "handle_errors" when using read-balancing.

    Signed-off-by: Jonathan Brassow
    Signed-off-by: Alasdair G Kergon
    Signed-off-by: Linus Torvalds

    Jonathan Brassow
     
  • Add ratelimit extension to dm logging macros.

    Signed-off-by: Jonathan Brassow
    Signed-off-by: Alasdair G Kergon
    Signed-off-by: Linus Torvalds

    Jonathan Brassow
     
  • This patch causes device-mapper to reject any barrier requests. This is done
    since most of the targets won't handle this correctly anyway. So until the
    situation improves it is better to reject these requests at the first place.
    Since barrier requests won't get to the targets, the checks there can be
    removed.

    Cc: stable@kernel.org
    Signed-off-by: Stefan Bader
    Signed-off-by: Alasdair G Kergon
    Signed-off-by: Linus Torvalds

    Stefan Bader
     
  • A clear_region function is permitted to block (in practice, rare) but gets
    called in rh_update_states() with a spinlock held.

    The bits being marked and cleared by the above functions are used
    to update the on-disk log, but are never read directly. We can
    perform these operations outside the spinlock since the
    bits are only changed within one thread viz.
    - mark_region in rh_inc()
    - clear_region in rh_update_states().

    So, we grab the clean_regions list items via list_splice() within the
    spinlock and defer clear_region() until we iterate over the list for
    deletion - similar to how the recovered_regions list is already handled.
    We then move the flush() call down to ensure it encapsulates the changes
    which are done by the later calls to clear_region().

    Signed-off-by: Jonathan Brassow
    Signed-off-by: Alasdair G Kergon
    Signed-off-by: Linus Torvalds

    Jonathan Brassow
     
  • Allow invalid snapshots to be activated instead of failing.

    This allows userspace to reinstate any given snapshot state - for
    example after an unscheduled reboot - and clean up the invalid snapshot
    at its leisure.

    Cc: stable@kernel.org
    Signed-off-by: Milan Broz
    Signed-off-by: Alasdair G Kergon
    Signed-off-by: Linus Torvalds

    Milan Broz
     
  • Process persistent exception store metadata IOs in a separate thread.

    A snapshot may become invalid while inside generic_make_request().
    A synchronous write is then needed to update the metadata while still
    inside that function. Since the introduction of
    md-dm-reduce-stack-usage-with-stacked-block-devices.patch this has to
    be performed by a separate thread to avoid deadlock.

    Signed-off-by: Milan Broz
    Signed-off-by: Alasdair G Kergon
    Signed-off-by: Linus Torvalds

    Milan Broz
     
  • bio_alloc_bioset() will return NULL if 'num_vecs' is too large.
    Use bio_get_nr_vecs() to get estimation of maximum number.

    Cc: stable@kernel.org
    Signed-off-by: "Jun'ichi Nomura"
    Signed-off-by: Alasdair G Kergon
    Signed-off-by: Linus Torvalds

    Jun'ichi Nomura
     
  • Fix mirror status line broken in dm-log-report-fault-status.patch:
    - space missing between two words
    - placeholder ("0") required for compatibility with a subsequent patch
    - incorrect offset parameter

    Cc: stable@kernel.org
    Signed-off-by: Milan Broz
    Signed-off-by: Alasdair G Kergon
    Signed-off-by: Linus Torvalds

    Milan Broz
     
  • Remove explicit module name from messages as the macro now includes it
    automatically.

    Signed-off-by: Alasdair G Kergon
    Signed-off-by: Linus Torvalds

    Alasdair G Kergon
     
  • Use setup_timer().
    Replace semaphore with mutex.

    Signed-off-by: Alasdair G Kergon
    Signed-off-by: Linus Torvalds

    Alasdair G Kergon
     
  • Use new KMEM_CACHE() macro and make the newly-exposed structure names more
    meaningful. Also remove some superfluous casts and inlines (let a modern
    compiler be the judge).

    Acked-by: Christoph Lameter
    Signed-off-by: Alasdair G Kergon
    Signed-off-by: Linus Torvalds

    Alasdair G Kergon
     
  • Remove dubious prefetch from bio_list_for_each() macro.

    Cc: Jens Axboe
    Signed-off-by: Alasdair G Kergon
    Signed-off-by: Linus Torvalds

    Alasdair G Kergon
     
  • * 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm: (50 commits)
    [ARM] sa1100: remove boot time RTC initialisation
    [ARM] sa1100: stop doing our own rtc management over suspend
    [ARM] 4474/1: Do not check the PSR_F_BIT in valid_user_regs
    [ARM] 4473/2: Take the HWCAP definitions out of the elf.h file
    [ARM] pxa: move platform devices to separate header file
    [ARM] pxa: move device registration into CPU-specific file
    [ARM] pxa: remove boot time RTC initialisation
    [ARM] pxa: stop doing our own rtc management over suspend
    [ARM] 4451/1: pxa: make dma.c generic and remove cpu specific dma code
    [ARM] 4450/1: pxa: add pxa25x_init_irq() and pxa27x_init_irq()
    [ARM] 4440/1: PXA: enable the checking of ICIP2 for IRQs
    [ARM] 4438/1: PXA: remove #ifdef .. #endif from pxa_gpio_demux_handler()
    [ARM] 4437/1: PXA: move the GPIO IRQ initialization code to pxa_init_irq_gpio()
    [ARM] 4436/1: PXA: move low IRQ initialization code to pxa_init_irq_low()
    [ARM] 4435/1: PXA: remove PXA_INTERNAL_IRQS
    [ARM] 4434/1: PXA: remove PXA_IRQ_SKIP
    [ARM] pxa: Fix PXA27x suspend type validation, remove pxa_pm_prepare()
    [ARM] pxa: move pm_ops structure into CPU specific files
    [ARM] pxa: introduce cpu_is_pxaXXX macros
    [ARM] pxa: remove MMC register defines from pxa-regs.h
    ...

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/selinux-2.6:
    security: unexport mmap_min_addr
    SELinux: use SECINITSID_NETMSG instead of SECINITSID_UNLABELED for NetLabel
    security: Protection for exploiting null dereference using mmap
    SELinux: Use %lu for inode->i_no when printing avc
    SELinux: allow preemption between transition permission checks
    selinux: introduce schedule points in policydb_destroy()
    selinux: add selinuxfs structure for object class discovery
    selinux: change sel_make_dir() to specify inode counter.
    selinux: rename sel_remove_bools() for more general usage.
    selinux: add support for querying object classes and permissions from the running policy

    Linus Torvalds
     
  • * master.kernel.org:/pub/scm/linux/kernel/git/davej/cpufreq:
    [CPUFREQ] Fix sysfs_create_file return value handling
    [CPUFREQ] ondemand: fix tickless accounting and software coordination bug
    [CPUFREQ] ondemand: add a check to avoid negative load calculation
    [CPUFREQ] Keep userspace governor quiet when it is not being used
    [CPUFREQ] Longhaul - Proper register access
    [CPUFREQ] Kconfig powernow-k8 driver should depend on ACPI P-States driver
    [CPUFREQ] Longhaul - Replace ACPI functions with direct I/O
    [CPUFREQ] Longhaul - Remove duplicate multipliers
    [CPUFREQ] Longhaul - Embedded "conservative"
    [CPUFREQ] acpi-cpufreq: Proper ReadModifyWrite of PERF_CTL MSR
    [CPUFREQ] check return value of sysfs_create_file
    [CPUFREQ] Longhaul - Check ACPI "BM DMA in progress" bit
    [CPUFREQ] Longhaul - Move old_ratio to correct place
    [CPUFREQ] Longhaul - VT8237 support
    [CPUFREQ] Longhaul - Use all kinds of support
    [CPUFREQ] powernow-k8: clarify number of cores.

    Linus Torvalds
     
  • * master.kernel.org:/pub/scm/linux/kernel/git/davej/agpgart:
    [AGPGART] Hand off AGP maintainence.

    Linus Torvalds
     
  • * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:
    [IA64] Support multiple CPUs going through OS_MCA
    [IA64] silence GCC ia64 unused variable warnings
    [IA64] prevent MCA when performing MMIO mmap to PCI config space
    [IA64] add sn_register_pmi_handler oemcall
    [IA64] Stop bit for brl instruction
    [IA64] SN: Correct ROM resource length for BIOS copy
    [IA64] Don't set psr.ic and psr.i simultaneously

    Linus Torvalds
     
  • * master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6: (34 commits)
    PCI: Only build PCI syscalls on architectures that want them
    PCI: limit pci_get_bus_and_slot to domain 0
    PCI: hotplug: acpiphp: avoid acpiphp "cannot get bridge info" PCI hotplug failure
    PCI: hotplug: acpiphp: remove hot plug parameter write to PCI host bridge
    PCI: hotplug: acpiphp: fix slot poweroff problem on systems without _PS3
    PCI: hotplug: pciehp: wait for 1 second after power off slot
    PCI: pci_set_power_state(): check for PM capabilities earlier
    PCI: cpci_hotplug: Convert to use the kthread API
    PCI: add pci_try_set_mwi
    PCI: pcie: remove SPIN_LOCK_UNLOCKED
    PCI: ROUND_UP macro cleanup in drivers/pci
    PCI: remove pci_dac_dma_... APIs
    PCI: pci-x-pci-express-read-control-interfaces cleanups
    PCI: Fix typo in include/linux/pci.h
    PCI: pci_ids, remove double or more empty lines
    PCI: pci_ids, add atheros and 3com_2 vendors
    PCI: pci_ids, reorder some entries
    PCI: i386: traps, change VENDOR to DEVICE
    PCI: ATM: lanai, change VENDOR to DEVICE
    PCI: Change all drivers to use pci_device->revision
    ...

    Linus Torvalds
     
  • * master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6: (61 commits)
    sysfs: add parameter "struct bin_attribute *" in .read/.write methods for sysfs binary attributes
    sysfs: make directory dentries and inodes reclaimable
    sysfs: implement sysfs_get_dentry()
    sysfs: move sysfs_drop_dentry() to dir.c and make it static
    sysfs: restructure add/remove paths and fix inode update
    sysfs: use sysfs_mutex to protect the sysfs_dirent tree
    sysfs: consolidate sysfs spinlocks
    sysfs: make kobj point to sysfs_dirent instead of dentry
    sysfs: implement sysfs_find_dirent() and sysfs_get_dirent()
    sysfs: implement SYSFS_FLAG_REMOVED flag
    sysfs: rename sysfs_dirent->s_type to s_flags and make room for flags
    sysfs: make sysfs_drop_dentry() access inodes using ilookup()
    sysfs: Fix oops in sysfs_drop_dentry on x86_64
    sysfs: use singly-linked list for sysfs_dirent tree
    sysfs: slim down sysfs_dirent->s_active
    sysfs: move s_active functions to fs/sysfs/dir.c
    sysfs: fix root sysfs_dirent -> root dentry association
    sysfs: use iget_locked() instead of new_inode()
    sysfs: reorganize sysfs_new_indoe() and sysfs_create()
    sysfs: fix parent refcounting during rename and move
    ...

    Linus Torvalds
     
  • * 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev: (21 commits)
    libata: remove irq_on from ata_bus_reset() and ata_std_postreset()
    ata_piix: kill incorrect invalid map value warning
    libata: add another Maxtor drive with broken NCQ to the list
    [libata] sata_mv: Fix and clean up per-chip-generation tests
    [libata] sata_mv: Convert to new exception handling (EH) infrastructure
    [libata] sata_mv: minor bug fixes, enhancements, and cleanups (prep for new EH)
    [libata] sata_mv: Minor cleanups and renaming, preparing for new EH & NCQ
    libata-link: add PMP related ATA constants
    libata-link: separate out ata_eh_handle_dev_fail()
    pata_hpt3x3: fix DMA Kconfig option to actually have a hope of working
    Add Hitachi HDS7250SASUN500G 0621KTAWSD to NCQ blacklist
    pata_scc.c: Workaround for errata A308
    libata: add FUJITSU MHV2080BH to NCQ blacklist
    pata_hpt3x3: major reworking and testing
    libata: clean up horkage handling
    libata: quirk IOMEGA ZIP 250 ATAPI FLOPPY
    libata: simplify PCI legacy SFF host handling
    pata_mpc52xx: suspend/resume support
    sata_promise: SATA hotplug support, take 2
    pata_sis: FIFO whack
    ...

    Linus Torvalds
     
  • * 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: (183 commits)
    [TG3]: Update version to 3.78.
    [TG3]: Add missing NVRAM strapping.
    [TG3]: Enable auto MDI.
    [TG3]: Fix the polarity bit.
    [TG3]: Fix irq_sync race condition.
    [NET_SCHED]: ematch: module autoloading
    [TCP]: tcp probe wraparound handling and other changes
    [RTNETLINK]: rtnl_link: allow specifying initial device address
    [RTNETLINK]: rtnl_link API simplification
    [VLAN]: Fix MAC address handling
    [ETH]: Validate address in eth_mac_addr
    [NET]: Fix races in net_rx_action vs netpoll.
    [AF_UNIX]: Rewrite garbage collector, fixes race.
    [NETFILTER]: {ip, nf}_conntrack_sctp: fix remotely triggerable NULL ptr dereference (CVE-2007-2876)
    [NET]: Make all initialized struct seq_operations const.
    [UDP]: Fix length check.
    [IPV6]: Remove unneeded pointer idev from addrconf_cleanup().
    [DECNET]: Another unnecessary net/tcp.h inclusion in net/dn.h
    [IPV6]: Make IPV6_{RECV,2292}RTHDR boolean options.
    [IPV6]: Do not send RH0 anymore.
    ...

    Fixed up trivial conflict in Documentation/feature-removal-schedule.txt
    manually.

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • Russell King
     
  • The RTC library code contains everything necessary to set the
    system time from the RTC; for similar reasons as the previous
    commit, it's far better to let the RTC library code sort this
    out rather than implement something which might not be
    appropriate for everyone.

    Signed-off-by: Russell King

    Russell King
     
  • Remove the RTC management over a suspend/resume cycle. As per the
    corresponding PXA patch, the RTC library code handles updating
    system time on resume.

    Signed-off-by: Russell King

    Russell King
     
  • * 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus:
    [MIPS] Rename PC speaker code
    [MIPS] Don't use genrtc.
    [MIPS] Remove unused time.c for swarm
    [MIPS] Sparse: Use NULL for pointer
    [MIPS] Fix a sparse warning in arch/mips/pci/pci.c
    [MIPS] SMTC: Interrupt mask backstop hack
    [MIPS] separate platform_device registration for VR41xx RTC
    [MIPS] Separate platform_device registration for VR41xx GPIO
    [MIPS] MIPSsim: Fix build.
    [MIPS] separate platform_device registration for VR41xx serial interface
    [MIPS] Include cacheflush.h in uncache.c
    [MIPS] Cleanup tlbdebug.h
    [MIPS] Change names of local variables to silence sparse (part 2)
    [MIPS] Workaround for a sparse warning in include/asm-mips/io.h
    [MIPS] RM: Use only phyiscal address for 82596 and 53c710
    [MIPS] Hydrogen3: Remove remaining bits of code.
    [MIPS] DEC: Fix modpost warning.
    Revert "[MIPS] DEC: Fix modpost warning."
    [MIPS] Fix resume for 64K page size on R4000 class processors.

    Linus Torvalds
     
  • * master.kernel.org:/pub/scm/linux/kernel/git/cooloney/blackfin-2.6: (30 commits)
    Blackfin serial driver: supporting BF548-EZKIT serial port
    Video Console: Blackfin doesnt support VGA console
    Blackfin arch: Add peripheral io API to gpio header file
    Blackfin arch: set up gpio interrupt IRQ_PJ9 for BF54x ATAPI PATA driver
    Blackfin arch: add missing CONFIG_LARGE_ALLOCS when upstream merging
    Blackfin arch: as pointed out by Robert P. J. Day, update the CPU_FREQ name to match current Kconfig
    Blackfin arch: extract the entry point from the linked kernel
    Blackfin arch: clean up some coding style issues
    Blackfin arch: combine the common code of free_initrd_mem and free_initmem
    Blackfin arch: Add Support for Peripheral PortMux and resouce allocation
    Blackfin arch: use PAGE_SIZE when doing aligns rather than hardcoded values
    Blackfin arch: fix bug set dma_address properly in dma_map_sg
    Blackfin arch: Disable CACHELINE_ALIGNED_L1 for BF54x by default
    Blackfin arch: Port the dm9000 driver to Blackfin by using the correct low-level io routines
    Blackfin arch: There is no CDPRIO Bit in the EBIU_AMGCTL Register of BF54x arch
    Blackfin arch: scrub dead code
    Blackfin arch: Fix Warning add some defines in BF54x header file
    Blackfin arch: add BF54x missing GPIO access functions
    Blackfin arch: Some memory and code optimizations - Fix SYS_IRQS
    Blackfin arch: Enable BF54x PIN/GPIO interrupts
    ...

    Linus Torvalds
     
  • * 'i2c-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6: (26 commits)
    i2c-rpx: Remove
    i2c-mpc: work around missing-9th-clock-pulse bug
    i2c: New PMC MSP71xx TWI bus driver
    i2c-savage4: Delete many unused defines
    i2c/tsl2550: Speed up initialization
    i2c: New bus driver for the TAOS evaluation modules
    i2c-i801: Use the internal 32-byte buffer on ICH4+
    i2c-i801: Various cleanups
    i2c: Add support for the TSL2550
    i2c-pxa: Support new-style I2C drivers
    i2c-gpio: Make some internal functions static
    i2c-gpio: Add support for new-style clients
    i2c-iop3xx: Switch to static adapter numbering
    i2c-sis5595: Resolve resource conflict with sis5595
    matroxfb: Clean-up i2c header inclusions
    i2c-nforce2: Add support for SMBus block transactions
    i2c-mpc: Use i2c_add_numbered_adapter
    i2c-mv64xxx: Use i2c_add_numbered_adapter
    i2c-piix4: Add support for the ATI SB700
    i2c: New DS1682 chip driver
    ...

    Linus Torvalds
     
  • It seems irq_on() in ata_bus_reset() and ata_std_postreset()
    are leftover of the EDD reset. Remove them.

    Signed-off-by: Albert Lee
    Signed-off-by: Jeff Garzik

    Albert Lee
     
  • The last two slots of MAP 00b of ich6m was incorrectly marked as
    reserved. This is left over from converting the entry to allow 00b.
    This causes no real problem. It only makes the driver print annoying
    warning message. Fix it.

    [patch also proferred by Pierre Tardy at the end of 2006 -jg]

    Signed-off-by: Tejun Heo
    --
    drivers/ata/ata_piix.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)
    Signed-off-by: Jeff Garzik

    Tejun Heo
     
  • Add another Maxtor 6B200M0 drive with broken NCQ to the list.

    Signed-off-by: Chuck Ebbert
    Signed-off-by: Jeff Garzik

    Chuck Ebbert
     
  • Due to a mistake in test logic, Gen-IIE chips were being treated as
    Gen-II chips in some cases. Fix this, and in the process, clean up
    IS_50XX/IS_60XX tests to the more uniform IS_GEN_{I,II,IIE} tests.

    Signed-off-by: Jeff Garzik

    Jeff Garzik
     
  • This makes hotplug, NCQ, etc. possible, and removes one of the few
    remaining old-EH drivers.

    Signed-off-by: Jeff Garzik

    Jeff Garzik
     
  • * Continue replacing "CONSTANT & var" tests with "var & CONSTANT"
    * Don't clear EDMA_CFG_NCQ_GO_ON_ERR on Gen-IIE, where that bit does
    not exist
    * Set I/O Id field in descriptor, where present. Appears to work
    fine on all versions, even though queueing is still disabled.
    * call pci_set_mwi(), to (a) make sure cacheline size is set properly,
    and (b) enable MWI transactions
    * Remove never-used handling of coalescing interrupt bits (these events
    are always masked)

    Signed-off-by: Jeff Garzik

    Jeff Garzik
     
  • This removes the old i386 setup code. This is done as a separate patch
    to avoid breaking git bisect as some of the i386 code was also used by
    the old x86-64 code.

    Signed-off-by: H. Peter Anvin
    Signed-off-by: Linus Torvalds

    H. Peter Anvin
     
  • This unifies arch/*/boot (except arch/*/boot/compressed) between
    i386 and x86-64, and uses the new x86 setup code for x86-64 as well.

    Signed-off-by: H. Peter Anvin
    Signed-off-by: Linus Torvalds

    H. Peter Anvin
     
  • This patch hooks the new x86 setup code into the Makefile machinery. It
    also adapts boot/tools/build.c to a two-file (as opposed to three-file)
    universe, and simplifies it substantially.

    Signed-off-by: H. Peter Anvin
    Signed-off-by: Linus Torvalds

    H. Peter Anvin
     
  • Linker script to define the layout of the new x86 setup code.
    Includes assert for size overflow and a misaligned setup header.

    Signed-off-by: H. Peter Anvin
    Signed-off-by: Linus Torvalds

    H. Peter Anvin