aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
Commit message (Collapse)AuthorAge
* USB: handle more rndis_host odditiesDavid Brownell2007-05-23
| | | | | | | | | | | | Workaround another device firmware bug, wherein CDC descriptors get placed in a wrong place never previously observed in the wild. Fix a bug where a seeming RNDIS device returns a bogus response during device initialization. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: fix more ftdi-elan/u132-hcd #include lossageDavid Brownell2007-05-23
| | | | | | | | | | | | Partial fix for bogosity in the ftdi-elan and u132-hcd drivers ... these have no business including with the internals of other drivers, much less doing so in a broken way!! A previous patch resolved one build fix, this resolves another... Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* usb-storage: ignore Sitecom WL-117 USB-WLANMatthew Davidson2007-05-23
| | | | | | | | | | | | | The Sitecom WL-117 is another "driverless" ZD1211 device where the virtual windows driver CD must be ejected before the WLAN device appears. zd1211rw takes care of the ejecting, but usb-storage must be told not to claim the device. From: Matthew Davidson <mj.davidson@gmail.com> Signed-off-by: Daniel Drake <dsd@gentoo.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: remove useless check in mos7840 found by coverityOliver Neukum2007-05-23
| | | | | | | | this useless check should be removed. Signed-off-by: Oliver Neukum <oneukum@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* USB: fix omninet memory leak found by coverityOliver Neukum2007-05-23
| | | | | | | | | | the transfer of allocating the descriptor in attach and no longer in open was incomplete resulting in a memory leak coverity spotted. This fix is against the patch set you posted. Signed-off-by: Oliver Neukum <oneukum@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* Merge branch 'i2c-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6Linus Torvalds2007-05-22
|\ | | | | | | | | | | | | * 'i2c-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6: i2c-s3c2410: Fix build warning i2c-tiny-usb: Fix truncated adapter name i2c: Legacy i2c drivers shouldn't issue uevents
| * i2c-s3c2410: Fix build warningArnaud Patard2007-05-22
| | | | | | | | | | | | | | | | | | | | Fix for the following build warning: CC drivers/i2c/busses/i2c-s3c2410.o drivers/i2c/busses/i2c-s3c2410.c: In function 's3c24xx_i2c_probe': drivers/i2c/busses/i2c-s3c2410.c:839: warning: format '%ld' expects type 'long int', but argument 4 has type 'resource_size_t' Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org> Signed-off-by: Jean Delvare <khali@linux-fr.org>
| * i2c-tiny-usb: Fix truncated adapter nameJean Delvare2007-05-22
| | | | | | | | | | Signed-off-by: Jean Delvare <khali@linux-fr.org> Cc: Till Harbaum <lists@harbaum.org>
| * i2c: Legacy i2c drivers shouldn't issue ueventsDavid Brownell2007-05-22
| | | | | | | | | | | | | | | | | | | | | | | | Prevent legacy drivers from issuing uevents for device creation/removal, so that userspace can't cause modprobing loops for them. This became a problem for some legacy PC drivers. I can't easily see it becoming an issue with I2C legacy drivers, but consistency-in-paranoia seems likely to be a good thing here. For usable i2c-level driver model uevents, just switch to a new-style driver. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* | Merge master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6Linus Torvalds2007-05-22
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6: sh: Fix dreamcast build for IRQ changes. sh: Fix clock multiplier on SH7722. sh: Wire up kdump crash kernel exec in die(). sh: sr.bl toggling around idle sleep. sh: disable genrtc support. fs: Kill sh dependency for binfmt_flat. sh: Disable psw support for R7785RP. sh: Fix page size alignment in __copy_user_page(). sh: Fix up various compile warnings for SE boards. sh: Wire up signalfd/timerfd/eventfd syscalls. sh: revert addition of page fault notifiers spelling fixes: arch/sh/ input: hp680_ts compile fixes. sh: landisk: Header cleanups. sh: landisk: rtc-rs5c313 support. sh: Kill off pmb slab cache destructor. sh: Fix up psw build rules for r7780rp. sh: Shut up compiler warnings in __do_page_fault().
| * | sh: disable genrtc support.Paul Mundt2007-05-21
| | | | | | | | | | | | | | | | | | sh never had support for this, so remove the option entirely. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * | input: hp680_ts compile fixes.Kristoffer Ericson2007-05-13
| | | | | | | | | | | | | | | | | | | | | | | | Trivial fix to follow the DECLARE_WORK changes, this makes the HD64461 touchscreen driver work properly again. As pointed out by David Howells. Signed-off-by: Kristoffer Ericson <kristoffer.ericson@gmail.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | | V4L/DVB (5691): Ov7670: reset clkrc in rgb565 modeJonathan Corbet2007-05-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A bug in the ov7670 sensor causes it to introduce noise unless the CLKRC register is rewritten *after* setting the image mode. Naturally, resetting CLKRC in this way will cause other modes to fail. So carefully poke the register only when indicated. Signed-off-by: Jonathan Corbet <corbet@lwn.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | | V4L/DVB (5690): Cafe_ccic: Properly power down the sensorJonathan Corbet2007-05-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The proper method for powering down the sensor on OLPC systems has changed somewhat; in particular, the sensor must be powered down completely (rather than simply told to power down) or the associated "camera active" LED will stay on. Signed-off-by: Jonathan Corbet <corbet@lwn.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | | V4L/DVB (5680): Tuner-simple.c fix suport for SECAM with FI1216MFmatthieu castet2007-05-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Allow to use SECAM-BG with the FI1216MF tuner. The selection is done with the secam=B module argument. The default behaviour should be the same as before. Signed-off-by: Matthieu CASTET <castet.matthieu@free.fr> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Acked-by: Hartmut Hackmann <hartmut.hackmann@t-online.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | | V4L/DVB (5630): Dvb-core: Handle failures to create devicesSimon Arlott2007-05-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dvb-core is not started early enough when device drivers that use dvb are compiled in so dvb_register_device fails (silently) since dvb_class is NULL, this runs dvb_init using subsys_initcall instead of module_init. dvb_register_device will now check the return value of class_device_create. Signed-off-by: Simon Arlott <simon@fire.lp0.eu> Signed-off-by: Trent Piepho <xyzzy@speakeasy.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | | V4L/DVB (5639a): Fix dst usage countManu Abraham2007-05-22
| | | | | | | | | | | | | | | Signed-off-by: Manu Abraham <manu@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | | V4L/DVB (5670): Adding new fields to v4l2_pix_format broke the ABI, reverted ↵Hans Verkuil2007-05-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | that change Reverted the change to struct v4l2_pix_format. I completely missed that this struct was used by existing ioctls so that changing it broke the ABI. I will have to think of another way of setting the top/left coordinates but for now this change is reverted to preserve compatibility. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | | V4L/DVB (5640): Fix: em28xx shouldn't be selecting VIDEO_BUFMauro Carvalho Chehab2007-05-22
| | | | | | | | | | | | Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | | V4L/DVB (5639): Fix Kconfig dependencies for ivtvMauro Carvalho Chehab2007-05-22
| |/ |/| | | | | | | | | ivtv were wrongly marked as dependent of USB. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | Merge branch 'upstream-linus' of ↵Linus Torvalds2007-05-21
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6 * 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6: Add constant for FCS/CRC length (frame check sequence) declance: Remove a dangling spin_unlock_irq() thingy e1000: Don't enable polling in open() (was: e1000: assertion hit in e1000_clean(), kernel 2.6.21.1)
| * | declance: Remove a dangling spin_unlock_irq() thingyMaciej W. Rozycki2007-05-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | The spin_unlock_irq() invocation in lance_start_xmit() has no matching locking request. The call is already protected by netif_tx_lock, so remove the statement. Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org> Signed-off-by: Jeff Garzik <jeff@garzik.org>
| * | e1000: Don't enable polling in open() (was: e1000: assertion hit in ↵Auke Kok2007-05-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | e1000_clean(), kernel 2.6.21.1) Herbert Xu wrote: "netif_poll_enable can only be called if you've previously called netif_poll_disable. Otherwise a poll might already be in action and you may get a crash like this." Removing the call to netif_poll_enable in e1000_open should fix this issue, the only other call to netif_poll_enable is in e1000_up() which is only reached after a device reset or resume. Bugzilla: http://bugzilla.kernel.org/show_bug.cgi?id=8455 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=240339 Tested by Doug Chapman <doug.chapman@hp.com> Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com> Acked-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* | | Merge branch 'upstream-linus' of ↵Linus Torvalds2007-05-21
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev * 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev: libata: bump versions libata: Trim trailing whitespace libata: Kiss post_set_mode goodbye ata_piix: clean up pata_hpt366: Enable bits are unreliable so don't use them libata: Add Seagate STT20000A to DMA blacklist. ahci: disable 64bit dma on sb600
| * | libata: bump versionsJeff Garzik2007-05-21
| | | | | | | | | | | | Signed-off-by: Jeff Garzik <jeff@garzik.org>
| * | libata: Trim trailing whitespaceJeff Garzik2007-05-21
| | | | | | | | | | | | Signed-off-by: Jeff Garzik <jeff@garzik.org>
| * | libata: Kiss post_set_mode goodbyeAlan Cox2007-05-21
| | | | | | | | | | | | | | | | | | | | | As of the -mm tree we don't have post_set_mode users any more. Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
| * | ata_piix: clean upAlan Cox2007-05-21
| | | | | | | | | | | | | | | | | | | | | | | | With cable methods in place we don't need a custom error handler for SATA so get rid of it Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
| * | pata_hpt366: Enable bits are unreliable so don't use themAlan Cox2007-05-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | Various people had problems with both old and new IDE when hpt366 enable bits started getting honoured. It turns out they are not reliable so don't rely on them Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
| * | libata: Add Seagate STT20000A to DMA blacklist.Dave Jones2007-05-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | http://bugzilla.kernel.org/show_bug.cgi?id=1044 points out an additional hard disk that doesn't handle DMA transfers correctly. This patch is the libata variant of the earlier patch to drivers/ide/ Signed-off-by: Dave Jones <davej@redhat.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
| * | ahci: disable 64bit dma on sb600Tejun Heo2007-05-21
| | | | | | | | | | | | | | | | | | | | | SB600 claims it can do 64bit DMA but it can't. Disable it. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* | | Merge branch 'for-linus' of ↵Linus Torvalds2007-05-21
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband * 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband: IB/cm: Improve local id allocation IPoIB/cm: Fix SRQ WR leak IB/ipoib: Fix typos in error messages IB/mlx4: Check if SRQ is full when posting receive IB/mlx4: Pass send queue sizes from userspace to kernel IB/mlx4: Fix check of opcode in mlx4_ib_post_send() mlx4_core: Fix array overrun in dump_dev_cap_flags() IB/mlx4: Fix RESET to RESET and RESET to ERROR transitions IB/mthca: Fix RESET to ERROR transition IB/mlx4: Set GRH:HopLimit when sending globally routed MADs IB/mthca: Set GRH:HopLimit when building MLX headers IB/mlx4: Fix check of max_qp_dest_rdma in modify QP IB/mthca: Fix use-after-free on device restart IB/ehca: Return proper error code if register_mr fails IPoIB: Handle P_Key table reordering IB/core: Use start_port() and end_port() IB/core: Add helpers for uncached GID and P_Key searches IB/ipath: Fix potential deadlock with multicast spinlocks IB/core: Free umem when mm is already gone
| * | | IB/cm: Improve local id allocationMichael S. Tsirkin2007-05-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The IB CM uses an idr for local id allocations, with a running counter as start_id. This fails to generate distinct ids if 1. An id is constantly created and destroyed 2. A chunk of ids just beyond the current next_id value is occupied This in turn leads to an increased chance of connection request being mis-detected as a duplicate, sometimes for several retries, until next_id gets past the block of allocated ids. This has been observed in practice. As a fix, remember the last id allocated and start immediately above it. This also fixes a problem with the old code, where next_id might overflow and become negative. Signed-off-by: Michael S. Tsirkin <mst@dev.mellanox.co.il> Acked-by: Sean Hefty <sean.hefty@intel.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
| * | | IPoIB/cm: Fix SRQ WR leakMichael S. Tsirkin2007-05-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SRQ WR leakage has been observed with IPoIB/CM: e.g. flipping ports on and off will, with time, leak out all WRs and then all connections will start getting RNR NAKs. Fix this in the way suggested by spec: move the QP being destroyed to the error state, wait for "Last WQE Reached" event and then post WR on a "drain QP" connected to the same CQ. Once we observe a completion on the drain QP, it's safe to call ib_destroy_qp. Signed-off-by: Michael S. Tsirkin <mst@dev.mellanox.co.il> Signed-off-by: Roland Dreier <rolandd@cisco.com>
| * | | IB/ipoib: Fix typos in error messagesMichael S. Tsirkin2007-05-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Trivial error message fixups. Signed-off-by: Michael S. Tsirkin <mst@dev.mellanox.co.il> Signed-off-by: Roland Dreier <rolandd@cisco.com>
| * | | IB/mlx4: Check if SRQ is full when posting receiveRoland Dreier2007-05-20
| | | | | | | | | | | | | | | | | | | | | | | | Make mlx4_post_srq_recv() fail if the SRQ is full (head == tail). Signed-off-by: Roland Dreier <rolandd@cisco.com>
| * | | IB/mlx4: Pass send queue sizes from userspace to kernelEli Cohen2007-05-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Pass the number of WQEs for the send queue and their size from userspace to the kernel to avoid having to keep the QP size calculations in sync between the kernel driver and libmlx4. This fixes a bug seen with the current mlx4_ib driver and current libmlx4 caused by a difference in the calculated sizes for SQ WQEs. Also, this gives more flexibility for userspace to experiment with using multiple WQE BBs for a single SQ WQE. Signed-off-by: Eli Cohen <eli@mellanox.co.il> Signed-off-by: Roland Dreier <rolandd@cisco.com>
| * | | IB/mlx4: Fix check of opcode in mlx4_ib_post_send()Roland Dreier2007-05-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | wr->opcode is invalid if it's >= ARRAY_SIZE(mlx4_ib_opcode), not just strictly >. This was spotted by the Coverity checker (CID 1643). Signed-off-by: Roland Dreier <rolandd@cisco.com>
| * | | mlx4_core: Fix array overrun in dump_dev_cap_flags()Roland Dreier2007-05-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Don't overrun fname[] array when decoding device flags. This was spotted by the Coverity checker (CID 1642). Signed-off-by: Roland Dreier <rolandd@cisco.com>
| * | | IB/mlx4: Fix RESET to RESET and RESET to ERROR transitionsMichael S. Tsirkin2007-05-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | According to the IB spec, a QP can be moved from RESET back to RESET or to the ERROR state, but mlx4 firmware does not support this and returns an error if we try. Fix the RESET to RESET transition by just returning 0 without doing anything, and fix RESET to ERROR by moving the QP from RESET to INIT with dummy parameters and then transitioning from INIT to ERROR. Signed-off-by: Michael S. Tsirkin <mst@dev.mellanox.co.il> Signed-off-by: Roland Dreier <rolandd@cisco.com>
| * | | IB/mthca: Fix RESET to ERROR transitionMichael S. Tsirkin2007-05-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | According to the IB spec, a QP can be moved from RESET to the ERROR state, but mthca firmware does not support this and returns an error if we try. Work around this FW limitation by moving the QP from RESET to INIT with dummy parameters and then transitioning from INIT to ERROR. Signed-off-by: Michael S. Tsirkin <mst@dev.mellanox.co.il> Signed-off-by: Roland Dreier <rolandd@cisco.com>
| * | | IB/mlx4: Set GRH:HopLimit when sending globally routed MADsRoland Dreier2007-05-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This is the same issue discovered in mthca by Rolf Manderscheid <rvm@obsidianresearch.com>. Signed-off-by: Roland Dreier <rolandd@cisco.com>
| * | | IB/mthca: Set GRH:HopLimit when building MLX headersRolf Manderscheid2007-05-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Global CM packets used by rmda_cm were being sent with a GRH:hopLimit of zero, causing them to be dropped by the router. The problem is a missing initialization of the hop_limit field in mthca_read_ah(), which was called by build_mlx_header() when sending a MAD on QP1. Signed-off-by: Rolf Manderscheid <rvm@obsidianresearch.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
| * | | IB/mlx4: Fix check of max_qp_dest_rdma in modify QPEli Cohen2007-05-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | max_qp_dest_rdma is already in natural units - no need to shift. This was discovered by a test that deliberately requests more outstanding atomic operation than the device supports. Found by Sagi Rotem at Mellanox. Signed-off-by: Eli Cohen <eli@mellanox.co.il> Signed-off-by: Roland Dreier <rolandd@cisco.com>
| * | | IB/mthca: Fix use-after-free on device restartAli Ayoub2007-05-19
| | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Michael S. Tsirkin <mst@dev.mellanox.co.il> Signed-off-by: Roland Dreier <rolandd@cisco.com>
| * | | IB/ehca: Return proper error code if register_mr failsHoang-Nam Nguyen2007-05-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Set the return code of ehca_register_mr() to ENOMEM if the corresponding firmware call fails due to out of resources. Some other error codes were explicitly mapped to EINVAL -- just remove those cases so they get mapped to the default case, which already returns EINVAL anyway. Signed-off-by: Hoang-Nam Nguyen <hnguyen@de.ibm.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
| * | | IPoIB: Handle P_Key table reorderingYosef Etigin2007-05-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SM reconfiguration or failover possibly causes a shuffling of the values in the P_Key table. Right now, IPoIB only queries for the P_Key index once when it creates the device QP, and hence there are problems if the index of a P_Key value changes. Fix this by using the PKEY_CHANGE event to trigger a recheck of the P_Key index. Signed-off-by: Yosef Etigin <yosefe@voltaire.com> Acked-by: Michael S. Tsirkin <mst@dev.mellanox.co.il> Signed-off-by: Roland Dreier <rolandd@cisco.com>
| * | | IB/core: Use start_port() and end_port()Roland Dreier2007-05-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Clean up ib_query_port() and ib_modify_port() slightly by using the just-added start_port() and end_port() helpers. Signed-off-by: Roland Dreier <rolandd@cisco.com>
| * | | IB/core: Add helpers for uncached GID and P_Key searchesYosef Etigin2007-05-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add ib_find_gid() and ib_find_pkey() functions that use uncached device queries. The calls might block but the returns are always up-to-date. Cache P_Key and GID table lengths in core to avoid extra port info queries. Signed-off-by: Yosef Etigin <yosefe@voltaire.com> Acked-by: Michael S. Tsirkin <mst@dev.mellanox.co.il> Signed-off-by: Roland Dreier <rolandd@cisco.com>
| * | | IB/ipath: Fix potential deadlock with multicast spinlocksRoland Dreier2007-05-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Lockdep found the following potential deadlock between mcast_lock and n_mcast_grps_lock: mcast_lock is taken from both interrupt context and process context, so spin_lock_irqsave() must be used to take it. n_mcast_grps_lock is only taken from process context, so at first it seems safe to take it with plain spin_lock(); however, it also nests inside mcast_lock, and hence we could deadlock: cpu A cpu B ipath_mcast_add(): spin_lock_irq(&mcast_lock); ipath_mcast_detach(): spin_lock(&n_mcast_grps_lock); <enter interrupt> ipath_mcast_find(): spin_lock_irqsave(&mcast_lock); spin_lock(&n_mcast_grps_lock); Fix this by using spin_lock_irq() to take n_mcast_grps_lock. Signed-off-by: Roland Dreier <rolandd@cisco.com>