aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2008-05-19svcrdma: Cleanup queued, but unprocessed I/O in svc_rdma_freeTom Tucker
When the transport is closing, the DTO tasklet may queue data that never gets processed. Clean up resources associated with this I/O. Signed-off-by: Tom Tucker <tom@opengridcomputing.com>
2008-05-19svcrdma: Move the QP and cm_id destruction to svc_rdma_freeTom Tucker
Move the destruction of the QP and CM_ID to the free path so that the QP cleanup code doesn't race with the dto_tasklet handling flushed WR. The QP reference is not needed because we now have a reference for every WR. Also add a guard in the SQ and RQ completion handlers to ignore calls generated by some providers when the QP is destroyed. Signed-off-by: Tom Tucker <tom@opengridcomputing.com>
2008-05-19svcrdma: Add reference for each SQ/RQ WRTom Tucker
Add a reference on the transport for every outstanding WR. Signed-off-by: Tom Tucker <tom@opengridcomputing.com>
2008-05-19svcrdma: Move destroy to kernel threadTom Tucker
Some providers may wait while destroying adapter resources. Since it is possible that the last reference is put on the dto_tasklet, the actual destroy must be scheduled as a work item. Signed-off-by: Tom Tucker <tom@opengridcomputing.com>
2008-05-19svcrdma: Shrink scope of spinlock on RQ CQTom Tucker
The rq_cq_reap function is only called from the dto_tasklet. The only resource shared with other threads is the sc_rq_dto_q. Move the spin lock to protect only this list. Signed-off-by: Tom Tucker <tom@opengridcomputing.com>
2008-05-19svcrdma: Use standard Linux lists for context cacheTom Tucker
Replace the one-off linked list implementation used to implement the context cache with the standard Linux list_head lists. Add a context counter to catch resource leaks. A WARN_ON will be added later to ensure that we've freed all contexts. Signed-off-by: Tom Tucker <tom@opengridcomputing.com>
2008-05-19svcrdma: Simplify RDMA_READ deferral buffer managementTom Tucker
An NFS_WRITE requires a set of RDMA_READ requests to fetch the write data from the client. There are two principal pieces of data that need to be tracked: the list of pages that comprise the completed RPC and the SGE of dma mapped pages to refer to this list of pages. Previously this whole bit was managed as a linked list of contexts with the context containing the page list buried in this list. This patch simplifies this processing by not keeping a linked list, but rather only a pionter from the last submitted RDMA_READ's context to the context that maps the set of pages that describe the RPC. This significantly simplifies this code path. SGE contexts are cleaned up inline in the DTO path instead of at read completion time. Signed-off-by: Tom Tucker <tom@opengridcomputing.com>
2008-05-19svcrdma: Remove unused READ_DONE context flags bitTom Tucker
The RDMACTXT_F_READ_DONE bit is not longer used. Remove it. Signed-off-by: Tom Tucker <tom@opengridcomputing.com>
2008-05-19svcrdma: Return error from rdma_read_xdr so caller knows to free contextTom Tucker
The rdma_read_xdr function did not discriminate between no read-list and an error posting the read-list. This results in a leak of a page if there is an error posting the read-list. Signed-off-by: Tom Tucker <tom@opengridcomputing.com>
2008-05-19svcrdma: Fix error handling during listening endpoint creationTom Tucker
A listening endpoint isn't known to the generic transport switch until the svc_create_xprt function returns without error. Calling svc_xprt_put within the xpo_create function causes the module reference count to be erroneously decremented. Signed-off-by: Tom Tucker <tom@opengridcomputing.com>
2008-05-19svcrdma: Free context on post_recv error in send_replyTom Tucker
If an error is encountered trying to post a recv buffer in send_reply, free the passed in context. Return an error to the caller so it is aware that the request was not posted. Signed-off-by: Tom Tucker <tom@opengridcomputing.com>
2008-05-19svcrdma: Free context on ib_post_recv errorTom Tucker
If there is an error posting the recv WR to the RQ, free the context associated with the WR. This would leak a context when asynchronous errors occurred on the transport while conccurent threads were processing their RPC. Signed-off-by: Tom Tucker <tom@opengridcomputing.com>
2008-05-19svcrdma: Add put of connection ESTABLISHED reference in rdma_cma_handlerTom Tucker
The svcrdma transport takes a reference when it gets the ESTABLISHED event from the provider. This reference is supposed to be removed when the DISCONNECT event is received, however, the call to svc_xprt_put was missing in the switch statement. This results in the memory associated with the transport never being freed. Signed-off-by: Tom Tucker <tom@opengridcomputing.com>
2008-05-19svcrdma: Fix return value in svc_rdma_sendTom Tucker
Fix the return value on close to -ENOTCONN so caller knows to free context. Also if a thread is waiting for free SQ space, check for close when waking to avoid posting WR to a closing transport. Signed-off-by: Tom Tucker <tom@opengridcomputing.com>
2008-05-19svcrdma: Fix race with dto_tasklet in svc_rdma_sendTom Tucker
The svc_rdma_send function will attempt to reap SQ WR to make room for a new request if it finds the SQ full. This function races with the dto_tasklet that also reaps SQ WR. To avoid polling and arming the CQ unnecessarily move the test_and_clear_bit of the RDMAXPRT_SQ_PENDING flag and arming of the CQ to the sq_cq_reap function. Refactor the rq_cq_reap function to match sq_cq_reap so that the code is easier to follow. Signed-off-by: Tom Tucker <tom@opengridcomputing.com>
2008-05-19svcrdma: Simplify receive buffer postingTom Tucker
The svcrdma transport provider currently allocates receive buffers to the RQ through the xpo_release_rqst method. This approach is overly complicated since it means that the rqstp rq_xprt_ctxt has to be selectively set based on whether the RPC is going to be processed immediately or deferred. Instead, just post the receive buffer when we are certain that we are replying in the send_reply function. Signed-off-by: Tom Tucker <tom@opengridcomputing.com>
2008-05-19svc: Remove unused header files from svc_xprt.cTom Tucker
This cosmetic patch removes unused header files that svc_xprt.c inherited from svcsock.c Signed-off-by: Tom Tucker <tom@opengridcomputing.com>
2008-05-19svc: Remove extra check for XPT_DEAD bit in svc_xprt_enqueueTom Tucker
Remove a redundant check for the XPT_DEAD bit in the svc_xprt_enqueue function. This same bit is checked below while holding the pool lock and prints a debug message if found to be dead. Signed-off-by: Tom Tucker <tom@opengridcomputing.com>
2008-05-18Linux 2.6.26-rc3Linus Torvalds
2008-05-18Merge branch 'i2c-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6Linus Torvalds
* 'i2c-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6: i2c/max6875: Really prevent 24RF08 corruption i2c-amd756: Fix functionality flags i2c: Kill the old driver matching scheme i2c: Convert remaining new-style drivers to use module aliasing i2c: Switch pasemi to the new device/driver matching scheme i2c: Clean up Blackfin BF527 I2C device declarations i2c-nforce2: Disable the second SMBus channel on the DFI Lanparty NF4 Expert i2c: New co-maintainer
2008-05-18m68k: Add multi_defconfigGeert Uytterhoeven
Add multi_defconfig, to build a kernel for all supported m68k platforms, excluding Sun 3 (Sun 3 kernels are incompatible with all other m68k platforms) Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-05-18m68k: Update defconfigsGeert Uytterhoeven
Update the m68k defconfigs Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-05-18m68k: Correctly handle multi-ISA at runtimeGeert Uytterhoeven
m68k: Correctly handle multi-ISA at runtime in multi-platform kernels Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-05-18m68k: Prefix ISA type with ISA_TYPE_Geert Uytterhoeven
The *_ISA type defines are quite generic and cause namespace conflicts (e.g. with `AMIGAHW_DECLARE(GG2_ISA)' in <asm/amigahw.h>) for some kernel configurations. Use ISA_TYPE_* to avoid such conflicts. Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-05-18m68k: export m68k_mmutypeGeert Uytterhoeven
UIO needs m68k_mmutype: ERROR: "m68k_mmutype" [drivers/uio/uio.ko] undefined! (noticed by Christian T. Steigies) Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-05-18m68k: Q40/Q60 floppy support is brokenGeert Uytterhoeven
Mark Q40/Q60 floppy support broken: arch/m68k/q40/q40ints.c: In function 'q40_irq_handler': arch/m68k/q40/q40ints.c:214: error: implicit declaration of function 'floppy_hardint' Including <asm/floppy.h> doesn't help, as it causes a lot of additional error messages (cfr. Sun 3x). Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-05-18m68k: Return -ENODEV if no device is foundGeert Uytterhoeven
According to the tests in do_initcalls(), the proper error code in case no device is found is -ENODEV, not -ENXIO or -EIO. Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-05-18m68k: Some input drivers do not check the platformGeert Uytterhoeven
Some input drivers do not check whether they're actually running on the correct platform, causing multi-platform kernels to crash if they are not. Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-05-18m68k: Some network drivers do not check the platformGeert Uytterhoeven
Some network drivers do not check whether they're actually running on the correct platform, causing multi-platform kernels to crash if they are not. Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-05-18m68k: dnfb doesnt check for ApolloGeert Uytterhoeven
The Apollo frame buffer device driver (dnfb) doesn't check whether it's actually running on Apollo hardware, causing a crash if it isn't. Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-05-18m68k: macide doesnt check for MacGeert Uytterhoeven
The Macintosh IDE driver (macide) doesn't check whether it's actually running on Mac hardware, causing a crash if it isn't. Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-05-18m68k: Correct jump if not running on HP300Geert Uytterhoeven
When running a HP300-enabled kernel on non-HP300 hardware, a test in the early startup code jumps to the wrong label, causing a double bus fault. Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-05-18m68k: Make gcc aware that BUG() does not returnGeert Uytterhoeven
Use `__builtin_trap()' instead of `asm volatile("illegal")' in the m68k BUG() macros (as suggested by Andrew Pinski), to kill warnings in code that assumes BUG() does not return. Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-05-18m68k vme_scc: avoid global namespace pollutionGeert Uytterhoeven
m68k vme_scc: - make scc_ports[] static - kill unused global scc_initialized Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-05-18m68k: Kill CONFIG_WHIPPET_SERIALGeert Uytterhoeven
The Hisoft Whippet PCMCIA serial driver has been removed a long time ago, but it's Kconfig symbol still existed. Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-05-18m68k: FB_HP300 depends on DIO and doesnt need FB_CFB_FILLRECTGeert Uytterhoeven
Correct FB_HP300 dependencies: - FB_HP300 doesn't depend only on HP300, but also on DIO (which depends on HP300) - FB_HP300 does not need FB_CFB_FILLRECT Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-05-18m68k: Kill CONFIG_FB_DAFBGeert Uytterhoeven
CONFIG_FB_DAFB is a leftover from pre-Kconfig Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-05-18m68k: Convert access_ok() to an inline functionGeert Uytterhoeven
Convert access_ok() from a macro to an inline function, so the compiler no longer complains about unused variables: fs/read_write.c: In function 'rw_copy_check_uvector': fs/read_write.c:556: warning: unused variable 'buf' Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-05-18i2c/max6875: Really prevent 24RF08 corruptionJean Delvare
i2c-core takes care of the possible corruption of 24RF08 chips for quite some times, so device devices no longer need to do it. And they really should not, as applying the prevention twice voids it. I thought that I had fixed all drivers long ago but apparently I had missed that one. Signed-off-by: Jean Delvare <khali@linux-fr.org> Cc: Ben Gardner <bgardner@wabtec.com>
2008-05-18i2c-amd756: Fix functionality flagsJean Delvare
The i2c-amd756 driver pretends to support SMBus process call transactions but actually does not. Fix it. Signed-off-by: Jean Delvare <khali@linux-fr.org>
2008-05-18i2c: Kill the old driver matching schemeJean Delvare
Remove the old driver_name/type scheme for i2c driver matching. Only the standard aliasing model will be used from now on. Signed-off-by: Jean Delvare <khali@linux-fr.org>
2008-05-18i2c: Convert remaining new-style drivers to use module aliasingJean Delvare
Update all the remaining new-style i2c drivers to use standard module aliasing instead of the old driver_name/type driver matching scheme. Note that the tuner driver is a bit quirky at the moment, as it overwrites i2c_client.name with arbitrary strings. We write "tuner" back on remove, to make sure that driver cycling will work properly, but there may still be troublesome corner cases. Signed-off-by: Jean Delvare <khali@linux-fr.org>
2008-05-18i2c: Switch pasemi to the new device/driver matching schemeJean Delvare
The old device/driver matching scheme is going away so stop using it. Signed-off-by: Jean Delvare <khali@linux-fr.org> Acked-by: Olof Johansson <olof@lixom.net>
2008-05-18i2c: Clean up Blackfin BF527 I2C device declarationsJean Delvare
I2C_BOARD_INFO() now sets the type field so no need to set it separatetly. Signed-off-by: Jean Delvare <khali@linux-fr.org> Cc: Bryan Wu <cooloney@kernel.org>
2008-05-18i2c-nforce2: Disable the second SMBus channel on the DFI Lanparty NF4 ExpertJean Delvare
There is a strange chip at 0x2e on the second SMBus channel of the DFI Lanparty NF4 Expert motherboard. Accessing the chip reboots the system. As there's nothing interesting on this SMBus channel, the easiest and safest thing to do is to disable it on that board. This is a better fix to bug #5889 than the it87 driver update that was done originally: http://bugzilla.kernel.org/show_bug.cgi?id=5889 Signed-off-by: Jean Delvare <khali@linux-fr.org>
2008-05-18i2c: New co-maintainerJean Delvare
Ben Dooks agreed to become my co-maintainer for the i2c subsystem. In particular, Ben will help with drivers for embedded systems, of which my experience is inexistent. Thanks Ben and welcome on board! Signed-off-by: Jean Delvare <khali@linux-fr.org> Acked-by: Ben Dooks <ben-linux@fluff.org>
2008-05-17Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-armLinus Torvalds
* 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm: [ARM] pxa: spitz wants PXA27x UDC definitions [ARM] pxa: fix pxafb build when cpufreq is enabled [ARM] fix parenthesis in include/asm-arm/arch-omap/control.h [ARM] colibri: fix support for DM9000 ethernet device [ARM] arm/kernel/arthur.c: add MODULE_LICENSE [ARM] 5037/1: Orion: fix DNS323/Kurobox Pro PCI initialisation [ARM] 5034/1: fix arm{925,926,940,946} dma_flush_range() in WT mode [ARM] export copy_page [ARM] 5026/1: locomo: add .settype for gpio and several small fixes ARM: OMAP: Fixed comments on global PRM register usage ARM: OMAP: Add PARENT_CONTROLS_CLOCK flag to dpll5_m2_ck ARM: OMAP: PRCM fixes to ssi clock handling ARM: OMAP: Add fuctional clock enabler for iva2 ARM: OMAP: Fix 34xx to use correct shift values for gpio2-6 fclks ARM: OMAP: Keymap fix for palmte and palmz71 ARM: OMAP: Fix Unbalanced enable for IRQ in omap mailbox ARM: OMAP: DMA: Fix incorrect channel linking ARM: OMAP: Warn on disabling clocks with no users ARM: OMAP: Add calls to omap2_set_globals_*() ARM: OMAP: Update MMC header to fix compile
2008-05-17Merge branch 'omap-fixes' of ↵Russell King
git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6
2008-05-17Merge branch 'sa1100'Russell King
2008-05-17[ARM] pxa: spitz wants PXA27x UDC definitionsRussell King
... so include the header file. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>