summaryrefslogtreecommitdiffstats
path: root/drivers
Commit message (Collapse)AuthorAgeFilesLines
* Merge master.kernel.org:/pub/scm/linux/kernel/git/bart/ide-2.6Linus Torvalds2005-11-1813-340/+140
|\
| * [PATCH] ide: fix ide_toggle_bounce() to not try to bounce if we have an IOMMUJames Bottomley2005-11-181-4/+4
| | | | | | | | | | | | | | | | | | | | The following patch fixes a crash caused by attempting to bounce buffer when an IDE CD-ROM is used on a machine with an IO-MMU. [At least, this patch fixes things so I can use my IDE CD-ROM behind an ns87415 on a HP PA-RISC workstation.] Signed-off-by: James Bottomley <jejb@parisc-linux.org> Signed-off-by: Kyle McMartin <kyle@parisc-linux.org> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * [PATCH] ide: make comment match realityRalf Baechle2005-11-181-1/+1
| | | | | | | | Signed-off-by: Ralf Baechle <ralf@linux-mips.org> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * [PATCH] cs5520: fix return value of cs5520_init_one()Amit Gud2005-11-181-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | From: Amit Gud <amitg@calsoftinc.com> Patch follows from the suggestions by AC and Felipe W Damasio for fixing the return codes from IDE drivers. [ bart: fix coding style while at it ] Signed-off-by: Amit Gud <gud@eth.net> Signed-off-by: Domen Puncer <domen@coderock.org> Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * [PATCH] siimage: docs urlsJeff Garzik2005-11-181-1/+7
| | | | | | | | Signed-off-by: Jeff Garzik <jgarzik@pobox.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * [PATCH] aec62xxx: remove all dead (#if0'd) codeThibaut VARENE2005-11-181-47/+0
| | | | | | | | Signed-off-by: Thibaut VARENE <varenet@parisc-linux.org> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * [PATCH] pmac IDE: don't release empty interfacesThibaut VARENE2005-11-181-14/+0
| | | | | | | | | | | | | | | | | | | | | | | | From: Thibaut VARENE <T-Bone@parisc-linux.org> Cleaning up the hwif without knowing its previous state in pmac.c is a big and potentially dangerous job, and there seems to be no generic code interface that would provide either a way to properly release an hwif or to clean it up. Fixes OOPS for empty PMAC interface and add-on PCI controller. Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * [PATCH] alim15x3: use KERN_WARNINGAlexey Dobriyan2005-11-181-1/+1
| | | | | | | | Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * [PATCH] alim15x3: replace pci_find_device() with pci_dev_present()Hanna Linder2005-11-181-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | From: Hanna Linder <hannal@us.ibm.com> The dev returned from pci_find_device() was not used so it can be replaced with pci_dev_present(). Compile tested. Signed-off-by: Hanna Linder <hannal@us.ibm.com> Signed-off-by: Maximilian Attems <janitor@sternwelten.at> Signed-off-by: Domen Puncer <domen@coderock.org> Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * [PATCH] ide: remove ide_driver_t.owner fieldLaurent Riffard2005-11-185-5/+5
| | | | | | | | | | | | | | | | | | The structure ide_driver_t have a .owner field which is a duplicate of .gendriver.owner field (.gen_driver is a struct device_driver). This patch removes ide_driver_t's owner field. Signed-off-by: Laurent Riffard <laurent.riffard@free.fr> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * [PATCH] via82cxxx IDE: support multiple controllersDaniel Drake2005-11-181-78/+117
| | | | | | | | | | | | | | | | Support multiple controllers in the via82cxxx IDE driver. Cable detection and ISA bridge finding have been moved into their own functions. Signed-off-by: Daniel Drake <dsd@gentoo.org> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * [PATCH] via82cxxx IDE: remove /proc/via entryDaniel Drake2005-11-181-188/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This entry adds needless complication to the driver as it requires the use of global variables to be passed into via_get_info(), making things quite ugly when we try and make this driver support multiple controllers simultaneously. This patch removes /proc/via for simplicity. On 10/13/05, Daniel Drake <dsd@gentoo.org> wrote: > Per Bart's suggestion, I've created a user-space app which shows identical > data (and doesn't even rely on the via82cxxx IDE driver). > > http://www.reactivated.net/software/viaideinfo/ > > So, I think we should be clear to drop /proc/ide/via now. Signed-off-by: Daniel Drake <dsd@gentoo.org> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* | Merge branch 'for-linus' of ↵Linus Torvalds2005-11-184-26/+31
|\ \ | | | | | | | | | master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband
| * | IB/umad: make sure write()s have sufficient dataRoland Dreier2005-11-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make sure that userspace passes in enough data when sending a MAD. We always copy at least sizeof (struct ib_user_mad) + IB_MGMT_RMPP_HDR bytes from userspace, so anything less is definitely invalid. Also, if the length is less than this limit, it's possible for the second copy_from_user() to get a negative length and trigger a BUG(). Signed-off-by: Roland Dreier <rolandd@cisco.com>
| * | IB/mthca: Safer max_send_sge/max_recv_sge calculationMichael S. Tsirkin2005-11-181-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | Calculation of QP capabilities still isn't exactly right in mthca: max_send_sge/max_recv_sge fields returned in create_qp can exceed the handware supported limits. Signed-off-by: Michael S. Tsirkin <mst@mellanox.co.il> Signed-off-by: Roland Dreier <rolandd@cisco.com>
| * | [IB] mthca: don't disable RDMA writes if no responder resourcesRoland Dreier2005-11-151-15/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Responder resources are only required to handle RDMA reads and atomic operations, not RDMA writes. So the driver should allow RDMA writes even if responder resources are set to 0. This is especially important for the UC transport -- with the old code, it was impossible to enable RDMA writes for UC QPs. Signed-off-by: Roland Dreier <rolandd@cisco.com>
| * | [IB] srp: don't post receive if no send buf availableRoland Dreier2005-11-151-6/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Have __srp_get_tx_iu() fail if the target port's request limit will not allow the initiator to post a send. This avoids continuing on and posting a receive, and then failing to post a corresponding send. If that happens, then the initiator will end up with an extra receive posted, and if this happens to much, the receive queue will overflow. Signed-off-by: Roland Dreier <rolandd@cisco.com>
| * | [IB] srp: increase max_lunsRoland Dreier2005-11-112-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | Increase SRP max_luns to 512 to match the kernel's default, since SRP storage targets can have lots of LUNs and the SRP initiator itself doesn't have any particular limit. Signed-off-by: Roland Dreier <rolandd@cisco.com>
* | | Merge branch 'parisc' of ↵Linus Torvalds2005-11-187-32/+66
|\ \ \ | | | | | | | | | | | | master.kernel.org:/pub/scm/linux/kernel/git/kyle/parisc-2.6
| * \ \ Merge branch 'master'Kyle McMartin2005-11-1829-156/+614
| |\ \ \
| * | | | [PARISC] Mark hisax and pcbit ISDN drivers as not for pariscMatthew Wilcox2005-11-182-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These drivers do not compile on big endian systems, and parisc is big endian. Also mark some as broken on m68k as well. Signed-off-by: Matthew Wilcox <willy@parisc-linux.org> Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
| * | | | [PARISC] Mention PA-RISC in NS87415 helpMatthew Wilcox2005-11-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Mention PA-RISC in NS87415 help. PA-RISC [BCJ]xxx0 workstations come with NS87415 integrated for their CD-ROM drives. Signed-off-by: Matthew Wilcox <willy@parisc-linux.org> Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
| * | | | [PARISC] Make Serial MUX depend on a specific bus type.Matthew Wilcox2005-11-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Depend on GSC, not PARISC. Machines without GSC don't have a MUX. Signed-off-by: Matthew Wilcox <willy@parisc-linux.org> Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
| * | | | [PARISC] Make superio.c initialize before any driver needs itKyle McMartin2005-11-171-14/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Convert superio_init to use PCI_FIXUP_FINAL as ohci_pci being called before superio_probe really makes a mess. superio_init will then fail to register irq 20 (the "SuperIO" irq) and BUG() because ohci_pci has stolen it before superio_fixup_irq can be moved USB to irq 1. Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
| * | | | [PARISC] Define port->timeout to fix a long msleep in mux.cRyan Bradetich2005-11-171-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit is in response to a bug reported by Vesa on the irc channel a couple of weeks ago. The bug was that the console would apparently hang (not return) while using the mux console. The root cause of this bug is that bash (with readline support) makes a call to the tcsetattr() glibc function with the argument TCSADRAIN. This causes the serial core in the kernel use the uart_wait_until_sent() to be called. This function verifies the mux transmit queue is empty or calls the msleep_interruptable() with a calculated timeout value that is dependant upon the port->timeout variable. The real problem here is that the port->timeout was not defined so it was defaulted to 0 and the timeout calculation performs the following calculation: char_time = (port->timeout - HZ/50) / port->fifosize; where char_time is an unsigned long. Since the serial Mux does not use interrupts, the msleep_interruptable() function waits until the timeout has been reached ... and when the port->timeout < HZ/50 this timeout will be a long time. (I have validated that the console will eventually return ... but it takes quite a while for this to happen). This patch simply sets the port->timeout on the Mux to HZ/50 to avoid this long timeout period. Signed-off-by: Ryan Bradetich <rbrad@parisc-linux.org> Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
| * | | | [PARISC] Compile fixups for serial/mux.cRyan Bradetich2005-11-171-8/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch does the following: * Fixes compiler warnings. * Replaces a __raw_readl call with the existing macro. Signed-off-by: Ryan Bradetich <rbrad@parisc-linux.org> Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
| * | | | [PARISC] Add IRQ affinitiesJames Bottomley2005-11-171-1/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This really only adds them for the machines I can check SMP on, which is CPU interrupts and IOSAPIC (so not any of the GSC based machines). With this patch, irqbalanced can be used to maintain irq balancing. Unfortunately, irqbalanced is a bit x86 centric, so it doesn't do an incredibly good job, but it does work. Signed-off-by: James Bottomley <jejb@parisc-linux.org> Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
* | | | | Merge branch 'for-linus' of git://brick.kernel.dk/data/git/linux-2.6-blockLinus Torvalds2005-11-181-12/+28
|\ \ \ \ \ | |_|/ / / |/| | | |
| * | | | [PATCH 3/3] cciss: add put_disk into cleanup routinesmikem2005-11-181-9/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Jeff Garzik pointed me to his code to see how to remove a disk from the system _properly_. Well, here it is... Every place we remove disks we are now testing before calling del_gendisk or blk_cleanup_queue and then call put_disk. Signed-off-by: Mike Miller <mike.miller@hp.com> Signed-off-by: Jens Axboe <axboe@suse.de>
| * | | | [PATCH 2/3] cciss: bug fix for BIG_PASS_THRUJens Axboe2005-11-181-3/+4
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Applications using CCISS_BIG_PASSTHRU complained that the data written was zeros. The problem is that the buffer is being cleared after the user copy, unless the user copy has failed... Correct that logic. Signed-off-by: Mike Miller <mike.miller@hp.com> Signed-off-by: Jens Axboe <axboe@suse.de>
* | | | Merge branch 'upstream-fixes' of ↵Linus Torvalds2005-11-1816-61/+352
|\ \ \ \ | | | | | | | | | | | | | | | master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6
| * | | | [wireless hermes] build fixJeff Garzik2005-11-181-3/+3
| | | | |
| * | | | Merge branch 'upstream-fixes' of git://git.tuxdriver.com/git/netdev-jwlJeff Garzik2005-11-183-12/+21
| |\ \ \ \
| | * | | | [PATCH] ipw2100: Fix 'Driver using old /proc/net/wireless...' messageJames Ketrenos2005-11-182-11/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ipw2100: Fix 'Driver using old /proc/net/wireless...' message Wireless extensions moved the get_wireless_stats handler from being in net_device into wireless_handler. A prior instance of this patch resolved the issue for the ipw2200. This one fixes it for the ipw2100. Signed-off-by: Benoit Boissinot <benoit.boissinot@ens-lyon.org> Signed-off-by: James Ketrenos <jketreno@linux.intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| | * | | | [PATCH] fec_8xx: make CONFIG_FEC_8XX depend on CONFIG_8xxJohn W. Linville2005-11-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change CONFIG_FEC_8XX to depend on CONFIG_8xx instead of CONFIG_FEC. CONFIG_FEC depends on ColdFire CPUs, which does not apply for the PPC 8xx processors. Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * | | | | [PATCH] drivers/net/wireless/hermes.c unsigned int comparisionGabriel A. Devenyi2005-11-181-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | hermas_bap_pread, hermes_bap_pwrite, and hermes_bap_pwrite_pad all have a parameter "len" that is declared unsigned, but checked for a value less than zero. Auditing the callers, it is possible for len to be passed a negative value, so len should be an int. Thanks to LinuxICC (http://linuxicc.sf.net) Signed-off-by: Gabriel A. Devenyi <ace@staticwave.ca> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
| * | | | | [PATCH] prism54 : Remove extraneous udelay/register readRoger While2005-11-181-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In isl_38xx.c In routine isl38xx_trigger-device Move unnecessary udelay/register read. This is only required when hand-compiling the driver and setting VERBOSE > SHOW_ERROR_MESSAGES Signed-off-by: Roger While <simrw@sim-basis.de> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
| * | | | | [PATCH] SAA9730: Add missing header bits.Ralf Baechle2005-11-181-11/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This header file patch was missing from the recent SAA9730 patch. Signed-off-by: Ralf Baechle <ralf@linux-mips.org> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
| * | | | | [PATCH] au1000_eth: Include <linux/config.h>Ralf Baechle2005-11-181-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Ralf Baechle <ralf@linux-mips.org> The Au1000 ethernet driver references plenty of CONFIG_* symbols. Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
| * | | | | [PATCH] IOC3: Replace obsolete PCI APIRalf Baechle2005-11-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Ralf Baechle <ralf@linux-mips.org> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
| * | | | | [PATCH] i82593.h: make header comment GPL-compatibleJohn W. Linville2005-11-181-3/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: John W. Linville <linville@tuxdriver.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
| * | | | | [PATCH] e100: re-enable microcode with more useful defaultsJesse Brandeburg2005-11-181-18/+257
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For the four versions of hardware that we (currently) support microcode download on, the default configuration of our receive interrupt mitigation microcode was too aggressive, and caused unnecessary delays when pinging, and low(er) throughput on single connection latency sensitive performance tests. This code adds microcode support, and sets the defaults to more reasonable settings. It also explains the functionality in the code in more detail. Compile and load tested, shows expected behavior for slight delay of ping packets (1-2ms) when ucode is loaded, and decent interrupt moderation for small packets, while maintaining good throughput. Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
| * | | | | Merge branch 'halasa-hdlc' of git://git.tuxdriver.com/git/netdev-jwlJeff Garzik2005-11-183-0/+16
| |\ \ \ \ \
| | * | | | | [PATCH] Generic HDLC WAN drivers - disable netif_carrier_off()Krzysztof Halasa2005-11-163-0/+16
| | |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As we are currently unable to fix the problem with carrier and protocol state signaling in net core I've to disable netif_carrier_off() calls used by WAN protocol drivers. The attached patch should make them working again. The remaining netif_carrier_*() calls in hdlc_fr.c are fine as they don't touch the physical device. Signed-off-by: Krzysztof Halasa <khc@pm.waw.pl> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * | | | | Merge branch 'for-jeff' of ↵Jeff Garzik2005-11-181-4/+2
| |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | git://electric-eye.fr.zoreil.com/home/romieu/linux-2.6
| | * | | | | r8169: do not abort when the power management capabilities are disabledFrancois Romieu2005-11-161-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The capabilities of the 8169 can be disabled but it is hardly a reason to prevent the use the device. The (so far) unusual behavior has been reported on a MIPS platform by Yoichi Yuasa. Spotted-by: Yoichi Yuasa <yuasa@hh.iij4u.or.jp> Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
| | * | | | | r8169: fix printk_ratelimit in the interrupt handlerFrancois Romieu2005-11-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I keep on getting "printk: N messages suppressed" messages. We need to test netif_msg_intr() _before_ running printk_ratelimit(), because the latter updates state. Cc: Jeff Garzik <jgarzik@pobox.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
| * | | | | | [PATCH] smc91x: fix bank mismatchRussell King2005-11-181-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The smc91x driver relies upon register bank 2 being selected whenever the interrupt handler is called. This isn't always so, especially if we have a link change event during PHY configuration. This results in register bank 0 being selected when the interrupt handler is called, causing the wrong registers to be read for the IRQ mask and status. In turn, this causes us to spin with a permanently asserted IRQ. The patch ensures that smc_phy_configure always exits with register bank 2 selected. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
| * | | | | | [PATCH] smc91x: fix one source of spurious interruptsNicolas Pitre2005-11-181-4/+12
| | |_|_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Not only SMC_ACK_INT(IM_TX_EMPTY_INT) in in smc_hardware_send_pkt) appears to be unnecessary (tested with an SMC91C94 and SMC91C111), but it seems to trigger spurious interrupts on some machines as well. Removed. While at it, let's log any remaining spurious interrupts if any (and clean usage of the max IRQ loop count value). Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
* | | | | | [libata sata_mv] update copyright, driver versionJeff Garzik2005-11-181-1/+2
| | | | | |
OpenPOWER on IntegriCloud