aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
* USB: use function attribute __maybe_unusedDavid Rientjes2007-07-12
| | | | | | | | | | Substitute USB instances of __attribute__ ((unused)) functions with the newly introduced __maybe_unused. Signed-off-by: David Rientjes <rientjes@google.com> Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: ehci_fsl update for MPC831x supportLi Yang2007-07-12
| | | | | | | | | | | | | | For MPC831x support, change the ehci-fsl driver to preserve bits set in platform code. Add a common CONFIG_USB_EHCI_FSL to indicate presence of Freescale EHCI SOC. Add FSL_USB2_DR_OTG operating mode support, thus both host and device can work for the mini-ab receptacle. Note: this doesn't enable OTG protocol support. Signed-off-by: Li Yang <leoli@freescale.com> Cc: David Brownell <david-b@pacbell.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: Set CONFIG_USB_EHCI_BIG_ENDIAN_MMIO/_DESC in usb/host/KconfigStefan Roese2007-07-12
| | | | | | | | | | | | Now select the big-endian configuration options CONFIG_USB_EHCI_BIG_ENDIAN_MMIO and CONFIG_USB_EHCI_BIG_ENDIAN_DESC in the usb host Kconfig file and not in the platform Kconfig files. Signed-off-by: Stefan Roese <sr@denx.de> Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: EHCI big endian data structures support (for 440EPx)Stefan Roese2007-07-12
| | | | | | | | | | | This patch adds support for the AMCC 440EPx EHCI controller whose in-memory data structures and the registers are represented in big- endian format. Signed-off-by: Stefan Roese <sr@denx.de> Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: ftdi_sio.c: Allow setting latency timer on FT232RLStepan Moskovchenko2007-07-12
| | | | | | | | | | | | | The new FT232RL allows setting and getting the value of the latency timer, like on the FT232BM. However, the driver will not create the sysfs entries for the RL without this one-line patch. I have tested it on two systems with successful results. From: Stepan Moskovchenko <stevenm86@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: rework C++-style commentsAlan Stern2007-07-12
| | | | | | | | | | This patch (as911) replaces some C++-style commented-out debugging lines in driver.c with a new "verbose debugging" macro. It makes the code look cleaner, and it's easier to turn the debugging on or off. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: prevent char device open/deregister raceAlan Stern2007-07-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch (as908) adds central protection in usbcore for the prototypical race between opening and unregistering a char device. The spinlock used to protect the minor-numbers array is replaced with an rwsem, which can remain locked across a call to a driver's open() method. This guarantees that open() and deregister() will be mutually exclusive. The private locks currently used in several individual drivers for this purpose are no longer necessary, and the patch removes them. The following USB drivers are affected: usblcd, idmouse, auerswald, legousbtower, sisusbvga/sisusb, ldusb, adutux, iowarrior, and usb-skeleton. As a side effect of this change, usb_deregister_dev() must not be called while holding a lock that is acquired by open(). Unfortunately a number of drivers do this, but luckily the solution is simple: call usb_deregister_dev() before acquiring the lock. In addition to these changes (and their consequent code simplifications), the patch fixes a use-after-free bug in adutux and a race between open() and release() in iowarrior. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: hub.c loops forever on resume from ram due to bluetoothMark Lord2007-07-12
| | | | | | | | | | | | | | | Okay, found it. The root cause here was a missing CONFIG_USB_SUSPEND=y, which means the hci_usb device never got marked as USB_STATE_SUSPENDED, which then caused the loop to go on forever. The system works fine now with CONFIG_USB_SUSPEND=y in the .config. Here's the patch to prevent future lockups for this or other causes. I no longer need it, but it does still seem a good idea. Signed-off-by: Mark Lord <mlord@pobox.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: add USB_DEVICE_AND_INTERFACE_INFO for device matchingDaniel Drake2007-07-12
| | | | | | | | | | | | | | Recently, the USB device matching code stopped matching generic interface matches against devices with vendor-specific device class values. Some drivers now need to explicitly match USB device ID's (in addition to generic interface info) to retain the same behaviour as before. This new macro, suggested by Alan Stern, makes the explicit device/interface matching a little simpler for those users. Signed-off-by: Daniel Drake <dsd@gentoo.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: usb gadget, dead config cleanupDavid Brownell2007-07-12
| | | | | | | | | | | Remove some dead CONFIG_ symbols, and document the status of a few others. The "gadget_chips.h" references are by and large to drivers which exist but haven't yet been submitted for merging to the main 2.6 tree. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: RTS/CTS handshaking support, DTR fixes for MCT U232 serial adapterDave Platt2007-07-12
| | | | | | | | | | | | Improvements and fixes to the MCT U232 USB/serial interface driver. Implement RTS/CTS hardware flow control. Implement HUPCL. Bring handling of DTR and RTS into conformance with other Linux serial port drivers - assert both signals when opening device, even if "crtscts" is not currently selected. Signed-off-by: Dave Platt <dplatt@radagast.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: Patch to align the various USB timers to fire at the same timeArjan van de Ven2007-07-12
| | | | | | | | | | | | | This patch modifies the USB regular 250ms timer to be "perfectly aligned" to the second and quarters thereof. This change is there to make sure that if you have multiple USB ports, the timers for all these ports will fire at the same time rather than all spread out. All spread out wakes the CPU up from power saving idle a lot more than needed... Signed-off-by: Arjan van de Ven <arjan@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: io_ti: Digi EdgePort update for new devicesMartin K. Petersen2007-07-12
| | | | | | | | | | | This patch adds support for the most recent Digi EdgePort USB serial devices. Signed-off-by: Martin K. Petersen <mkp@mkp.net> Signed-off-by: Mike Swift <mikes@digi.com> Signed-off-by: Jeremy McBane <jmcbane@digi.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: Make device reset stop retrying after disconnectAlan Stern2007-07-12
| | | | | | | | | | | | | This patch (as898) changes the port reset code in the hub driver. If a connect change occurs, it is reported the same way as a disconnect (which of course is what it really is). It also changes usb_reset_device(), to prevent the routine from futilely retrying the reset after a disconnect has occurred. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: EHCI: fix handover for designated full-speed portsAlan Stern2007-07-12
| | | | | | | | | | | | This patch (as895) fixes up a loose end in the port-handover code for the USB-Persist facility. A special case occurs when a high-speed device is attached to a port which the user has designated to run at full-speed only; the port must be disabled before the handover can take place. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: add RESET_RESUME device quirkAlan Stern2007-07-12
| | | | | | | | | | | | This patch (as888) adds a new USB device quirk for devices which are unable to resume correctly. By using the new code added for the USB-persist facility, it is a simple matter to reset these devices instead of resuming them. To get things kicked off, a quirk entry is added for the Philips PSC805. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: EHCI, OHCI: handover changesAlan Stern2007-07-12
| | | | | | | | | | | | | | | | | | | This patch (as887) changes the way ehci-hcd and ohci-hcd handle a loss of VBUS power during suspend. In order for the USB-persist facility to work correctly, it is necessary for low- and full-speed devices attached to a high-speed port to be handed back to the companion controller during resume processing. This entails three changes: adding code to ehci-hcd to perform the handover, removing code from ohci-hcd to turn off ports during root-hub reinit, and adding code to ohci-hcd to turn on ports during PCI controller resume. (Other bus glue resume methods for platforms supporting high-speed controllers would need a similar change, if any existed.) Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: add USB-Persist facilityAlan Stern2007-07-12
| | | | | | | | | | | | | | | | | This patch (as886) adds the controversial USB-persist facility, allowing USB devices to persist across a power loss during system suspend. The facility is controlled by a new Kconfig option (with appropriate warnings about the potential dangers); when the option is off the behavior will remain the same as it is now. But when the option is on, people will be able to use suspend-to-disk and keep their USB filesystems intact -- something particularly valuable for small machines where the root filesystem is on a USB device! Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* usbmon: Add class for binary interfacePete Zaitcev2007-07-12
| | | | | | | | | | | | | | | | Add a class which allows for an easier integration with udev. This code was originally written by Paolo Abeni, and arrived to my tree as a part of big patch to add binary API on December 18. As I understand, Paolo always meant the class to be a part of the whole thing. This is his udev rule to go along with the patch: KERNEL=="usbmon[0-9]*", NAME="usbmon%n", MODE="0440",OWNER="root",GROUP="bin" Signed-off-by: Pete Zaitcev <zaitcev@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: oti6858 usb-serial driver (in Nokia CA-42 cable)Kees Lemmens2007-07-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Last week I've been searching for a driver for the CA-42 cable (see usb below) that fitted my kernel 2.6.20. I only found an abandoned version for a driver on your website that indeed worked on 2.6.18 but wouldn't even compile with a more recent 2.6.20 kernel. I fiddled 2 evenings with the kernel code and have patched it up now to work with the modifications in the 2.6.20 kernel. The patch is attached hereafter and it works fine (at least for me :-) ). Bus 2 Device 13: ID 0ea0:6858 Ours Technology, Inc. I had to fiddle a little with the settings in .gnokiirc but that also occurred with the older 2.6.18 kernel. Nevertheless, on one system with this cable and my Nokia 6070 I had best results with : model = 6510 connection = dku5 while on an other system with the same kernel, cable and phone it only worked with : model = AT connection = serial serial_write_usleep = 1 From: Kees Lemmens <C.W.J.Lemmens@ewi.tudelft.nl> Cc: <pawel.kot@gmail.com> Cc: <bozo@andrews.hu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: ehci refcounts work on ppc7448David Brownell2007-07-12
| | | | | | | | | | | | Remove atomic operations on the reference counter for EHCI queue heads. On various platforms (including ppc7448), atomic operations are unusable with dma-coherent memory. Signed-off-by: Steven J. Hill <sjhill1@rockwellcollins.com> Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: Use menuconfig objectsJan Engelhardt2007-07-12
| | | | | | | | | | | Make a "menuconfig" out of the Kconfig objects "menu, ..., endmenu", so that the user can disable all the options in that menu at once instead of having to disable each option separately. Signed-off-by: Jan Engelhardt <jengelh@gmx.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: make hub driver's release more robustAlan Stern2007-07-12
| | | | | | | | | | | | This revised patch (as893c) improves the method used by the hub driver to release its private data structure. The current code is non-robust, relying on a memory region not getting reused by another driver after it has been freed. The patch adds a reference count to the structure, resolving the question of when to release it. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: remove "locktree" routine from the hub driverAlan Stern2007-07-12
| | | | | | | | | | This patch (as892) removes the "locktree" routine from the hub driver. It currently is used in only one place, by a single kernel thread; hence it isn't doing any good. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: remove references to dev.power.power_stateAlan Stern2007-07-12
| | | | | | | | | | | | This revised patch (as891b) removes two unnecessary references to intf->dev.power.power_state from usb-storage, and replaces a reference to root_hub->dev.power.power_state with a check of hcd->state. This is in preparation for the removal of dev.power.power_state, which is already deprecated. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: don't unsuspend for a new connectionAlan Stern2007-07-12
| | | | | | | | | | | | This patch (as889) prevents the hub driver from trying to resume a port when there is a new connection. For one thing, the resume is not needed -- the upcoming port reset will clear the suspend feature automatically. For another, on some systems the resume fails and causes problems. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: move bus_suspend and bus_resume method callsAlan Stern2007-07-12
| | | | | | | | | | | | | | | | | | | | | | | | | This patch (as885) moves the root-hub bus_suspend() and bus_resume() method calls from the hub driver's suspend and resume methods into the usb_generic driver methods, where they make just as much sense. Their old locations were not fully correct. For example, in a kernel compiled without CONFIG_USB_SUSPEND, if one were to do: echo -n 1-0:1.0 >/sys/bus/usb/drivers/hub/unbind to unbind the hub driver from a root hub, there would then be no way to suspend that root hub. Attempts to put the system to sleep would fail; the USB controller driver would refuse to suspend because the root hub was still active. The patch also makes a very slight change in the way devices with no driver are handled during suspend. Rather than doing a standard USB port-suspend directly, now the suspend routine in usb_generic is called. In practice this should never affect anyone. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: Implement PM FREEZE and PRETHAWAlan Stern2007-07-12
| | | | | | | | | | | | | This patch (as884) finally implements the time-saving semantics possible with the Power Management FREEZE and PRETHAW events. Their proper handling requires only that devices be quiesced, with interrupts and DMA turned off; non-root USB devices don't actually need to be put in a suspended state. The patch checks and avoids doing the suspend call when possible. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: interface PM stateAlan Stern2007-07-12
| | | | | | | | | | This patch (as880) strives to keep the PM core's idea of a USB interface's power state in synch with usbcore's own idea. In the end this doesn't really matter, but it's better to be consistent. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: r8a66597-hcd: fix NULL accessYoshihiro Shimoda2007-07-12
| | | | | | | | | This patch fixes the problem that accesses NULL pointer when disconnected a cable while play music with usb-speaker. Signed-off-by: Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: r8a66597-hcd: host controller driver for R8A66597Yoshihiro Shimoda2007-07-12
| | | | | | | | | | | | | | | | | | | | | | | I would like to submit Renesas R8A66597 USB HCD driver. R8A66597 is Renesas USB 2.0 host and peripheral combined controller device originally designed for embedded products. As a limitation of this device, it does not support externel hub more than 2 tier, and cannot communicate with a USB device more than 10. Then this device is not compatible with EHCI and/or OHCI, I wrote driver support patch based on sl811 code. This driver has the following unique specifications: - Implement transfer timeout to share one pipe with plural endpoint. - Detach detection of a USB device connected to externel hub. The driver has been tested external hub, usb-hdd, usb-cdrom, usb-speaker, mice, keyboard, and usbtest driver. Signed-off-by : Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: m66592-udc: fix use old interrupt flagsYoshihiro Shimoda2007-07-12
| | | | | | | | This patch fixes the problem that used SA_* flags. Signed-off-by: Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: m66592-udc: peripheral controller driver for M66592Yoshihiro Shimoda2007-07-12
| | | | | | | | | | | | | | I would like to submit Renesas M66592 udc driver. The M66592 is Renesas USB 2.0 peripheral controller. This controller supports USB high-speed. The driver has been tested Gadget Zero, Ethernet Gadget, File-backed Storage Gadget, and passed usbtest script. Signed-off-by : Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB Serial Keyspan: add support for USA-49WG & USA-28XGLucy McCoy2007-07-12
| | | | | | | | | Add support for Keyspan adapters: USA-49WG and USA-28XG Signed-off-by: Lucy P. McCoy <lucy@keyspan.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: cxacru: Cleanup sysfs attribute codeSimon Arlott2007-07-12
| | | | | | | | | | | | | This changes the format of unknown status values to be less verbose and uses an array instead of several different snprintf calls. Since only enum values are assigned to it, poll_state is changed from int to enum. Use abs() for dB values instead of two almost identical return lines. Signed-off-by: Simon Arlott <simon@fire.lp0.eu> Acked-by: Duncan Sands <duncan.sands@math.u-psud.fr> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: EHCI support for big-endian descriptorsStefan Roese2007-07-12
| | | | | | | | | | | | | | | | | | | | | | | | | | This patch implements supports for EHCI controllers whose in-memory data structures are represented in big-endian format. This is needed (unfortunately) for the AMCC PPC440EPx SoC EHCI controller; the EHCI spec doesn't specify little-endian format, although that's what most other implementations use. The guts of the patch are to introduce the hc32 type and change all references from le32 to hc32. All access routines are converted from cpu_to_le32(...) to cpu_to_hc32(ehci, ...) and similar for the other "direction". (This is the same approach used with OHCI.) David fixed: Whitespace fixes; refresh against ehci cpufreq patch; move glue for that PPC driver to the patch adding it; fix free symbol capture bugs in modified "constant" macros; and make "hc32" etc be "le32" unless we really need the BE options, so "sparse" can do some real good. Signed-off-by: Stefan Roese <sr@denx.de> Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: EHCI cpufreq fixStuart_Hayes@Dell.com2007-07-12
| | | | | | | | | | | | | | | | | EHCI controllers that don't cache enough microframes can get MMF errors when CPU frequency changes occur between the start and completion of split interrupt transactions, due to delays in reading main memory (caused by CPU cache snoop delays). This patch adds a cpufreq notifier to the EHCI driver that will inactivate split interrupt transactions during frequency transitions. It was tested on Intel ICH7 and Serverworks/Broadcom HT1000 EHCI controllers. Signed-off-by: Stuart Hayes <stuart_hayes@dell.com> Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: suspend support for usb serialOliver Neukum2007-07-12
| | | | | | | | this implements generic support for suspend/resume for usb serial. Signed-off-by: Oliver Neukum <oneukum@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* dm mpath: rdacChandra Seetharaman2007-07-12
| | | | | | | | | | | | | | | | | 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 <sekharan@us.ibm.com> Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: Alasdair G Kergon <agk@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* dm raid1: handle log failureJonathan Brassow2007-07-12
| | | | | | | | | | | | | | | | | | | | 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 <jbrassow@redhat.com> Signed-off-by: Alasdair G Kergon <agk@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* dm raid1: handle resync failuresJonathan Brassow2007-07-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <jbrassow@redhat.com> Signed-off-by: Alasdair G Kergon <agk@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* dm: add ratelimit logging macrosJonathan Brassow2007-07-12
| | | | | | | | Add ratelimit extension to dm logging macros. Signed-off-by: Jonathan Brassow <jbrassow@redhat.com> Signed-off-by: Alasdair G Kergon <agk@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* dm: disable barriersStefan Bader2007-07-12
| | | | | | | | | | | | | 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 <shbader@de.ibm.com> Signed-off-by: Alasdair G Kergon <agk@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* dm raid1: clear region outside spinlockJonathan Brassow2007-07-12
| | | | | | | | | | | | | | | | | | | | | | 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 <jbrassow@redhat.com> Signed-off-by: Alasdair G Kergon <agk@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* dm snapshot: permit invalid activationMilan Broz2007-07-12
| | | | | | | | | | | | | 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 <mbroz@redhat.com> Signed-off-by: Alasdair G Kergon <agk@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* dm snapshot: fix invalidation deadlockMilan Broz2007-07-12
| | | | | | | | | | | | | | 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 <mbroz@redhat.com> Signed-off-by: Alasdair G Kergon <agk@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* dm io: fix panic on large requestJun'ichi Nomura2007-07-12
| | | | | | | | | | 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" <j-nomura@ce.jp.nec.com> Signed-off-by: Alasdair G Kergon <agk@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* dm raid1: fix statusMilan Broz2007-07-12
| | | | | | | | | | | | 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 <mbroz@redhat.com> Signed-off-by: Alasdair G Kergon <agk@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* dm: remove duplicate module name from error msgsAlasdair G Kergon2007-07-12
| | | | | | | | Remove explicit module name from messages as the macro now includes it automatically. Signed-off-by: Alasdair G Kergon <agk@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* dm delay: cleanupAlasdair G Kergon2007-07-12
| | | | | | | | Use setup_timer(). Replace semaphore with mutex. Signed-off-by: Alasdair G Kergon <agk@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>