aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2010-10-11net: clear heap allocations for privileged ethtool actionsKees Cook1-3/+3
Several other ethtool functions leave heap uncleared (potentially) by drivers. Some interfaces appear safe (eeprom, etc), in that the sizes are well controlled. In some situations (e.g. unchecked error conditions), the heap will remain unchanged in areas before copying back to userspace. Note that these are less of an issue since these all require CAP_NET_ADMIN. Cc: [email protected] Signed-off-by: Kees Cook <[email protected]> Acked-by: Ben Hutchings <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2010-10-11NET: wimax, fix use after freeJiri Slaby1-13/+13
Stanse found that i2400m_rx frees skb, but still uses skb->len even though it has skb_len defined. So use skb_len properly in the code. And also define it unsinged int rather than size_t to solve compilation warnings. Signed-off-by: Jiri Slaby <[email protected]> Cc: Inaky Perez-Gonzalez <[email protected]> Cc: [email protected] Acked-by: Inaky Perez-Gonzalez <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2010-10-11ATM: iphase, remove sleep-inside-atomicJiri Slaby2-7/+1
Stanse found that ia_init_one locks a spinlock and inside of that it calls ia_start which calls: * request_irq * tx_init which does kmalloc(GFP_KERNEL) Both of them can thus sleep and result in a deadlock. I don't see a reason to have a per-device spinlock there which is used only there and inited right before the lock location. So remove it completely. Signed-off-by: Jiri Slaby <[email protected]> Cc: Chas Williams <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2010-10-11ATM: mpc, fix use after freeJiri Slaby1-1/+1
Stanse found that mpc_push frees skb and then it dereferences it. It is a typo, new_skb should be dereferenced there. Signed-off-by: Jiri Slaby <[email protected]> Cc: Eric Dumazet <[email protected]> Acked-by: Eric Dumazet <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2010-10-11ATM: solos-pci, remove use after freeJiri Slaby1-3/+5
Stanse found we do in console_show: kfree_skb(skb); return skb->len; which is not good. Fix that by remembering the len and use it in the function instead. Signed-off-by: Jiri Slaby <[email protected]> Cc: Chas Williams <[email protected]> Acked-by: Eric Dumazet <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2010-10-11Merge branch 'rc-fixes' of ↵Linus Torvalds4-7/+5
git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6 * 'rc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6: kbuild: fix oldnoconfig to do the right thing kconfig: Temporarily disable dependency warnings kconfig: delay symbol direct dependency initialization
2010-10-11Merge branch 'for_linus' of ↵Linus Torvalds1-32/+90
git://git.kernel.org/pub/scm/linux/kernel/git/mjg59/platform-drivers-x86 * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mjg59/platform-drivers-x86: IPS driver: Fix limit clamping when reducing CPU power [PATCH 2/2] IPS driver: disable CPU turbo IPS driver: apply BIOS provided CPU limit if different from default intel_ips -- ensure we do not enable gpu turbo mode without driver linkage intel_ips: Print MCP limit exceeded values. IPS driver: verify BIOS provided limits IPS driver: don't toggle CPU turbo on unsupported CPUs NULL pointer might be used in ips_monitor() Release symbol on error-handling path of ips_get_i915_syms() old_cpu_power is wrongly divided by 65535 in ips_monitor() seqno mask of THM_ITV register is 16bit
2010-10-11Merge branch 'for-linus' of ↵Linus Torvalds1-1/+3
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: Input: wacom - fix pressure in Cintiq 21UX2
2010-10-11Merge branch 'for-linus' of ↵Linus Torvalds3-3/+13
git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: ALSA: hda - Add another HP DV6 quirk OSS: soundcard: locking bug in sound_ioctl() ASoC: Update links for Wolfson MAINTAINERS entry ASoC: Add Dimitris Papastamos to Wolfson maintainers ASoC: Add Jassi Brar as Samsung maintainer
2010-10-11Merge branch 'fix/asoc' into for-linusTakashi Iwai1-1/+9
2010-10-11ALSA: hda - Add another HP DV6 quirkLuke Yelavich1-0/+2
BugLink: https://bugs.launchpad.net/bugs/653420 Add another HP DV6 notebook (103c:363e) to use STAC_HP_DV5. Signed-off-by: Luke Yelavich <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2010-10-11OSS: soundcard: locking bug in sound_ioctl()Dan Carpenter1-2/+2
We shouldn't return directly here because we're still holding the &soundcard_mutex. This bug goes all the way back to the start of git. It's strange that no one has complained about it as a runtime bug. CC: [email protected] Signed-off-by: Dan Carpenter <[email protected]> Acked-by: Arnd Bergmann <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2010-10-11KVM: x86: Move TSC reset out of vmcb_initZachary Amsden1-1/+1
The VMCB is reset whenever we receive a startup IPI, so Linux is setting TSC back to zero happens very late in the boot process and destabilizing the TSC. Instead, just set TSC to zero once at VCPU creation time. Why the separate patch? So git-bisect is your friend. Signed-off-by: Zachary Amsden <[email protected]> Signed-off-by: Marcelo Tosatti <[email protected]>
2010-10-11KVM: x86: Fix SVM VMCB resetZachary Amsden1-1/+1
On reset, VMCB TSC should be set to zero. Instead, code was setting tsc_offset to zero, which passes through the underlying TSC. Signed-off-by: Zachary Amsden <[email protected]> Signed-off-by: Marcelo Tosatti <[email protected]>
2010-10-11x86, AMD, MCE thresholding: Fix the MCi_MISCj iteration orderBorislav Petkov1-6/+3
This fixes possible cases of not collecting valid error info in the MCE error thresholding groups on F10h hardware. The current code contains a subtle problem of checking only the Valid bit of MSR0000_0413 (which is MC4_MISC0 - DRAM thresholding group) in its first iteration and breaking out if the bit is cleared. But (!), this MSR contains an offset value, BlkPtr[31:24], which points to the remaining MSRs in this thresholding group which might contain valid information too. But if we bail out only after we checked the valid bit in the first MSR and not the block pointer too, we miss that other information. The thing is, MC4_MISC0[BlkPtr] is not predicated on MCi_STATUS[MiscV] or MC4_MISC0[Valid] and should be checked prior to iterating over the MCI_MISCj thresholding group, irrespective of the MC4_MISC0[Valid] setting. Signed-off-by: Borislav Petkov <[email protected]> Cc: <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
2010-10-10net/fec: carrier off initially to avoid root mount failureOskar Schirmer1-0/+3
with hardware slow in negotiation, the system did freeze while trying to mount root on nfs at boot time. the link state has not been initialised so network stack tried to start transmission right away. this caused instant retries, as the driver solely stated business upon link down, rendering the system unusable. notify carrier off initially to prevent transmission until phylib will report link up. Signed-off-by: Oskar Schirmer <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2010-10-10Input: wacom - fix pressure in Cintiq 21UX2Aristeu Rozanski1-1/+3
Currently the pressure range in Cintiq 21UX2 is limited to half of the supported. This patch fixes the problem. Signed-off-by: Aristeu Rozanski <[email protected]> Acked-by: Ping Cheng <[email protected]> CC: [email protected] Signed-off-by: Dmitry Torokhov <[email protected]>
2010-10-09kbuild: fix oldnoconfig to do the right thingKyle McMartin1-1/+1
Commit 861b4ea4 broke oldnoconfig when removed the oldnoconfig checks on if (input_mode == nonint_oldconfig || input_mode == oldnoconfig) { if (input_mode == nonint_oldconfig && sym->name && !sym_is_choice_value(sym)) { to avoid oldnoconfig chugging through the else stanza. Fix that to restore expected behaviour (which I've confirmed in the Fedora kernel build that the configs end up looking the same.) Signed-off-by: Kyle McMartin <[email protected]> Acked-by: Sam Ravnborg <[email protected]> Signed-off-by: Michal Marek <[email protected]>
2010-10-09kconfig: Temporarily disable dependency warningsMichal Marek1-0/+2
After fixing a use-after-free bug in kconfig, a 'make defconfig' or 'make allmodconfig' fills the screen with warnings that were not detected before. Given that we are close to the release now, disable the warnings temporarily and deal with them after 2.6.36. Signed-off-by: Michal Marek <[email protected]>
2010-10-09Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6Linus Torvalds23-380/+590
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (27 commits) net: clear heap allocation for ETHTOOL_GRXCLSRLALL isdn: strcpy() => strlcpy() Revert "mac80211: use netif_receive_skb in ieee80211_tx_status callpath" mac80211: delete AddBA response timer ath9k_hw: fix regression in ANI listen time calculation caif: fix two caif_connect() bugs bonding: fix WARN_ON when writing to bond_master sysfs file skge: add quirk to limit DMA MAINTAINERS: update Intel LAN Ethernet info e1000e.txt: Add e1000e documentation e1000.txt: Update e1000 documentation ixgbevf.txt: Update ixgbevf documentation cls_u32: signedness bug Bluetooth: Disallow to change L2CAP_OPTIONS values when connected sctp: Fix out-of-bounds reading in sctp_asoc_get_hmac() sctp: prevent reading out-of-bounds memory ipv4: correct IGMP behavior on v3 query during v2-compatibility mode netdev: Depend on INET before selecting INET_LRO Revert "ipv4: Make INET_LRO a bool instead of tristate." net: Fix the condition passed to sk_wait_event() ...
2010-10-09Merge branch 'idle-release' of ↵Linus Torvalds1-5/+5
git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6 * 'idle-release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6: intel_idle: enable Atom C6
2010-10-09Merge branch 'release' of ↵Linus Torvalds2-0/+18
git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: ACPI: add DMI to disable AML Vista compatibility on MSI GX723 Notebook ACPI: Handle ACPI0007 Device in acpi_early_set_pdc
2010-10-09Merge branch 'for-linus' of ↵Linus Torvalds4-23/+33
git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: ceph: update issue_seq on cap grant ceph: send cap release message early on failed revoke. ceph: Update max_len with minimum required size ceph: Fix return value of encode_fh function ceph: avoid null deref in osd request error path ceph: fix list_add usage on unsafe_writes list
2010-10-09Merge branch 'for-linus' of git://git.open-osd.org/linux-open-osdLinus Torvalds1-1/+7
* 'for-linus' of git://git.open-osd.org/linux-open-osd: exofs: Fix double page_unlock BUG in write_begin/end
2010-10-09Merge branch 'drm-intel-fixes' of ↵Linus Torvalds1-0/+3
git://git.kernel.org/pub/scm/linux/kernel/git/ickle/drm-intel * 'drm-intel-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/ickle/drm-intel: drm/i915: Prevent module unload to avoid random memory corruption
2010-10-09Merge branch 's5p-fixes-for-linus' of ↵Linus Torvalds7-7/+30
git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung * 's5p-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung: ARM: SAMSUNG: Add a workaround for get_clock() for serial driver ARM: S5P: Bug fix on errors of build with CONFIG_PREEMPT_NONE ARM: SAMSUNG: Fix build warnings because of unused codes
2010-10-09Define _addr_lsb in siginfo_t for mipsAndi Kleen1-0/+1
Define an _addr_lsb field in the mips and ia64 siginfo_ts, following the asm-generic version. This just puts the field over padding. This fixes a compilation problem introduced with a337fda. Cc: [email protected] Cc: [email protected] Signed-off-by: Andi Kleen <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2010-10-09virtio-blk: fix request leak.Mike Snitzer1-1/+5
Must drop reference taken by blk_make_request(). Signed-off-by: Mike Snitzer <[email protected]> Signed-off-by: Rusty Russell <[email protected]> Cc: [email protected] # .35.x Signed-off-by: Linus Torvalds <[email protected]>
2010-10-09r8169: use device model DMA APIStanislaw Gruszka1-24/+29
Use DMA API as PCI equivalents will be deprecated. This change also allow to allocate with GFP_KERNEL where possible. Tested-by: Neal Becker <[email protected]> Signed-off-by: Stanislaw Gruszka <[email protected]> Acked-by: Eric Dumazet <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2010-10-09r8169: allocate with GFP_KERNEL flag when able to sleepStanislaw Gruszka1-6/+6
We have fedora bug report where driver fail to initialize after suspend/resume because of memory allocation errors: https://bugzilla.redhat.com/show_bug.cgi?id=629158 To fix use GFP_KERNEL allocation where possible. Tested-by: Neal Becker <[email protected]> Signed-off-by: Stanislaw Gruszka <[email protected]> Acked-by: Eric Dumazet <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2010-10-08Merge branch 'msi-dmi' into releaseLen Brown1-0/+17
2010-10-08Merge branch 'pdc-regression' into releaseLen Brown1-0/+1
2010-10-08intel_idle: enable Atom C6Len Brown1-5/+5
ATM-C6 was commented out, pending public documentation. https://bugzilla.kernel.org/show_bug.cgi?id=19762 Tested-by: Dennis Jansen <Dennis.Jansen@...> Signed-off-by: Len Brown <[email protected]>
2010-10-08net: clear heap allocation for ETHTOOL_GRXCLSRLALLKees Cook1-1/+1
Calling ETHTOOL_GRXCLSRLALL with a large rule_cnt will allocate kernel heap without clearing it. For the one driver (niu) that implements it, it will leave the unused portion of heap unchanged and copy the full contents back to userspace. Signed-off-by: Kees Cook <[email protected]> Acked-by: Ben Hutchings <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2010-10-08Merge branch 'master' of ↵David S. Miller3-3/+5
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6
2010-10-08isdn: strcpy() => strlcpy()Dan Carpenter1-4/+14
setup.phone and setup.eazmsn are 32 character buffers. rcvmsg.msg_data.byte_array is a 48 character buffer. sc_adapter[card]->channel[rcvmsg.phy_link_no - 1].dn is 50 chars. The rcvmsg struct comes from the memcpy_fromio() in receivemessage(). I guess that means it's data off the wire. I'm not very familiar with this code but I don't see any reason to assume these strings are NULL terminated. Also it's weird that "dn" in a 50 character buffer but we only seem to use 32 characters. In drivers/isdn/sc/scioc.h, "dn" is only a 49 character buffer. So potentially there is still an issue there. The important thing for now is to prevent the memory corruption. Signed-off-by: Dan Carpenter <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2010-10-08exofs: Fix double page_unlock BUG in write_begin/endBoaz Harrosh1-1/+7
This BUG is there since the first submit of the code, but only triggered in last Kernel. It's timing related do to the asynchronous object-creation behaviour of exofs. (Which should be investigated farther) The bug is obvious hence the fixed. Signed-off-by: Boaz Harrosh <Boaz Harrosh [email protected]>
2010-10-08drm/i915: Prevent module unload to avoid random memory corruptionChris Wilson1-0/+3
The i915 driver has quite a few module unload bugs, the known ones at least have fixes that are targeting 2.6.37. However, in order to maintain a stable kernel, we should prevent this known random memory corruption following driver unload. This should have very low impact on normal users who are unlikely to need to unload the i915 driver. Suggested-by: Thomas Gleixner <[email protected]> Acked-by: Daniel Vetter <[email protected]> Cc: [email protected] Signed-off-by: Chris Wilson <[email protected]>
2010-10-08cpuimx27: fix i2c bus selectionEric Bénard1-1/+1
Recent clean of i.MX devices registration changed the i2C bus number selected for our platform (Freescale start peripheral ID at 1, kernel now start it at 0 so i.MX27's i2c 1 is kernel's i2c 0). Without this fix, i2c is unusable on this platform. Signed-off-by: Eric Bénard <[email protected]> Acked-by: Uwe Kleine-König <[email protected]> Signed-off-by: Sascha Hauer <[email protected]>
2010-10-08cpuimx27: fix compile when ULPI is selectedEric Bénard1-0/+1
without this patch we get : arch/arm/mach-imx/built-in.o: In function `eukrea_cpuimx27_init': eukrea_mbimx27-baseboard.c:(.init.text+0x44c): undefined reference to `mxc_ulpi_access_ops' Signed-off-by: Eric Bénard <[email protected]> Signed-off-by: Sascha Hauer <[email protected]>
2010-10-08ARM: 6435/1: Fix HWCAP_TLS flag for ARM11MPCore/Cortex-A9Tony Lindgren1-1/+1
Commit 14eff1812679c76564b775aa95cdd378965f6cfb added proper detection for ARM11MPCore/Cortex-A9 instead of detecting them as ARMv7. However, it was missing the HWCAP_TLS flags. HWCAP_TLS is needed if support for earlier ARMv6 is compiled into the same kernel. Without HWCAP_TLS flags the userspace won't work unless nosmp is specified: Kernel panic - not syncing: Attempted to kill init! CPU0: stopping <c005d5e4>] (unwind_backtrace+0x0/0xec) from [<c004c2f8>] (do_IPI+0xfc/0x184) <c004c2f8>] (do_IPI+0xfc/0x184) from [<c03f25bc>] (__irq_svc+0x9c/0x160) Exception stack(0xc0565f80 to 0xc0565fc8) 5f80: 00000001 c05772a0 00000000 00003a61 c0564000 c05cf500 c003603c c0578600 5fa0: 80033ef0 410fc091 0000001f 00000000 00000000 c0565fc8 c00b91f8 c0057cb4 5fc0: 20000013 ffffffff [<c03f25bc>] (__irq_svc+0x9c/0x160) from [<c0057cb4>] (default_idle+0x30/0x38) [<c0057cb4>] (default_idle+0x30/0x38) from [<c005829c>] (cpu_idle+0x9c/0xf8) [<c005829c>] (cpu_idle+0x9c/0xf8) from [<c0008d48>] (start_kernel+0x2a4/0x300) [<c0008d48>] (start_kernel+0x2a4/0x300) from [<80008084>] (0x80008084) Signed-off-by: Tony Lindgren <[email protected]> Signed-off-by: Russell King <[email protected]>
2010-10-08ARM: 6436/1: AT91: Fix power-saving in idle-mode on 926T processorsAnders Larsen1-4/+3
According to Atmel, their 926T processors (AT91 post RM9200) requires 'Wait for Interrupt' mode be entered right after disabling the processor clock in order to minimise current consumption when idle, so do both provided we're not running on a 920T (an RM9200). Furthermore, get rid of the #ifndef CONFIG_DEBUG_KERNEL, since arch_idle() can be turned off completely with the kernel parameter 'nohlt'. Cc: Andrew Victor <[email protected]> Signed-off-by: Anders Larsen <[email protected]> Signed-off-by: Russell King <[email protected]>
2010-10-08x86, mce, therm_throt.c: Fix missing curly braces in error handling logicJin Dongming1-1/+2
When the feature PTS is not supported by CPU, the sysfile package_power_limit_count for package should not be generated. This patch is used for fixing missing { and }. The patch is not complete as there are other error handling problems in this function - but that can wait until the merge window. Signed-off-by: Jin Dongming <[email protected]> Reviewed-by: Fenghua Yu <[email protected]> Acked-by: Jean Delvare <[email protected]> Cc: Brown Len <[email protected]> Cc: Guenter Roeck <[email protected]> Cc: Hidetoshi Seto <[email protected]> Cc: [email protected] <[email protected]> LKML-Reference: <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
2010-10-08ARM: SAMSUNG: Add a workaround for get_clock() for serial driverMarek Szyprowski1-1/+26
Serial drivers call get_clock() very early, before platform bus has been set up, this requires a special check to let them get a proper clock. Without this patch, a serial console is broken on S5PV310 and S5PC210 boards. Signed-off-by: Marek Szyprowski <[email protected]> Signed-off-by: Kyungmin Park <[email protected]> [[email protected]: fix coding-style] Signed-off-by: Kukjin Kim <[email protected]> Cc: Ben Dooks <[email protected]>
2010-10-08ARM: S5P: Bug fix on errors of build with CONFIG_PREEMPT_NONESeungChull Suh4-0/+4
This patch adds header <linux/sched.h> into the below files for build with CONFIG_PREEMPT_NONE. arch/arm/mach-s5p6440/cpu.c arch/arm/mach-s5p6442/cpu.c arch/arm/mach-s5pc100/cpu.c arch/arm/mach-s5pv210/cpu.c Following is error message of in case of s5pv210_defconfig with CONFIG_PREEMPT_NONE. arch/arm/mach-s5pv210/cpu.c:91: error: implicit declaration of function 'need_resched' Signed-off-by: SeungChull Suh <[email protected]> [[email protected]: removed mach-s5p64x0/cpu.c] [[email protected]: added fix mach-s5p6440/cpu.c] Signed-off-by: Kukjin Kim <[email protected]>
2010-10-08ARM: SAMSUNG: Fix build warnings because of unused codesKukjin Kim2-6/+0
This patch removes following unused codes for removing build warnings. arch/arm/plat-samsung/adc.c:438: warning: unused variable 'flags' arch/arm/mach-s5pv210/clock.c:176: warning: 's5pv210_clk_ip4_ctrl' defined but not used Signed-off-by: Kukjin Kim <[email protected]>
2010-10-07Merge branch 'hwpoison-fixes' of ↵Linus Torvalds3-7/+15
git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-mce-2.6 * 'hwpoison-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-mce-2.6: HWPOISON: Stop shrinking at right page count HWPOISON: Report correct address granuality for AO huge page errors HWPOISON: Copy si_addr_lsb to user page-types.c: fix name of unpoison interface
2010-10-07Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-blockLinus Torvalds2-4/+9
* 'for-linus' of git://git.kernel.dk/linux-2.6-block: elevator: fix oops on early call to elevator_change()
2010-10-07Merge branch 'for-linus' of git://neil.brown.name/mdLinus Torvalds2-5/+8
* 'for-linus' of git://neil.brown.name/md: md: check return code of read_sb_page md/raid1: minor bio initialisation improvements. md/raid1: avoid overflow in raid1 resync when bitmap is in use.
2010-10-07Merge branch 'drm-fixes' of ↵Linus Torvalds6-17/+75
git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 * 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: drm: don't drop handle reference on unload drm/ttm: Fix two race conditions + fix busy codepaths