aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile (unfollow)
AgeCommit message (Collapse)AuthorFilesLines
2006-12-12RDMA/cma: Add support for RDMA_PS_UDPSean Hefty3-16/+222
Allow the use of UD QPs through the rdma_cm, in order to provide address translation services for resolving IB addresses for datagram messages using SIDR. Signed-off-by: Sean Hefty <sean.hefty@intel.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
2006-12-12RDMA/cma: Allow early transition to RTS to handle lost CM messagesSean Hefty3-24/+63
During connection establishment, the passive side of a connection can receive messages from the active side before the connection event has been delivered to the user. Allow the passive side to send messages in response to received data before the event is delivered. To handle the case where the connection messages are lost, a new rdma_notify() function is added that users may invoke to force a connection into the established state. Signed-off-by: Sean Hefty <sean.hefty@intel.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
2006-12-12RDMA/cma: Report connect info with connect eventsSean Hefty2-72/+101
Connection information was never given to the recipient of a connection request or reply message. Only the event was delivered. Report the connection data with the event to allows user to reject the connection based on the requested parameters, or adjust their resources to match the request. Signed-off-by: Sean Hefty <sean.hefty@intel.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
2006-12-12RDMA/cma: Remove unneeded qp_type parameter from rdma_cmSean Hefty2-6/+1
The qp_type parameter into the rdma_cm is unneeded, and can be misleading. The QP type should be determined from the port space. Signed-off-by: Sean Hefty <sean.hefty@intel.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
2006-12-12IB/ipath: Fix IRQ for PCI Express HCAsRoland Dreier1-1/+1
Commit 51f65ebc ("IB/ipath - program intconfig register using new HT irq hook"), which fixed interrupts for HyperTransport HCAs, broke PCI Express HCAs, because for those HCAs, the driver uses the value of pdev->irq before pci_enable_msi() and ends up getting a totally bogus IRQ number. Fix this by using the value of pdev->irq after pci_enable_msi(). Signed-off-by: Roland Dreier <rolandd@cisco.com>
2006-12-12RDMA/amso1100: Fix memory leak in c2_qp_modify()Krishna Kumar1-5/+8
vq_req is leaked in error cases. Signed-off-by: Krishna Kumar <krkumar2@in.ibm.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
2006-12-12IB/iser: Remove unused "write-only" variablesRoland Dreier2-6/+1
Remove variables that are set but then never looked at in the iSER initiator. These cleanups came from David Binderman's list of "set but never used" warnings from icc. Signed-off-by: Roland Dreier <rolandd@cisco.com>
2006-12-12IB/ipath: Remove unused "write-only" variablesRoland Dreier7-18/+9
Remove variables that are set but then never looked at in the ipath driver. These cleanups came from David Binderman's list of "set but never used" warnings from icc. Signed-off-by: Roland Dreier <rolandd@cisco.com>
2006-12-12IB/fmr: ib_flush_fmr_pool() may wait too longRoland Dreier1-10/+2
ib_flush_fmr_pool() stashes away the request generation number properly, but then goes ahead and rereads it every time it tests whether the flush generation number has caught up. This means that there is a theoretical possibility of livelock, if the request generation number keeps getting bumped and the flush generation number never catches up. The fix is simple: use the request generation number read at the beginning of the function. Also, atomic_inc() followed by atomic_read() can be replaced with atomic_int_return(). There's no real requirement for atomicity here but we might as well shrink the code. This bug was discovered using David Binderman's list of "set but never used" warnings from icc. Signed-off-by: Roland Dreier <rolandd@cisco.com>
2006-12-12[PATCH] remove config ordering/dependency between ucb1400-ts and sound subsystemNicolas Pitre6-8/+13
Commit 2d4ba4a3b9aef95d328d74a17ae84f8d658059e2 introduced a dependency that was never meant to exist when the ac97_bus.c module was created. Move ac97_bus.c up the directory hierarchy to make sure it is built when selected even if sound is configured out so things work as originally intended. Signed-off-by: Nicolas Pitre <nico@cam.org> Acked-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-12-12[PATCH] netpoll: fix netpoll lockupIngo Molnar1-2/+7
current -git doesnt boot on my laptop due to netpoll not unlocking the tx lock in the else branch. booted this up on my laptop with lockdep enabled and there are no locking complaints and it works fine. Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-12-12[PATCH] net, 8139too.c: fix netpoll deadlockIngo Molnar1-2/+3
fix deadlock in the 8139too driver: poll handlers should never forcibly enable local interrupts, because they might be used by netpoll/printk from IRQ context. ================================= [ INFO: inconsistent lock state ] 2.6.19 #11 --------------------------------- inconsistent {softirq-on-W} -> {in-softirq-W} usage. swapper/1 [HC0[0]:SC1[1]:HE1:SE0] takes: (&npinfo->poll_lock){-+..}, at: [<c0350a41>] net_rx_action+0x64/0x1de {softirq-on-W} state was registered at: [<c0134c86>] mark_lock+0x5b/0x39c [<c0135012>] mark_held_locks+0x4b/0x68 [<c01351e9>] trace_hardirqs_on+0x115/0x139 [<c02879e6>] rtl8139_poll+0x3d7/0x3f4 [<c035c85d>] netpoll_poll+0x82/0x32f [<c035c775>] netpoll_send_skb+0xc9/0x12f [<c035cdcc>] netpoll_send_udp+0x253/0x25b [<c0288463>] write_msg+0x40/0x65 [<c011cead>] __call_console_drivers+0x45/0x51 [<c011cf16>] _call_console_drivers+0x5d/0x61 [<c011d4fb>] release_console_sem+0x11f/0x1d8 [<c011d7d7>] register_console+0x1ac/0x1b3 [<c02883f8>] init_netconsole+0x55/0x67 [<c010040c>] init+0x9a/0x24e [<c01049cf>] kernel_thread_helper+0x7/0x10 [<ffffffff>] 0xffffffff irq event stamp: 819992 hardirqs last enabled at (819992): [<c0350a16>] net_rx_action+0x39/0x1de hardirqs last disabled at (819991): [<c0350b1e>] net_rx_action+0x141/0x1de softirqs last enabled at (817552): [<c01214e4>] __do_softirq+0xa3/0xa8 softirqs last disabled at (819987): [<c0106051>] do_softirq+0x5b/0xc9 other info that might help us debug this: no locks held by swapper/1. stack backtrace: [<c0104d88>] dump_trace+0x63/0x1e8 [<c0104f26>] show_trace_log_lvl+0x19/0x2e [<c010532d>] show_trace+0x12/0x14 [<c0105343>] dump_stack+0x14/0x16 [<c0134980>] print_usage_bug+0x23c/0x246 [<c0134d33>] mark_lock+0x108/0x39c [<c01356a7>] __lock_acquire+0x361/0x9ed [<c0136018>] lock_acquire+0x56/0x72 [<c03aff1f>] _spin_lock+0x35/0x42 [<c0350a41>] net_rx_action+0x64/0x1de [<c0121493>] __do_softirq+0x52/0xa8 [<c0106051>] do_softirq+0x5b/0xc9 [<c0121338>] irq_exit+0x3c/0x48 [<c0106163>] do_IRQ+0xa4/0xbd [<c01047c6>] common_interrupt+0x2e/0x34 [<c011db92>] vprintk+0x2c0/0x309 [<c011dbf6>] printk+0x1b/0x1d [<c01003f2>] init+0x80/0x24e [<c01049cf>] kernel_thread_helper+0x7/0x10 ======================= Signed-off-by: Ingo Molnar <mingo@elte.hu> Acked-by: Jeff Garzik <jeff@garzik.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-12-12[PATCH] lockdep: fix seqlock_init()Ingo Molnar1-2/+5
seqlock_init() needs to use spin_lock_init() for dynamic locks, so that lockdep is notified about the presence of a new lock. (this is a fallout of the recent networking merge, which started using the so-far unused seqlock_init() API.) This fix solves the following lockdep-internal warning on current -git: INFO: trying to register non-static key. the code is fine but needs lockdep annotation. turning off the locking correctness validator. __lock_acquire+0x10c/0x9f9 lock_acquire+0x56/0x72 _spin_lock+0x35/0x42 neigh_destroy+0x9d/0x12e neigh_periodic_timer+0x10a/0x15c run_timer_softirq+0x126/0x18e __do_softirq+0x6b/0xe6 do_softirq+0x64/0xd2 ksoftirqd+0x82/0x138 Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-12-12V4L/DVB (4954): Fix: On ia64, i2c adap->inb/adap->outb are wrongly evaluatedMauro Carvalho Chehab1-5/+9
i2c defines two callbacks (inb/outb). On ia64, since it defines also two macros with those names, it causes the following errors: drivers/media/video/usbvision/usbvision-i2c.c:64:39: macro "outb" passed 4 arguments, but takes just 2 drivers/media/video/usbvision/usbvision-i2c.c: In function `try_write_address': drivers/media/video/usbvision/usbvision-i2c.c:64: warning: assignment makes integer from pointer without a cast drivers/media/video/usbvision/usbvision-i2c.c:89:38: macro "inb" passed 4 arguments, but takes just 1 drivers/media/video/usbvision/usbvision-i2c.c: In function `try_read_address': drivers/media/video/usbvision/usbvision-i2c.c:89: warning: assignment makes integer from pointer without a cast drivers/media/video/usbvision/usbvision-i2c.c:85: warning: unused variable `buf' drivers/media/video/usbvision/usbvision-i2c.c:173:53: macro "inb" passed 4 arguments, but takes just 1 drivers/media/video/usbvision/usbvision-i2c.c: In function `usb_xfer': drivers/media/video/usbvision/usbvision-i2c.c:173: warning: assignment makes integer from pointer without a cast drivers/media/video/usbvision/usbvision-i2c.c:179:54: macro "outb" passed 4 arguments, but takes just 2 drivers/media/video/usbvision/usbvision-i2c.c:179: warning: assignment makes integer from pointer without a cast thanks to Andrew Morton for pointing this. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2006-12-12[PATCH] remove unnecessary blk_queue_bounce in SG_IOFUJITA Tomonori1-7/+0
When I converted the original patch, I left unnecessary blk_queue_bounce in SG_IO. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
2006-12-12[PATCH] fix SG_IO bio leakFUJITA Tomonori1-0/+3
This patch fixes bio leaks in SG_IO. rq->bio can be changed after io completion, so we need to reset rq->bio before calling blk_rq_unmap_user() http://marc.theaimsgroup.com/?l=linux-kernel&m=116570666807983&w=2 Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
2006-12-12[PATCH] remove blk_queue_activity_fnBoaz Harrosh4-23/+0
While working on bidi support at struct request level I have found that blk_queue_activity_fn is actually never used. The only user is in ide-probe.c with this code: /* enable led activity for disk drives only */ if (drive->media == ide_disk && hwif->led_act) blk_queue_activity_fn(q, hwif->led_act, drive); And led_act is never initialized anywhere. (Looking back at older kernels it was used in the PPC arch, but was removed around 2.6.18) Unless it is all for future use off course. (this patch is against linux-2.6-block.git as off 2006/12/4) Signed-off-by: Boaz Harrosh <bharrosh@panasas.com> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
2006-12-12[MIPS] paging_init(): use highend_pfn/highstart_pfnFranck Bui-Huu1-9/+8
This patch makes paging_init() use highend_pfn/highstart_pfn globals. It removes the need of 'high' local which was needed only by HIGHMEM config. More important perhaps, it fixes a bug when HIGHMEM is set but there's actually no physical highmem (highend_pfn = 0) Signed-off-by: Franck Bui-Huu <fbuihuu@gmail.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2006-12-12[MIPS] Malta: Resurrect MTD support for onboard flash.Ralf Baechle3-41/+80
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2006-12-12[MIPS] Discard .exit.text and .exit.data at runtime.Ralf Baechle1-2/+4
While the recent cset 86384d544157db23879064cde36061cdcafc6794 did improve things it didn't resolve all the problems. So bite the bullet and discard .exit.text and .exit.data at runtime. Which of course sucks because it bloats binaries with code that will never ever be used but it's the only thing that will work reliable as demonstrated by the function sd_major() in drivers/scsi/sd.c. Gcc may compile sd_major() using a jump table which it will put into .rodata. If it also inlines sd_major's function body into exit_sd() which gcc > 3.4.x does. If CONFIG_BLK_DEV_SD has been set to y we would like ld to discard exit_sd's code at link time. However sd_major happens to contain a switch statement which gcc will compile using a jump table in .rodata on the architectures I checked. So, when ld later discards .exit.text only the jump table in .rodata with its stale references to the discard .exit.text will be left which any no antique ld will honor with a link error. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2006-12-12[MIPS] IP27: Don't drag <asm/sn/arch.h> into topology.h.Ralf Baechle1-1/+0
Another way that old SGI types were getting dragged into generic code. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2006-12-12[MIPS] IP27: Move definition of nic_t to its sole user.Ralf Baechle2-1/+2
This also fixes the duplicate definition of nic_t in the s2io driver. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2006-12-12[MIPS] IP27: Don't include <asm/sn/arch.h>.Ralf Baechle1-2/+0
Nothing <asm/sn/arch.h> defines is used. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2006-12-12[MIPS] compat.h uses struct pt_regs so needs to include ptrace.h.Ralf Baechle1-0/+1
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2006-12-11[NETPOLL]: Fix local_bh_enable() warning.Andrew Morton1-2/+4
During boot we get: netconsole: device eth0 not up yet, forcing it e1000: eth0: e1000_watchdog: NIC Link is Up 100 Mbps Full Duplex WARNING (!__warned) at kernel/softirq.c:137 local_bh_enable() Call Trace: [<ffffffff80235baf>] local_bh_enable+0x41/0xa3 [<ffffffff8045ab8e>] netpoll_send_skb+0x116/0x144 [<ffffffff8045b1ee>] netpoll_send_udp+0x263/0x271 [<ffffffff803d41ec>] write_msg+0x42/0x5e [<ffffffff80230c9b>] __call_console_drivers+0x5f/0x70 [<ffffffff80230d19>] _call_console_drivers+0x6d/0x71 [<ffffffff802313f0>] release_console_sem+0x148/0x1ec [<ffffffff802316ce>] register_console+0x1b1/0x1ba [<ffffffff803d4178>] init_netconsole+0x54/0x68 [<ffffffff802071ae>] init+0x152/0x308 [<ffffffff804dac8b>] _spin_unlock_irq+0x14/0x30 [<ffffffff8022c15e>] schedule_tail+0x43/0x9f [<ffffffff8020a758>] child_rip+0xa/0x12 Herbert sayeth: Normally networking isn't invoked with interrupts turned off, but I suppose we don't have a choice here. This is unique being a place where you can get called with BH on, off, or IRQs off. Given that this is only used for printk, the easiest solution is probably just to disable local IRQs instead of BH. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: David S. Miller <davem@davemloft.net>
2006-12-12sh: Fixup SH-2 BUG() trap handling.Yoshinori Sato1-18/+14
This adds in support for the BUG() trap on SH-2. Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2006-12-12sh: Use early_param() for earlyprintk parsing.Paul Mundt2-31/+16
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2006-12-12sh: Fix .empty_zero_page alignment for PAGE_SIZE > 4096.Paul Mundt3-3/+6
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2006-12-12sh: Fixup .data.page_aligned.Paul Mundt1-1/+1
This had a bogus .data.idt reference, fix it up.. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2006-12-12sh: Hook up SH7722 scif ipr interrupts.Paul Mundt1-0/+4
Add the SCIF IRQs to the IPR table for SH7722. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2006-12-12sh: Fixup sh_bios() trap handling.Paul Mundt1-2/+13
This was inadvertently broken when the entry.S code split up, restore the missing branch and get subsequent traps working under debug again. This manifested itself as a lockup when attempting to reload the VBR base. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2006-12-12sh: SH-MobileR SH7722 CPU support.Paul Mundt22-20/+284
This adds CPU support for the SH7722. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2006-12-12sh: Fixup dma_cache_sync() callers.Paul Mundt1-5/+5
This now takes a struct device, update all of the callers. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2006-12-12sh: Convert remaining remap_area_pages() users to ioremap_page_range().Paul Mundt2-4/+5
A couple of these were missed. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2006-12-12sh: Fixup kernel_execve() for syscall cleanups.Paul Mundt1-0/+6
SH-2 and SH-2A need to use a different syscall base for the trapa vector than the other parts, so fixup the logic in the kernel_execve() case. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2006-12-12sh: Fix get_wchan().Paul Mundt1-2/+3
Some time ago the schedule frame size changed and we failed to reflect this in get_wchan() at the time. This first popped up as a problem on SH7751R where schedule_frame ended up being unaligned and generating an unaligned trap. This fixes it up again.. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2006-12-12sh: BUG() handling through trapa vector.Paul Mundt3-9/+89
Previously we haven't been doing anything with verbose BUG() reporting, and we've been relying on the oops path for handling BUG()'s, which is rather sub-optimal. This switches BUG handling to use a fixed trapa vector (#0x3e) where we construct a small bug frame post trapa instruction to get the context right. This also makes it trivial to wire up a DIE_BUG for the atomic die chain, which we couldn't really do before. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2006-12-12rtc: rtc-sh: alarm support.Jamie Lenehan1-25/+201
This adds alarm support for the RTC_ALM_SET, RTC_ALM_READ, RTC_WKALM_SET and RTC_WKALM_RD operations to rtc-sh. The only unusual part is the handling of the alarm interrupt. If you clear the alarm flag (AF) while the time in the RTC still matches the time in the alarm registers than AF is immediately re-set, and if the alarm interrupt (AIE) is still enabled then it re-triggers. I was originally getting around 20k+ interrupts generated during the second when the RTC and alarm registers matches. The solution I've used is to clear AIE when the alarm goes off and then use the carry interrupt to re-enabled it. The carry interrupt will check AF and re-enabled AIE if it's clear. If AF is not clear it'll clear it and then the check will be repeated next carry interrupt. This a bit in rtc structure that indicates that it's waiting to have AIE re-enabled so it doesn't turn it on when it wasn't enabled anyway. Signed-off-by: Jamie Lenehan <lenehan@twibble.org> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2006-12-12rtc: rtc-sh: fix rtc for out-by-one for the month.Jamie Lenehan1-3/+3
The RMONCNT register, which holds the month in the RTC, takes a value between 1 and 12 while the tm_mon field in the time structures takes a value between 0 and 11. This wasn't being taken into account in rtc-sh resulting in the month being out by one. eg, on my board during boot the RTC is set to: RTC is set to Thu Jul 01 09:00:00 1999 but "hwclock -r" immediately after logging in was showing: Sun Aug 1 09:01:43 1999 0.000000 seconds Signed-off-by: Jamie Lenehan <lenehan@twibble.org> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2006-12-12sh: Kill off unused SE7619 I/O ops.Yoshinori Sato3-124/+1
This can use the generic routines, so kill off the board-specific ones. Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2006-12-12serial: sh-sci: Shut up various sci_rxd_in() gcc4 warnings.Paul Mundt1-0/+5
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2006-12-12sh: Split out atomic ops logically.Paul Mundt3-151/+180
We have a few different ways to do the atomic operations, so split them out in to different headers rather than bloating atomic.h. Kernelspace gUSA will take this up to a third implementation. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2006-12-12sh: Fix Solution Engine 7619 build.Yoshinori Sato2-33/+33
Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2006-12-12sh: Trivial build fixes for SH-2 support.Yoshinori Sato5-16/+7
Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2006-12-12sh: IPR IRQ updates for SH7619/SH7206.Yoshinori Sato3-8/+111
This updates the SH7619 and SH7206 code for the IPR IRQ changes. Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2006-12-12sh: gcc4 symbol export fixups.Stuart Menefy1-1/+14
gcc 4 for sh changes the names of some compiler intrinsic functions and adds some additional ones. This patch adds the new ones, and fixes up various module symbol resolution issues. Signed-off-by: Stuart Menefy <stuart.menefy@st.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2006-12-12sh: landisk board build fixes.Paul Mundt3-34/+57
Get the landisk board building again.. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2006-12-12rtc: rtc-sh: fix for period rtc interrupts.Jamie Lenehan1-21/+22
When testing the per second interrupt support (RTC_UIE_ON/RTC_UIE_OFF) of the new RTC system it would die in sh_rtc_interrupt due to a null ptr dereference. The following gets it working correctly. Signed-off-by: Jamie Lenehan <lenehan@twibble.org> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2006-12-12sh: register rtc resources for sh775x.Jamie Lenehan1-0/+31
Register the RTC resources for the sh775x subtype so that the new generic RTC support in drivers/rtc/rtc-sh.c will work. Signed-off-by: Jamie Lenehan <lenehan@twibble.org> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2006-12-12sh: SH-2 defconfig updates.Yoshinori Sato2-39/+847
This adds a new defconfig for SE7619 and updates SE7206. Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>