aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
* [SCSI] iscsi: fix up iscsi printk prefixMike Christie2008-02-07
| | | | | | | | | | | | Some iscsi class messages have the dev_printk prefix and some libiscsi and iscsi_tcp messages have "iscsi" or the module name as a prefix which is normally pretty useless when trying to figure out which session or connection the message is attached to. This patch adds iscsi lib and class dev_printks so all messages have a common prefix that can be used to figure out which object printed it. Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
* [SCSI] iscsi class: fix iscsi conn attr counterMike Christie2008-02-07
| | | | | | | | | There are 13 iscsi conn attrs, but since the IF/OF markers were not being used we did not notice that we forgot to increment the ISCSI_CONN_ATTRS counter. Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
* [SCSI] libiscsi: fix setting of nop timerMike Christie2008-02-07
| | | | | | | | If we rollover then we could get a next_timeout of zero, so we need to set the new timer to that value. Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
* [SCSI] qla4xxx: add async scan supportMike Christie2008-02-07
| | | | | | | | | | | | | | | | qla4xxx has the old school startup/probe where it finds presetup sessions in its flash and then attempts to log into them before returning from the probe. This however, makes it very simple to add a iscsi class scan finished helper which the driver can use. In future patches Dave or I will rip apart the driver to make it more like qla2xxx, but for now this is a very simple two line patch which fixes the problem of trying to figure out when the initial sessions are done being scanned. Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Cc: David Somayajulu <david.somayajulu@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
* [SCSI] iscsi class: add async scan helperMike Christie2008-02-07
| | | | | | | | | | In qla4xxx's probe it will call the iscsi session setup functions for session that got setup on the initial start. This then makes it easy for the iscsi class to export a helper which indicates when those scans are done. Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
* [SCSI] qla4xxx: fix recovery timer and session unblock raceMike Christie2008-02-07
| | | | | | | | | | | If qla4xxx is resetting up a session and the recovery timer fires we do not want to just set it to dead, because the dpc thread could have just set it to online and is in the middle of resetting it up. Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Cc: David Somayajulu <david.somayajulu@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
* [SCSI] iscsi class: add session scanningMike Christie2008-02-07
| | | | | | | | | | | This just adds iscsi session scanning which works like fc rport scanning. The future patches will hook the drivers into Mathew Wilcox's async scanning infrastructure, so userspace does not have to special case iscsi and so userspace does not have to make a extra special case for hardware iscsi root scanning. Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
* [SCSI] qla4xxx: use iscsi class session state check readyMike Christie2008-02-07
| | | | | | | | | | This has qla4xxx use the iscsi class's check ready function in the queue command function, so all iscsi drivers return the same error value for common problems. Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Cc: David Somayajulu <david.somayajulu@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
* [SCSI] qla4xxx: directly call iscsi recovery functionsMike Christie2008-02-07
| | | | | | | | | | | | | | | | Qla4xxx can just call the iscsi recovery functions directly. There is no need for userspace to do this for qla4xxx, because we do not use the mutex to iterate over devices anymore and iscsi_block /unblock_session can be called from interrupt context or the dpc thread. And having userspace do this just creates uneeded headaches for qla4xxx root situations where the session may experience problems. For example during the kernel shutdown the scsi layer wants to send sync caches, but at this time userspace is not up (iscsid is not running), so we cannot recover from the problem. Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Cc: David Somayajulu <david.somayajulu@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
* [SCSI] iscsi class, libiscsi: add iscsi sysfs session state fileMike Christie2008-02-07
| | | | | | | | | This adds a iscsi session state file which exports the session state for both software and hardware iscsi. It also hooks libiscsi in. Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
* [SCSI] arm: convert to accessors and !use_sg cleanupBoaz Harrosh2008-02-07
| | | | | | | | - convert to accessors and !use_sg cleanup Signed-off-by: Boaz Harrosh <bharrosh@panasas.com> Tested-by: Russell King <rmk@arm.linux.org.uk> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
* [SCSI] mca_53c9x: remove driverJames Bottomley2008-02-07
| | | | | | | | This driver depends on the deprecated NCR53C9X core and needs to be converted to the esp_scsi core. Acked-by: Boaz Harrosh <bharrosh@panasas.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
* [SCSI] sym53c8xx: fix resid calculationTony Battersby2008-02-07
| | | | | | | | | | This patch fixes the calculation of the data transfer residual for the case of a command that is supposed to transfer an odd number of bytes on a wide bus but transfers nothing instead. Signed-off-by: Tony Battersby <tonyb@cybernetics.com> Cc: Matthew Wilcox <matthew@wil.cx> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
* [SCSI] ps3rom: sector size should be 512 bytesAegis Lin2008-02-07
| | | | | | | | | | | | It should be desired that 64 KiB is available for ATAPI transferrring. (Historically) in SCSI/block layer sector size is defined as 512 during sector-byte calculation. Originally in ps3rom.c CD_FRAMESIZE (2048) was used, which limited /sys/block/sr0/queue/max_sectors_kb to 16 KiB (32 sectors). Signed-off-by: Aegis Lin <aegislin@gmail.com> Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
* [SCSI] sun3x_esp: convert to esp_scsiThomas Bogendoerfer2008-02-07
| | | | | | | Converted sun3x_esp driver to use esp_scsi.c Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
* [SCSI] libiscsi: make __iscsi_complete_pdu() staticAdrian Bunk2008-02-07
| | | | | | | | __iscsi_complete_pdu() can now become static. Signed-off-by: Adrian Bunk <bunk@kernel.org> Acked-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
* [SCSI] aacraid: fib context lock for management ioctls (take 2)Salyzyn, Mark2008-02-07
| | | | | | | | | | | | The first patch (a119ee8ee3045bf559d4cf02d72b112f3de2a15b) was a bit too aggressive and nested the locks (!) unit testing was in error. This patch was reverted by 203a512f0976e8ba85df36d76b40af6c80239121. This new patch should fix the locks correctly. Signed-off-by: Mark Salyzyn <aacraid@adaptec.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
* Merge branch 'for-linus' of ↵Linus Torvalds2008-02-07
|\ | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/shaggy/jfs-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/shaggy/jfs-2.6: BKL-removal: Implement a compat_ioctl handler for JFS BKL-removal: Use unlocked_ioctl for jfs
| * BKL-removal: Implement a compat_ioctl handler for JFSAndi Kleen2008-02-07
| | | | | | | | | | | | | | | | The ioctls were already compatible except for the actual values so this was fairly easy to do. Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Dave Kleikamp <shaggy@linux.vnet.ibm.com>
| * BKL-removal: Use unlocked_ioctl for jfsAndi Kleen2008-02-07
| | | | | | | | | | | | | | | | | | Convert jfs_ioctl over to not use the BKL. The only potential race I could see was with two ioctls in parallel changing the flags and losing the updates. Use the i_mutex to protect against this. Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Dave Kleikamp <shaggy@linux.vnet.ibm.com>
* | Merge branch 'for-linus' of ↵Linus Torvalds2008-02-07
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (34 commits) Input: i8042 - non-x86 build fix Input: pxa27x_keypad - also enable on PXA3xx Input: pxa27x_keypad - add debounce_interval to the keypad platform data Input: pxa27x_keypad - use device resources for I/O memory mapping and IRQ Input: pxa27x_keypad - enable rotary encoders and direct keys Input: pxa27x_keypad - introduce pxa27x_keypad_config() Input: pxa27x_keypad - introduce driver structure and use KEY() to define matrix keys Input: pxa27x_keypad - remove pin configuration from the driver Input: pxa27x_keypad - rename the driver (was pxa27x_keyboard) Input: constify function pointer tables (seq_operations) Input: i8042 - add Fujitsu-Siemens Amilo Pro 2010 to nomux list Input: i8042 - enable DMI quirks on x86-64 Input: i8042 - add Dritek quirk for Acer Aspire 9110 Input: add input event to APM event bridge Input: mousedev - use BIT_MASK instead of BIT Input: remove duplicate includes Input: remove cdev from input_dev structure Input: remove duplicated headers in drivers/char/keyboard.c Input: i8042 - add Dritek keyboard extension quirk Input: add Tosa keyboard driver ...
| * \ Merge branch 'pxa-keypad'Dmitry Torokhov2008-02-06
| |\ \
| | * | Input: pxa27x_keypad - also enable on PXA3xxEric Miao2008-01-31
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Eric Miao <eric.miao@marvell.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * | Input: pxa27x_keypad - add debounce_interval to the keypad platform dataEric Miao2008-01-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, only one debounce_interval is introduced for both direct and matrix keys. This is true in most cases, although the keypad controller supports different debounce for direct/matrix keys. Some platforms do require this to be tuned, instead of the default reset value of 100ms. Rotary encoder will always use zero debounce time for now to achieve certain sensitivity. Signed-off-by: Eric Miao <eric.miao@marvell.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * | Input: pxa27x_keypad - use device resources for I/O memory mapping and IRQEric Miao2008-01-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. use ioremap() for registers access, this improves the portability of the driver (e.g. same IP on different processor with different I/O memory range), and make it possible to remove those registers definition in pxa-regs.h as PXA is undergoing a clean-up of that header file 2. use device specific IRQ instead of hardcoded IRQ_KEYPAD, same reason as above 3. clean up the error handling path in _probe() 4. remove DRIVER_NAME and use pdev->name when necessary, we don't actually need a constant string literals Signed-off-by: Eric Miao <eric.miao@marvell.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * | Input: pxa27x_keypad - enable rotary encoders and direct keysEric Miao2008-01-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. Rotary encoder events can be configured either as relative events as the legacy code does or as any specified key code, this is useful on some platform which uses the rotary keys as KEY_{UP/DOWN/LEFT/RIGHT} 2. Add support for direct keys, the corresponding keycodes for each direct key can now be specified within the platform data 3. Remove the direct/rotary key detection code from the IRQ handler to dedicated functions to improve readability Signed-off-by: Eric Miao <eric.miao@marvell.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * | Input: pxa27x_keypad - introduce pxa27x_keypad_config()Eric Miao2008-01-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduce pxa27x_keypad_config() for keypad registers configuration and remove the reg_kpc, reg_kprec from platform data structure so that configurations of keypad registers can be centralized to a single function. It can also be re-used when resuming. Signed-off-by: Eric Miao <eric.miao@marvell.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * | Input: pxa27x_keypad - introduce driver structure and use KEY() to define ↵Eric Miao2008-01-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | matrix keys 1. Introduce the "struct pxa27x_keypad" structure for driver specific information, such as "struct clk", generated matrix key codes and so on 2. Use KEY() macro to define matrix keys, instead of original 8x8 map this makes definition easier with keypad where keys are sparse 3. Keep a generated array in "struct pxa27x_keypad" for fast lookup 4. Separate the matrix scan into a dedicated function for readability and report only those keys whose state has been changed, instead of report all states 5. Make use of KPAS to decide the faster path if only one key has been detected Signed-off-by: Eric Miao <eric.miao@marvell.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * | Input: pxa27x_keypad - remove pin configuration from the driverEric Miao2008-01-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The pin configurations will slowly be moved to the board specific code at initialization thus to make the driver more generic. Signed-off-by: Eric Miao <eric.miao@marvell.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * | Input: pxa27x_keypad - rename the driver (was pxa27x_keyboard)Eric Miao2008-01-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The controller should really be called keypad, and also align the naming of functions and structures to use "pxa27x_keypad" as prefix, instead of "pxakbd". Signed-off-by: Eric Miao <eric.miao@marvell.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| * | | Input: i8042 - non-x86 build fixAndrew Morton2008-02-06
| |/ / | | | | | | | | | | | | Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| * | Input: constify function pointer tables (seq_operations)Jan Engelhardt2008-01-31
| | | | | | | | | | | | | | | Signed-off-by: Jan Engelhardt <jengelh@computergmbh.de> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| * | Input: i8042 - add Fujitsu-Siemens Amilo Pro 2010 to nomux listJiri Kosina2008-01-30
| | | | | | | | | | | | | | | | | | Reported-by: Hans Aschauer <Hans.Aschauer@web.de> Signed-off-by: Jiri Kosina <jkosina@suse.cz> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| * | Input: i8042 - enable DMI quirks on x86-64Bruce Duncan2008-01-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If firmware does not implement AUX_LOOP comand in 32 bit mode it is unlikely to implement it in 64 bit mode. Same goes for active multiplexing. See: http://bugzilla.kernel.org/show_bug.cgi?id=9664 Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| * | Input: i8042 - add Dritek quirk for Acer Aspire 9110Carlos Corbacho2008-01-30
| | | | | | | | | | | | | | | | | | | | | | | | The Acer Aspire 9110 series also requires the Dritek quirk to enable the extra scancodes. Signed-off-by: Carlos Corbacho <carlos@strangeworlds.co.uk> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| * | Input: add input event to APM event bridgeRichard Purdie2008-01-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds a very simple input power event to APM user suspend event bridge. Its currently only works for the systems using the emulated APM driver but could easily be extended to work with anything with a true APM BIOS too. This covers a standard embedded system need which is to suspend when the user presses a suspend button. It leaves options open to system integrators to ignore (or unload) this code and implement their own more complex event handling system. Its hidden behind the EMBEDDED Kconfig option since its only likely to be of use to embedded style systems. It can be built as a module so the "hardcoded" policy can easily be removed from the kernel at runtime if desired too. Signed-off-by: Richard Purdie <rpurdie@rpsys.net> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| * | Input: mousedev - use BIT_MASK instead of BITDmitry Torokhov2008-01-30
| | | | | | | | | | | | Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| * | Input: remove duplicate includesAndre Haupt2008-01-21
| | | | | | | | | | | | | | | Signed-off-by: Andre Haupt <andre@bitwigglers.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| * | Input: remove cdev from input_dev structureDmitry Torokhov2008-01-21
| | | | | | | | | | | | | | | | | | | | | | | | Cdev field was obsolete and provided only for backward compatibility since conversion of input core from class devices to regular devices. It is time to remove it. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| * | Input: remove duplicated headers in drivers/char/keyboard.cFrancisco Alecrim2008-01-21
| | | | | | | | | | | | | | | | | | | | | drivers/char/keyboard.c: linux/consolemap.h is included more than once. Signed-off-by: Francisco Alecrim <francisco.alecrim@indt.org.br> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| * | Input: i8042 - add Dritek keyboard extension quirkCarlos Corbacho2008-01-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some Wistron based laptops need us to explicitly enable the 'Dritek keyboard extension' to make their extra keys start generating scancodes. Originally, this was just confined to older laptops, but a few Acer laptops have turned up in 2007 that also need this again. Signed-off-by: Carlos Corbacho <carlos@strangeworlds.co.uk> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| * | Input: add Tosa keyboard driverDmitry Baryshkov2008-01-21
| | | | | | | | | | | | | | | | | | | | | | | | Add keyboard support on tosa (Sharp Zaurus SL-6000x). Largely based on patches by Dirk Opfer. Signed-off-by: Dmitry Baryshkov <dbaryshkov@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| * | Input: add driver for Fujitsu application buttonsStephen Hemminger2008-01-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This driver supports the application buttons on some Fujitsu Lifebook laptops. It is based on the earlier apanel driver done by Jochen Eisenger, but with many changes. The original driver used ioctl's and a separate user space program (see http://apanel.sourceforge.net). This driver hooks into the input subsystem so that the normal keys act as expected without a daemon. In addition to buttons, the Mail Led is handled via LEDs class device. The driver now supports redefinable keymaps and no longer has to have a DMI table for all Fujitsu laptops. I thought about mixing this driver should be integrated into the Fujitsu laptop extras driver that handles backlight, but rejected the idea because it wasn't clear if all the Fujitsu laptops supported both. Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| * | Input: ads7846 - stop updating dev->power.power_stateDavid Brownell2008-01-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | This stops the ads7846 driver from using dev->power.power_state; that field is deprecated (overdue for removal) and the only reason to update it was to make the /sys/devices/.../power/state files (now removed) work better. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| * | Input: drop redundant includes of moduleparam.hJulia Lawall2008-01-21
| | | | | | | | | | | | | | | | | | | | | | | | Drop #include <linux/moduleparam.h> in files that also include linux/module.h, since module.h includes moduleparam.h already. Signed-off-by: Julia Lawall <julia@diku.dk> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| * | Input: fix bug in example codeSteven Whitehouse2008-01-21
| | | | | | | | | | | | | | | | | | | | | | | | The input example driver uses BTN_0 in the later stages of the example, so this changes the interrupt routine to match. Signed-off-by: Steven Whitehouse <swhiteho@redhat.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| * | Input: implement proper timer rounding for polled devicesStephen Hemminger2008-01-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rounding doesn't matter for the first tick, but we want succeeding ticks to be aligned on second boundary if poll interval is large enough. Also: cancel_rearming_delayed_workqueue is marked as obsolete in workqueue.h so use cancel_delayed_work_sync. Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org> Acked-by: Arjan van de Ven <arjan@linux.intel.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| * | V4L/DVB: Don't access input_dev->private directlyDmitry Torokhov2008-01-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | Drivers should use input_{get|set}_drvdata() instead of accessing input_dev->provate directly, but since these drivers do not actually use the data stored there we can simply remove the assignments. Signed-off-by: Dmitry Torokhov <dtor@mail.ru> Acked-by: Mauro Carvalho Chehab <mchehab@infradead.org>
| * | Input: iforce - don't access input_dev->private directlyDmitry Torokhov2008-01-21
| | | | | | | | | | | | | | | | | | input_{get|set}_drvdata() helpers should be used instead. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| * | Input: i8042 - use synchronize_irq() instead of synchronize_sched()Dmitry Torokhov2008-01-21
| | | | | | | | | | | | | | | | | | | | | | | | RT guys advised me that in their kernels synchronize_sched() will not work to ensure that all IRQ handlers run to their completion and that synchronize_irq() should be used instead. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>