summaryrefslogtreecommitdiff
path: root/include
AgeCommit message (Collapse)AuthorFilesLines
2007-06-17Rework ptep_set_access_flags and fix sun4cBenjamin Herrenschmidt9-36/+82
Some changes done a while ago to avoid pounding on ptep_set_access_flags and update_mmu_cache in some race situations break sun4c which requires update_mmu_cache() to always be called on minor faults. This patch reworks ptep_set_access_flags() semantics, implementations and callers so that it's now responsible for returning whether an update is necessary or not (basically whether the PTE actually changed). This allow fixing the sparc implementation to always return 1 on sun4c. [akpm@linux-foundation.org: fixes, cleanups] Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Hugh Dickins <hugh@veritas.com> Cc: David Miller <davem@davemloft.net> Cc: Mark Fortescue <mark@mtfhpc.demon.co.uk> Acked-by: William Lee Irwin III <wli@holomorphy.com> Cc: "Luck, Tony" <tony.luck@intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-06-17uml: kill x86_64 STACK_TOP_MAXJeff Dike1-0/+1
The x86_64 a.out.h got a definition of STACK_TOP_MAX, which interferes with the UML version. So, just undef it like STACK_TOP. Signed-off-by: Jeff Dike <jdike@linux.intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-06-17spi doc updatesDavid Brownell1-7/+13
Update two points in the SPI interface documentation: - Update description of the "chip stays selected after message ends" mode. In some cases it's required for correctness; it isn't just a performance tweak. (Yes: to use this mode on mult-device busses, another programming interface will be needed. One draft has been circulated already.) - Clarify spi_setup(), highlighting that callers must ensure that no requests are queued (can't change configuration except between I/Os), and that the device must be deselected when this returns (which is a key part of why it's called during device init). Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-06-17i386 mm: use pte_update() in ptep_test_and_clear_dirty()Hugh Dickins1-12/+14
It is not safe to use pte_update_defer() in ptep_test_and_clear_young(): its only user, /proc/<pid>/clear_refs, drops pte lock before flushing TLB. Use the safe though less efficient pte_update() paravirtop in its place. Likewise in ptep_test_and_clear_dirty(), though that has no current use. These are macros (header file dependency stops them from becoming inline functions), so be more liberal with the underscores and parentheses. Signed-off-by: Hugh Dickins <hugh@veritas.com> Cc: Zachary Amsden <zach@vmware.com> Cc: David Rientjes <rientjes@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-06-16Merge branch 'master' of ↵Linus Torvalds2-0/+16
master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 * 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: [RXRPC] net/rxrpc/ar-connection.c: fix NULL dereference [TCP]: Fix logic breakage due to DSACK separation [TCP]: Congestion control API RTT sampling fix
2007-06-16Merge branch 'master' of ↵Linus Torvalds4-96/+28
master.kernel.org:/pub/scm/linux/kernel/git/cooloney/blackfin-2.6 * 'master' of master.kernel.org:/pub/scm/linux/kernel/git/cooloney/blackfin-2.6: (30 commits) Blackfin SMC91X ethernet supporting driver: SMC91C111 LEDs are note drived in the kernel like in uboot Blackfin SPI driver: fix bug SPI DMA incomplete transmission Blackfin SPI driver: tweak spi cleanup function to match newer kernel changes Blackfin RTC drivers: update MAINTAINERS information Blackfin serial driver: decouple PARODD and CMSPAR checking from PARENB Blackfin serial driver: actually implement the break_ctl() function Blackfin serial driver: ignore framing and parity errors Blackfin serial driver: hook up our UARTs STP bit with userspaces CMSPAR Blackfin arch: move HI/LO macros into blackfin.h and punt the rest of macros.h as it includes VDSP macros we never use Blackfin arch: redo our linker script a bit Blackfin arch: make sure we initialize our L1 Data B section properly based on the linked kernel Blackfin arch: fix bug can not wakeup from sleep via push buttons Blackfin arch: add support for Alon Bar-Lev's dynamic kernel command-line Blackfin arch: add missing gpio.h header to fix compiling in some pm configurations Blackfin arch: As Mike pointed out range goes form m..MAX_BLACKFIN_GPIO -1 Blackfin arch: fix spelling typo in output Blackfin arch: try to split up functions like this into smaller units according to LKML review Blackfin arch: add proper ENDPROC() Blackfin arch: move more of our startup code to .init so it can be freed once we are up and running Blackfin arch: unify differences between our diff head.S files -- no functional changes ...
2007-06-16Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linusLinus Torvalds2-3/+20
* 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus: [MIPS] Fix builds where MSC01E_xxx is undefined. [MIPS] Separate performance counter interrupts [MIPS] Malta: Fix for SOCitSC based Maltas
2007-06-16Merge branch 'for-linus' of git://www.atmel.no/~hskinnemoen/linux/kernel/avr32Linus Torvalds2-0/+11
* 'for-linus' of git://www.atmel.no/~hskinnemoen/linux/kernel/avr32: [AVR32] Define ARCH_KMALLOC_MINALIGN to L1_CACHE_BYTES [AVR32] STK1000: Set SPI_MODE_3 in the ltv350qv board info [AVR32] gpio_*_cansleep() fix [AVR32] ratelimit segfault reporting rate
2007-06-16[TCP]: Congestion control API RTT sampling fixIlpo Järvinen2-0/+16
Commit 164891aadf1721fca4dce473bb0e0998181537c6 broke RTT sampling of congestion control modules. Inaccurate timestamps could be fed to them without providing any way for them to identify such cases. Previously RTT sampler was called only if FLAG_RETRANS_DATA_ACKED was not set filtering inaccurate timestamps nicely. In addition, the new behavior could give an invalid timestamp (zero) to RTT sampler if only skbs with TCPCB_RETRANS were ACKed. This solves both problems. Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi> Signed-off-by: David S. Miller <davem@davemloft.net>
2007-06-15Merge master.kernel.org:/pub/scm/linux/kernel/git/kyle/parisc-2.6Linus Torvalds4-8/+23
* master.kernel.org:/pub/scm/linux/kernel/git/kyle/parisc-2.6: (30 commits) [PARISC] remove global_ack_eiem [PARISC] Fix kernel panic in check_ivt [PARISC] Fix bug when syscall nr is __NR_Linux_syscalls [PARISC] be more defensive in process.c::get_wchan [PARISC] fix "reduce size of task_struct on 64-bit machines" fallout [PARISC] fix null ptr deref in unwind.c [PARISC] fix trivial spelling nit in asm/linkage.h [PARISC] remove remnants of parisc-specific softirq code [PARISC] fix section mismatch in smp.c [PARISC] fix "ENTRY" macro redefinition [PARISC] Wire up utimensat/signalfd/timerfd/eventfd syscalls [PARISC] fix section mismatch in superio serial drivers [PARISC] fix section mismatch in parisc eisa driver [PARISC] fix section mismatches in arch/parisc/kernel [PARISC] fix section mismatch in ccio-dma [PARISC] fix section mismatch in parisc STI video drivers [PARISC] fix section mismatch in parport_gsc [PARISC] fix lasi_82596 build [PARISC] Build fixes for power.c [PARISC] kobject is embedded in subsys, not kset ...
2007-06-15Merge branch 'master' of ↵Linus Torvalds4-33/+23
master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6 * 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6: [SPARC64]: Fix args to sun4v_ldc_revoke(). [SPARC64]: Really fix parport. [SPARC64]: Fix IO/MEM space sizing for PCI. [SPARC64]: Wire up cookie based sun4v interrupt registry.
2007-06-15Merge branch 'master' of ↵Linus Torvalds3-0/+31
master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 * 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: [IPV6] addrconf: Fix IPv6 on tuntap tunnels [TCP]: Add missing break to TCP option parsing code [SCTP] Don't disable PMTU discovery when mtu is small [SCTP] Flag a pmtu change request [SCTP] Update pmtu handling to be similar to tcp [SCTP] Fix leak in sctp_getsockopt_local_addrs when copy_to_user fails [SCTP]: Allow unspecified port in sctp_bindx() [SCTP]: Correctly set daddr for IPv6 sockets during peeloff [TCP]: Set initial_ssthresh default to zero in Cubic and BIC. [TCP]: Fix left_out setting during FRTO [TCP]: Disable TSO if MD5SIG is enabled. [PPP_MPPE]: Fix "osize too small" check. [PATCH] mac80211: Don't stop tx queue on master device while scanning. [PATCH] mac80211: fix debugfs tx power reduction output [PATCH] cfg80211: fix signed macaddress in sysfs [IrDA]: f-timer reloading when sending rejected frames. [IrDA]: Fix Rx/Tx path race.
2007-06-15Merge master.kernel.org:/home/rmk/linux-2.6-armLinus Torvalds5-23/+33
* master.kernel.org:/home/rmk/linux-2.6-arm: [ARM] 4445/1: ANUBIS: Fix CPLD registers [ARM] 4444/2: OSIRIS: CPLD suspend fix [ARM] 4443/1: OSIRIS: Add watchdog device to machine devices [ARM] 4442/1: OSIRIS: Fix CPLD register definitions [ARM] VFP: fix section mismatch error
2007-06-14[MIPS] Malta: Fix for SOCitSC based MaltasChris Dearman2-3/+20
And an attempt to tidy up the core/controller differences. Signed-off-by: Chris Dearman <chris@mips.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2007-06-14[AVR32] Define ARCH_KMALLOC_MINALIGN to L1_CACHE_BYTESHaavard Skinnemoen1-0/+9
This allows SLUB debugging to be used without fear of messing up DMA transfers. SPI is one example that easily breaks without this patch. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-06-14[AVR32] gpio_*_cansleep() fixDavid Brownell1-0/+2
The AVR32 <asm/gpio.h> was missing the gpio_*_cansleep() calls, breaking compilation for some code using them. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-06-14[SCTP] Flag a pmtu change requestVlad Yasevich2-0/+13
Currently, if the socket is owned by the user, we drop the ICMP message. As a result SCTP forgets that path MTU changed and never adjusting it's estimate. This causes all subsequent packets to be fragmented. With this patch, we'll flag the association that it needs to udpate it's estimate based on the already updated routing information. Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com> Acked-by: Sridhar Samudrala <sri@us.ibm.com>
2007-06-14[SCTP] Update pmtu handling to be similar to tcpVlad Yasevich1-0/+1
Introduce new function sctp_transport_update_pmtu that updates the transports and destination caches view of the path mtu. Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com> Acked-by: Sridhar Samudrala <sri@us.ibm.com>
2007-06-13[SPARC64]: Fix args to sun4v_ldc_revoke().David S. Miller1-3/+5
First argument is LDC channel ID, then mapping cookie, then the MTE revoke cookie. Signed-off-by: David S. Miller <davem@davemloft.net>
2007-06-13[SPARC64]: Really fix parport.David S. Miller2-30/+17
We were passing a "struct pci_dev *" instead of a "struct device *" to the parport registry routines. No wonder things exploded. The ebus_bus_type hacks can be backed out from asm-sparc64/dma-mapping.h, those were wrong. Signed-off-by: David S. Miller <davem@davemloft.net>
2007-06-13[SPARC64]: Wire up cookie based sun4v interrupt registry.David S. Miller1-0/+1
This will be used for logical domain channel interrupts. Signed-off-by: David S. Miller <davem@davemloft.net>
2007-06-11Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linusLinus Torvalds3-62/+65
* 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus: [MIPS] Fix smp barriers in test_and_{change,clear,set}_bit [MIPS] Fix IP27 build [MIPS] Fix modpost warnings by making start_secondary __cpuinit [MIPS] SMTC: Fix build error caused by nonsense code. [MIPS] SMTC: The MT ASE requires to initialize c0_pagemask and c0_wired. [MIPS] SMTC: Don't continue in set_vi_srs_handler on detected bad arguments. [MIPS] SMTC: Fix warning. [MIPS] Wire up utimensat, signalfd, timerfd, eventfd [MIPS] Atlas: Fix build. [MIPS] Always install the DSP exception handler. [MIPS] SMTC: Don't set and restore irqregs ptr from self_ipi. [MIPS] Fix KMODE for the R3000
2007-06-11Merge branch 'linus-plus-plus' of ↵Linus Torvalds2-1/+3
master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev * 'linus-plus-plus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev: libata: limit post SRST nsect/lbal wait to ~100ms libata: force PIO on IOMEGA ZIP 250 ATAPI libata passthru: update cached device paramters libata passthru: always enforce correct DEV bit libata passthru: map UDMA protocols libata passthru: support PIO multi commands libata passthru: update protocol numbers libata: Correct abuse of language libata-core/sff: Fix multiple assumptions about DMA ahci: Add MCP73/MCP77 support to AHCI driver libata: fix hw_sata_spd_limit initialization libata: print device model and firmware revision for ATAPI devices libata: fix probe time irq printouts libata: disable NCQ for HITACHI HTS541680J9SA00/SB21C7EP remove unused variable in pata_isapnp
2007-06-11Merge branch 'master' of ↵Linus Torvalds1-2/+5
git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/v4l-dvb * 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/v4l-dvb: V4L/DVB (5751): Ivtv: fix ia64 printk format warnings. V4L/DVB (5761): Fix broken b2c2 dependency on non x86 architectures V4L/DVB (5673): Fix audio stuttering for saa711x/ivtv when in radio mode. V4L/DVB (5736): Add V4L2_FBUF_CAP/FLAG_LOCAL/GLOBAL_INV_ALPHA V4L/DVB (5732): Add ivtv CROPCAP support and fix ivtv S_CROP for video output. V4L/DVB (5730): Remove unused V4L2_CAP_VIDEO_OUTPUT_POS V4L/DVB (5720): Usbvision: fix urb allocation and submits V4L/DVB (5716): Tda10086,tda826x: fix tuning, STR/SNR values V4L/DVB (5675): Move big PIO accesses from the interrupt handler to a workhandler V4L/DVB (5699): Cinergyt2: fix file release handler V4L/DVB (5700): Saa7111: fix picture settings cache bug V4L/DVB (5702): Fix Kconfig items to avoid linkedition errors
2007-06-11Merge master.kernel.org:/pub/scm/linux/kernel/git/bart/ide-2.6Linus Torvalds2-0/+3
* master.kernel.org:/pub/scm/linux/kernel/git/bart/ide-2.6: ide: Add the MCP73/77 support to PATA driver Add the PATA controller device ID to pci_ids.h for MCP73/MCP77. hpt366: disallow Ultra133 for HPT374 ide: generic IDE PCI driver, add another device exception ide: HPA detect from resume it821x: RAID mode fixes serverworks: fix CSB6 tuning logic serverworks: remove crappy code
2007-06-11Merge branch 'splice-2.6.22' of git://git.kernel.dk/data/git/linux-2.6-blockLinus Torvalds1-15/+15
* 'splice-2.6.22' of git://git.kernel.dk/data/git/linux-2.6-block: splice: __generic_file_splice_read: fix read/truncate race splice: __generic_file_splice_read: fix i_size_read() length checks splice: move balance_dirty_pages_ratelimited() outside of splice actor pipe: move pipe_inode_info structure decleration up before it's used splice: remove do_splice_direct() symbol export splice: move inode size check into generic_file_splice_read()
2007-06-11[MIPS] Fix smp barriers in test_and_{change,clear,set}_bitRalf Baechle1-32/+19
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2007-06-11[MIPS] Wire up utimensat, signalfd, timerfd, eventfdAtsushi Nemoto1-6/+18
Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2007-06-11[MIPS] Fix KMODE for the R3000Maciej W. Rozycki1-24/+28
This must be the oldest bug that we have got. Leaving interrupts "as they are" for the R3000 obviously means copying IEp to IEc. Since we have got STATMASK now, I took this opportunity to mask the status register "correctly" for the R3000 now too. Oh, and the R3000 hardly ever is 64-bit. Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2007-06-11[ARM] 4445/1: ANUBIS: Fix CPLD registersBen Dooks2-8/+6
Update the ANUBIS register definitions inline with the specs and ensure they are registered correctly. Signed-off-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2007-06-11[ARM] 4444/2: OSIRIS: CPLD suspend fixBen Dooks1-1/+4
Ensure the CPLD 8bit settings are preserved over a suspend/resume cycle as the CPU sends a hard-reset at resume time. Signed-off-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2007-06-11[ARM] 4442/1: OSIRIS: Fix CPLD register definitionsBen Dooks2-14/+19
Fix the CPLD register definitions to correctly mirror the documentation Signed-off-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2007-06-11Blackfin arch: move HI/LO macros into blackfin.h and punt the rest of ↵Mike Frysinger2-96/+5
macros.h as it includes VDSP macros we never use Signed-off-by: Mike Frysinger <michael.frysinger@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
2007-06-14Blackfin arch: fix bug can not wakeup from sleep via push buttonsMichael Hennerich1-0/+1
Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
2007-06-14Blackfin arch: fix bug ad1836 fails to build properly for BF533-EZKITRoy Huang1-0/+22
bug log here: http://blackfin.uclinux.org/gf/project/uclinux-dist/tracker/?action=TrackerItemEdit&tracker_item_id=3166 Signed-off-by: Roy Huang <roy.huang@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
2007-06-10[ARM] VFP: fix section mismatch errorRussell King1-0/+4
Fix a real section mismatch issue; the test code is thrown away after initialisation, but if we do not detect the VFP hardware, it is left hooked into the exception handler. Any VFP instructions which are subsequently executed risk calling the discarded exception handler. Introduce a new "null" handler which returns to the "unrecognised fault" return address. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2007-06-10libata passthru: update cached device paramtersAlbert Lee1-0/+1
INIT_DEV_PARAMS and SET_MULTI_MODE change the device parameters cached by libata. Re-read IDENTIFY DEVICE info and update the cached device paramters when seeing these commands. Signed-off-by: Albert Lee <albertcc@tw.ibm.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-06-10libata passthru: support PIO multi commandsAlbert Lee1-1/+1
support the pass through of PIO multi commands. Signed-off-by: Albert Lee <albertcc@tw.ibm.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-06-10libata-core/sff: Fix multiple assumptions about DMAAlan Cox1-0/+1
The ata IRQ ack functions are only used when debugging. Unfortunately almost every controller that calls them can cause crashes in some configurations as there are missing checks for bmdma presence. In addition ata_port_start insists of installing DMA buffers and pad buffers for controllers regardless. The SFF controllers actually need to make that decision dynamically at controller setup time and all need the same helper - so we add ata_sff_port_start. Future patches will switch the SFF drivers to use this. Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-06-09[IrDA]: Fix Rx/Tx path race.G. Liakhovetski1-0/+17
From: G. Liakhovetski <gl@dsa-ac.de> We need to switch to NRM _before_ sending the final packet otherwise we might hit a race condition where we get the first packet from the peer while we're still in LAP_XMIT_P. Signed-off-by: Samuel Ortiz <samuel@sortiz.org> Signed-off-by: David S. Miller <davem@davemloft.net>
2007-06-09Merge branch 'master' of ↵Linus Torvalds2-25/+9
master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 * 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: [CIPSO]: Fix several unaligned kernel accesses in the CIPSO engine. [NetLabel]: consolidate the struct socket/sock handling to just struct sock [IPV4]: Do not remove idev when addresses are cleared
2007-06-09Protect <linux/console_struct.h> from multiple inclusionRobert P. J. Day1-0/+5
Prevent <linux/console_struct.h> from being included more than once, otherwise you get a redefinition error if you happen to include <linux/vt_kern.h> first. Signed-off-by: Robert P. J. Day <rpjday@mindspring.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-06-09hexdump: more output formattingRandy Dunlap1-4/+8
Add a prefix string parameter. Callers are responsible for any string length/alignment that they want to see in the output. I.e., callers should pad strings to achieve alignment if they want that. Add rowsize parameter. This is the number of raw data bytes to be printed per line. Must be 16 or 32. Add a groupsize parameter. This allows callers to dump values as 1-byte, 2-byte, 4-byte, or 8-byte numbers. Default is 1-byte numbers. If the total length is not an even multiple of groupsize, 1-byte numbers are printed. Add an "ascii" output parameter. This causes ASCII data output following the hex data output. Clean up some doc examples. Align the ASCII output on all lines that are produced by one call. Add a new interface, print_hex_dump_bytes(), that is a shortcut to print_hex_dump(), using default parameter values to print 16 bytes in byte-size chunks of hex + ASCII output, using printk level KERN_DEBUG. Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> Cc: Christoph Lameter <clameter@sgi.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-06-09pi-futex: fix exit races and locking problemsAlexey Kuznetsov1-0/+1
1. New entries can be added to tsk->pi_state_list after task completed exit_pi_state_list(). The result is memory leakage and deadlocks. 2. handle_mm_fault() is called under spinlock. The result is obvious. 3. results in self-inflicted deadlock inside glibc. Sometimes futex_lock_pi returns -ESRCH, when it is not expected and glibc enters to for(;;) sleep() to simulate deadlock. This problem is quite obvious and I think the patch is right. Though it looks like each "if" in futex_lock_pi() got some stupid special case "else if". :-) 4. sometimes futex_lock_pi() returns -EDEADLK, when nobody has the lock. The reason is also obvious (see comment in the patch), but correct fix is far beyond my comprehension. I guess someone already saw this, the chunk: if (rt_mutex_trylock(&q.pi_state->pi_mutex)) ret = 0; is obviously from the same opera. But it does not work, because the rtmutex is really taken at this point: wake_futex_pi() of previous owner reassigned it to us. My fix works. But it looks very stupid. I would think about removal of shift of ownership in wake_futex_pi() and making all the work in context of process taking lock. From: Thomas Gleixner <tglx@linutronix.de> Fix 1) Avoid the tasklist lock variant of the exit race fix by adding an additional state transition to the exit code. This fixes also the issue, when a task with recursive segfaults is not able to release the futexes. Fix 2) Cleanup the lookup_pi_state() failure path and solve the -ESRCH problem finally. Fix 3) Solve the fixup_pi_state_owner() problem which needs to do the fixup in the lock protected section by using the in_atomic userspace access functions. This removes also the ugly lock drop / unqueue inside of fixup_pi_state() Fix 4) Fix a stale lock in the error path of futex_wake_pi() Added some error checks for verification. The -EDEADLK problem is solved by the rtmutex fixups. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Acked-by: Ingo Molnar <mingo@elte.hu> Cc: Steven Rostedt <rostedt@goodmis.org> Cc: Ulrich Drepper <drepper@redhat.com> Cc: Eric Dumazet <dada1@cosmosbay.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-06-09SLUB: return ZERO_SIZE_PTR for kmalloc(0)Christoph Lameter1-8/+17
Instead of returning the smallest available object return ZERO_SIZE_PTR. A ZERO_SIZE_PTR can be legitimately used as an object pointer as long as it is not deferenced. The dereference of ZERO_SIZE_PTR causes a distinctive fault. kfree can handle a ZERO_SIZE_PTR in the same way as NULL. This enables functions to use zero sized object. e.g. n = number of objects. objects = kmalloc(n * sizeof(object)); for (i = 0; i < n; i++) objects[i].x = y; kfree(objects); Signed-off-by: Christoph Lameter <clameter@sgi.com> Acked-by: Pekka Enberg <penberg@cs.helsinki.fi> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-06-09[NetLabel]: consolidate the struct socket/sock handling to just struct sockPaul Moore2-25/+9
The current NetLabel code has some redundant APIs which allow both "struct socket" and "struct sock" types to be used; this may have made sense at some point but it is wasteful now. Remove the functions that operate on sockets and convert the callers. Not only does this make the code smaller and more consistent but it pushes the locking burden up to the caller which can be more intelligent about the locks. Also, perform the same conversion (socket to sock) on the SELinux/NetLabel glue code where it make sense. Signed-off-by: Paul Moore <paul.moore@hp.com> Acked-by: James Morris <jmorris@namei.org> Signed-off-by: David S. Miller <davem@davemloft.net>
2007-06-08Add the PATA controller device ID to pci_ids.h for MCP73/MCP77.Peer Chen1-0/+2
Add the PATA controller device ID to pci_ids.h for MCP73/MCP77. Signed-off-by: Peer Chen <peerchen@gmail.com> Cc: Alan Cox <alan@redhat.com>, Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Jeff Garzik <jeff@garzik.org> Cc: Tejun Heo <htejun@gmail.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
2007-06-08ide: HPA detect from resumeLee Trager1-0/+1
Currently when system which have HPA require HPA to be detected and disabled upon resume from RAM or disk. The current IDE drivers do not do this nor does libata (obviously it since it doesn't support HPA yet). I have implemented this into the current IDE drivers and it has been tested by many others since 7/15/2006 in bug number 6840: http://bugzilla.kernel.org/show_bug.cgi?id=6840 and it has been confirmed to work fine with no problems. bart: added drv != NULL check to generic_ide_suspend() From: Lee Trager <lt73@cs.drexel.edu> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
2007-06-08V4L/DVB (5736): Add V4L2_FBUF_CAP/FLAG_LOCAL/GLOBAL_INV_ALPHAHans Verkuil1-0/+4
Michael Schimek requested the addition of inverted alpha framebuffer caps/flags to support such hardware. 'Normal' alpha uses this formula to mix the framebuffer and video: output = fb pixel * fb alpha + video pixel * (1 - fb alpha) and the 'inverted' alpha uses this formula: output = fb pixel * (1 - fb alpha) + video pixel * fb alpha Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-06-08V4L/DVB (5730): Remove unused V4L2_CAP_VIDEO_OUTPUT_POSHans Verkuil1-2/+1
V4L2_CAP_VIDEO_OUTPUT_POS was initially introduced for 2.6.22 but never actually used: remove it before the final 2.6.22 is made. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>