13 years ago[VIDEO]: Fix section mismatch in cg3.c
Robert Reif [Wed, 28 Mar 2007 19:50:56 +0000 (12:50 -0700)]
[VIDEO]: Fix section mismatch in cg3.c

Fix section mismatch warning by moving data into __devinitdata section.
Add __devinit to initialization functions.

Signed-off-by: Robert Reif <>
Signed-off-by: David S. Miller <>
13 years ago[SPARC]: sparc64 gcc-4.2.0 20070317 -Werror failure
Mikael Pettersson [Tue, 27 Mar 2007 08:13:55 +0000 (01:13 -0700)]
[SPARC]: sparc64 gcc-4.2.0 20070317 -Werror failure

Compiling 2.6.21-rc5 with gcc-4.2.0 20070317 (prerelease)
for sparc64 fails as follows:

  gcc -Wp,-MD,arch/sparc64/kernel/.time.o.d  -nostdinc -isystem /home/mikpe/pkgs/linux-sparc64/gcc-4.2.0/lib/gcc/sparc64-unknown-linux-gnu/4.2.0/include -D__KERNEL__ -Iinclude  -include include/linux/autoconf.h -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Os -m64 -pipe -mno-fpu -mcpu=ultrasparc -mcmodel=medlow -ffixed-g4 -ffixed-g5 -fcall-used-g7 -Wno-sign-compare -Wa,--undeclared-regs -fomit-frame-pointer  -fno-stack-protector -Wdeclaration-after-statement -Wno-pointer-sign -Werror   -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(time)"  -D"KBUILD_MODNAME=KBUILD_STR(time)" -c -o arch/sparc64/kernel/time.o arch/sparc64/kernel/time.c
cc1: warnings being treated as errors
arch/sparc64/kernel/time.c: In function 'kick_start_clock':
arch/sparc64/kernel/time.c:559: warning: overflow in implicit constant conversion
make[1]: *** [arch/sparc64/kernel/time.o] Error 1
make: *** [arch/sparc64/kernel] Error 2

gcc gets unhappy when the MSTK_SET macro's u8 __val variable
is updated with &= ~0xff (MSTK_YEAR_MASK). Making the constant
unsigned fixes the problem.

[ I fixed up the sparc32 side as well -DaveM ]

Signed-off-by: Mikael Pettersson <>
Signed-off-by: David S. Miller <>
13 years ago[VIDEO] ffb: Fix two DAC handling bugs.
David S. Miller [Tue, 27 Mar 2007 06:18:09 +0000 (23:18 -0700)]
[VIDEO] ffb: Fix two DAC handling bugs.

The determination of whether the DAC has inverted cursor logic is
broken, import the version checks the driver uses to fix this.

Next, when we change the timing generator, borrow code from that
does 10 NOP reads of the timing generator register afterwards to make
sure the video-enable transition occurs cleanly.

Finally, use macros for the DAC registers and fields in order to
provide documentation for the next person who reads this code.

Signed-off-by: David S. Miller <>
13 years ago[SPARC32]: Fix SMP build regression
Robert Reif [Tue, 27 Mar 2007 02:10:43 +0000 (19:10 -0700)]
[SPARC32]: Fix SMP build regression

commit b19cbe2a1695c09c74f83646c4b82b51123b3690 [BRIDGE]: Fix fdb RCU

breaks sparc SMP build because atomic_add_unless is not exported.

This patch exports atomic_add_unless and atomic_cmpxchg.

Signed-off-by: Robert Reif <>
Signed-off-by: David S. Miller <>
13 years ago[DRM]: Delete sparc64 FFB driver code that never gets built.
David S. Miller [Mon, 26 Mar 2007 23:54:39 +0000 (16:54 -0700)]
[DRM]: Delete sparc64 FFB driver code that never gets built.

The Kconfig bits were removed long ago, so we should kill off the
driver too.

Signed-off-by: David S. Miller <>
13 years agoMerge
Linus Torvalds [Mon, 26 Mar 2007 21:51:24 +0000 (14:51 -0700)]
Merge /pub/scm/linux/kernel/git/davem/net-2.6

  [SUNGEM]: Fix MAC address setting when interface is up.
  [IPV4] fib_trie: Document locking.
  [NET]: Correct accept(2) recovery after sock_attach_fd()
  [PPP]: Don't leak an sk_buff on interface destruction.
  [NET_SCHED]: Fix ingress locking
  [NET_SCHED]: cls_basic: fix NULL pointer dereference
  [DCCP]: make dccp_write_xmit_timer() static again
  [TG3]: Update version and reldate.
  [TG3]: Exit irq handler during chip reset.
  [TG3]: Eliminate the unused TG3_FLAG_SPLIT_MODE flag.
  [IPV6]: Fix routing round-robin locking.
  [DECNet] fib: Fix out of bound access of dn_fib_props[]
  [IPv4] fib: Fix out of bound access of fib_props[]
  [NET] AX.25 Kconfig and docs updates and fixes
  [NET]: Fix neighbour destructor handling.
  [NET]: Fix fib_rules compatibility breakage
  [SCTP]: Update SCTP Maintainers entry
  [NET]: remove unused header file: drivers/net/wan/lmc/lmc_media.h

13 years agoMerge branch 'for-linus' of git://
Linus Torvalds [Mon, 26 Mar 2007 21:45:56 +0000 (14:45 -0700)]
Merge branch 'for-linus' of git://

* 'for-linus' of git://
  [S390] zcrypt: Fix ap_poll_requests counter in lost requests error path.
  [S390] zcrypt: Fix possible dead lock in AP bus module.
  [S390] cio: Device status validity.
  [S390] kprobes: Align probe address.
  [S390] Fix TCP/UDP pseudo header checksum computation.
  [S390] dasd: Work around gcc bug.

13 years ago[SUNGEM]: Fix MAC address setting when interface is up.
Ruben Vandeginste [Mon, 26 Mar 2007 21:43:49 +0000 (14:43 -0700)]
[SUNGEM]: Fix MAC address setting when interface is up.

This patch implements set_mac_address for the sungem driver.  This
allows changing the mac address of the interface, even when the
interface is up.

Signed-off-by: Ruben Vandeginste <>
Signed-off-by: Benjamin Herrenschmidt <>
Signed-off-by: David S. Miller <>
13 years agoMerge
Linus Torvalds [Mon, 26 Mar 2007 21:34:11 +0000 (14:34 -0700)]
Merge /pub/scm/linux/kernel/git/gregkh/usb-2.6

  USB: fix usb-serial/ftdi build warning
  USB: fix usb-serial/generic build warning
  USB: another entry for the quirk list
  USB: remove duplicated device id in airprime driver
  USB: omap_udc: workaround dma_free_coherent() bogosity
  UHCI: Fix problem caused by lack of terminating QH

13 years agoMerge
Linus Torvalds [Mon, 26 Mar 2007 21:33:50 +0000 (14:33 -0700)]
Merge /pub/scm/linux/kernel/git/gregkh/pci-2.6

  PCI: Fix warning message in PCIE port driver
  PCI: Stop unhiding the SMBus on Toshiba laptops
  PCI: Fix up PCI power management doc
  pci: set pci=bfsort for PowerEdge R900

13 years ago[PATCH] Add const to pointer qualifiers for __chk_user_ptr and __chk_io_ptr.
Russ Cox [Mon, 26 Mar 2007 15:23:56 +0000 (11:23 -0400)]
[PATCH] Add const to pointer qualifiers for __chk_user_ptr and __chk_io_ptr.

Change prototypes for __chk_user_ptr and __chk_io_ptr to take const
void* instead of void*, so that code can pass "const void *" to them.

(Right now sparse does not warn about passing const void* to void*
functions, but that is a separate bug that I believe Josh is working on,
and once sparse does check this, the changed prototypes will be

Signed-off-by: Russ Cox <>
Signed-off-by: Josh Triplett <>
Acked-by: Christopher Li <>
Signed-off-by: Linus Torvalds <>
13 years ago[IPV4] fib_trie: Document locking.
Robert Olsson [Mon, 26 Mar 2007 21:22:22 +0000 (14:22 -0700)]
[IPV4] fib_trie: Document locking.

Paul E. McKenney writes:

> Those of use who dive into networking only occasionally would much
> appreciate this.  ;-)

No problem here...

Acked-by: Robert Olsson <>
Signed-off-by: Paul E. McKenney <> (but trivial)
Signed-off-by: David S. Miller <>
13 years agoMerge branch 'for-linus' of git://
Linus Torvalds [Mon, 26 Mar 2007 21:21:55 +0000 (14:21 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/ericvh/v9fs

* 'for-linus' of git://
  9p: make struct v9fs_cached_file_operations static

13 years agoUSB: fix usb-serial/ftdi build warning
David Brownell [Fri, 23 Mar 2007 19:54:27 +0000 (12:54 -0700)]
USB: fix usb-serial/ftdi build warning

Fix annoying build warning:

drivers/usb/serial/ftdi_sio.c:890: warning: enumeration value `FT232RL' not handled in switch

Also add logic to detect FT232R chips (version 6.00, usb 2.0 full speed),
so that case isn't completely useless.  (NOTE:  FT232RL and FT232RQ are
the same chip in different packages:  L is SSOP, Q is QFN.)

Signed-off-by: David Brownell <>
Signed-off-by: Greg Kroah-Hartman <>
13 years agoUSB: fix usb-serial/generic build warning
David Brownell [Fri, 23 Mar 2007 19:51:55 +0000 (12:51 -0700)]
USB: fix usb-serial/generic build warning

Fix annoying build warning when CONFIG_USB_SERIAL_GENERIC is undefined.

  drivers/usb/serial/generic.c:24: warning: `generic_probe' declared `static' but never defined

Signed-off-by: David Brownell <>
Signed-off-by: Greg Kroah-Hartman <>
13 years agoUSB: another entry for the quirk list
Oliver Neukum [Tue, 20 Mar 2007 18:32:51 +0000 (19:32 +0100)]
USB: another entry for the quirk list

this scanner disconnects upon suspend.

Signed-off-by: Oliver Neukum <>
Signed-off-by: Greg Kroah-Hartman <>
13 years agoUSB: remove duplicated device id in airprime driver
Jon K Hellan [Tue, 20 Mar 2007 11:45:42 +0000 (12:45 +0100)]
USB: remove duplicated device id in airprime driver

Both airprime and option now want to handle vendor ID 0x1410,
device ID 0x1100. Airprime calls it 'ExpressCard34 Qualcomm 3G CDMA'.
Option calls it 'Novatel Merlin XS620/S640'. Patch attached to remove it
from airprime.

From: Jon K Hellan <>
Signed-off-by: Greg Kroah-Hartman <>
13 years agoUSB: omap_udc: workaround dma_free_coherent() bogosity
David Brownell [Wed, 21 Mar 2007 19:26:32 +0000 (12:26 -0700)]
USB: omap_udc: workaround dma_free_coherent() bogosity

Various fixes to omap_udc, noted with some recent testing:

 - Cope with some SMP-induced braindamage in ARM's dma_{alloc,free}_coherent()
   implementation: alloc() can be called with IRQs blocked, but since late
   last year that's no longer true for free().  This resolves really NASTY
   problems with logspamming via WARN_ON(), indicating N-page leaks.

 - Be more correct in handling GET_STATUS request for RECIP_ENDPOINT ... the
   previous code only handled RECIP_INTERFACE, this version should be correct
   except for (sigh) bulk/interrupt endpoints.

 - Provide a better name for the function reporting whether the board has
   vbus sensing wired up.

GET_STATUS requests for endpoint status still acts strangely though, at least
given one flakey host doesn't always ack the first DATA packet, then the packet
that gets retransmitted doesn't have data!

Signed-off-by: David Brownell <>
Signed-off-by: Greg Kroah-Hartman <>
13 years agoUHCI: Fix problem caused by lack of terminating QH
Alan Stern [Mon, 19 Mar 2007 19:31:42 +0000 (15:31 -0400)]
UHCI: Fix problem caused by lack of terminating QH

This patch (as871) fixes a problem introduced by an earlier change.
It turns out that some systems really do need to have a terminating
skeleton QH present whenever FSBR is on.  I don't know any way to tell
which systems do need it and which don't; the easiest answer is to
have it there always.

This fixes the NumLock-hang bug reported by Jiri Slaby.

Signed-off-by: Alan Stern <>
Signed-off-by: Greg Kroah-Hartman <>
13 years agoMerge
Linus Torvalds [Mon, 26 Mar 2007 21:13:54 +0000 (14:13 -0700)]
Merge /pub/scm/linux/kernel/git/bart/ide-2.6

  ide: use correct IDE error recovery
  pdc202xx_new: Enable ATAPI DMA
  ide: cosmetic adaption of drivers/ide/Kconfig concerning SATA
  ide: fix locking for manual DMA enable/disable ("hdparm -d")
  ide: revert "ide: fix drive side 80c cable check, take 2" for now

13 years agoPCI: Fix warning message in PCIE port driver
Prarit Bhargava [Fri, 23 Mar 2007 16:15:05 +0000 (12:15 -0400)]
PCI: Fix warning message in PCIE port driver

PCIE error output should conform to vendor_id:device_id.

Signed-off-by: Prarit Bhargava <>
Signed-off-by: Greg Kroah-Hartman <>
13 years agoPCI: Stop unhiding the SMBus on Toshiba laptops
Jean Delvare [Sat, 24 Mar 2007 15:56:44 +0000 (16:56 +0100)]
PCI: Stop unhiding the SMBus on Toshiba laptops

It was found that the Toshiba laptops with hidden Intel SMBus have SMM
code handling the thermal management which accesses the SMBus. Thus it
is not safe to unhide it and let Linux access it. We have to leave the
SMBus hidden. SMM is a pain, really.

This fixes bugs #6315 and #6395, for good this time.

Signed-off-by: Jean Delvare <>
Signed-off-by: Greg Kroah-Hartman <>
13 years agoPCI: Fix up PCI power management doc
Jonathan Corbet [Thu, 22 Mar 2007 22:53:40 +0000 (16:53 -0600)]
PCI: Fix up PCI power management doc

Update the documentation of PCI power management functions.

Signed-off-by: Jonathan Corbet <>
Signed-off-by: Greg Kroah-Hartman <>
13 years agopci: set pci=bfsort for PowerEdge R900
Matt Domsch [Sat, 24 Mar 2007 04:58:07 +0000 (23:58 -0500)]
pci: set pci=bfsort for PowerEdge R900

This patch automatically enables pci=bfsort for the Dell PowerEdge
R900.  This is necessary to ensure the onboard NICs enumerate in the
proper order, similar to the other systems already on the list.

Signed-off-by: Matt Domsch <>
Signed-off-by: Greg Kroah-Hartman <>
13 years ago[NET]: Correct accept(2) recovery after sock_attach_fd()
Alexey Dobriyan [Mon, 26 Mar 2007 21:09:52 +0000 (14:09 -0700)]
[NET]: Correct accept(2) recovery after sock_attach_fd()

* d_alloc() in sock_attach_fd() fails leaving ->f_dentry of new file NULL
* bail out to out_fd label, doing fput()/__fput() on new file
* but __fput() assumes valid ->f_dentry and dereferences it

Signed-off-by: Alexey Dobriyan <>
Signed-off-by: David S. Miller <>
13 years ago[PATCH] clockevents: remove bad designed sysfs support for now
Thomas Gleixner [Mon, 26 Mar 2007 09:21:08 +0000 (11:21 +0200)]
[PATCH] clockevents: remove bad designed sysfs support for now

The current sysfs support of clockevents does not obey the "only one
value per file" rule.

The real fix is not 2.6.21 material. Therefor remove the sysfs support
for now.

Signed-off-by: Thomas Gleixner <>
Acked-by: Ingo Molnar <>
Acked-by: Greg Kroah-Hartman <>
Signed-off-by: Linus Torvalds <>
13 years agoide: use correct IDE error recovery
Suleiman Souhlal [Mon, 26 Mar 2007 21:03:20 +0000 (23:03 +0200)]
ide: use correct IDE error recovery

IDE error recovery is using IDLE IMMEDIATE if the drive is busy or has DRQ set.
This violates the ATA spec (can only send IDLE IMMEDIATE when drive is not
busy) and really hoses up some drives (modern drives will not be able to
recover using this error handling).  The correct thing to do is issue a SRST
followed by a SET FEATURES command.  This is what Western Digital recommends
for error recovery and what Western Digital says Windows does. Â It also does
not violate the ATA spec as far as I can tell.

* port the patch over the current tree
* undo the recalibration code removal
* send SET FEATURES command after checking for good drive status
* don't check whether the current request is of REQ_TYPE_ATA_{CMD,TASK}
  type because we need to send SET FEATURES before handling any requests
* some pre-ATA4 drives require INITIALIZE DEVICE PARAMETERS command before
  other commands (except IDENTIFY) so send SET FEATURES only if there are
  no pending drive->special requests
* update comments and patch description
* any bugs introduced by this patch are mine and not Suleiman's :-)

Signed-off-by: Suleiman Souhlal <>
Acked-by: Alan Cox <>
Signed-off-by: Bartlomiej Zolnierkiewicz <>
13 years agopdc202xx_new: Enable ATAPI DMA
Albert Lee [Mon, 26 Mar 2007 21:03:19 +0000 (23:03 +0200)]
pdc202xx_new: Enable ATAPI DMA

[ bart: the ressurection of 2 years old patch which slipped thru the cracks
  (thanks to Sergei Shtylyov for finding it) ]

These is the patch to turn on pdc202xx_new for ATAPI DMA.  When testing, it
works fine without the (request_bufflen % 256) workaround as needed in libata.
ide-scsi filters out (pc->request_transfer % 1024) and use PIO, so the pdc202xx
ATAPI DMA problem is avoid.  Both ide-cd and ide-scsi won't hit the ATAPI DMA
problem on pdc202xx_new.

Signed-off-by: Albert Lee <>
Signed-off-by: Bartlomiej Zolnierkiewicz <>
13 years agoide: cosmetic adaption of drivers/ide/Kconfig concerning SATA
Patrick Ringl [Mon, 26 Mar 2007 21:03:19 +0000 (23:03 +0200)]
ide: cosmetic adaption of drivers/ide/Kconfig concerning SATA

Since especially Serial ATA has it's own menu point now, I guess we can
change the description of the deprecated SATA driver as well, since the
new libATA subsystem is not configured through a SCSI low-level driver
anymore, but has it's own menu point.

From: Patrick Ringl <>
Signed-off-by: Bartlomiej Zolnierkiewicz <>
13 years agoide: fix locking for manual DMA enable/disable ("hdparm -d")
Bartlomiej Zolnierkiewicz [Mon, 26 Mar 2007 21:03:19 +0000 (23:03 +0200)]
ide: fix locking for manual DMA enable/disable ("hdparm -d")

Since hwif->ide_dma_check and hwif->ide_dma_on never queue any commands
(ide_config_drive_speed() sets transfer mode using polling and has no error
recovery) we are safe with setting hwgroup->busy for the time while DMA
setting for a drive is changed (so it won't race against I/O commands in fly).

I audited briefly all ->ide_dma_check/->ide_dma_on/->tuneproc/->speedproc
implementations and they all look OK wrt to this change.

This patch finally allowed me to close kernel bugzilla bug #8169
(once again thanks to Patrick Horn for reporting the issue & testing patches).

Cc: Sergei Shtylyov <>
Cc: Alan Cox <>
Signed-off-by: Bartlomiej Zolnierkiewicz <>
13 years agoide: revert "ide: fix drive side 80c cable check, take 2" for now
Bartlomiej Zolnierkiewicz [Mon, 26 Mar 2007 21:03:18 +0000 (23:03 +0200)]
ide: revert "ide: fix drive side 80c cable check, take 2" for now

"ide: fix drive side 80c cable check, take 2" patch from Tejun Heo (commit
fab59375b9543f84d1714f7dd00f5d11e531bd3e) fixed 80c bit test (bit13 of word93)
but we also need to fix master/slave IDENTIFY order (slave device should be
probed first in order to make it release PDIAG- signal) and we should also
check for pre-ATA3 slave devices (which may not release PDIAG- signal).

[ Unfortunately the fact that IDE driver doesn't reset devices itself helps
  only a bit as it seems that some BIOS-es reset ATA devices after programming
  the chipset, some BIOS-es can be set to not probe/configure selected devices,
  there may be no BIOS in case of add-on cards etc. ]

Since we are quite late in the release cycle and the required changes will
affect a lot of systems just revert the fix for now.

[ Please also see libata commit f31f0cc2f0b7527072d94d02da332d9bb8d7d94c. ]

Thanks goes out to Fernando Mitio Yamada for reporting the problem
and patiently testing patches.

Acked-by: Tejun Heo <>
Cc: Alan Cox <>
Signed-off-by: Bartlomiej Zolnierkiewicz <>
13 years ago[S390] zcrypt: Fix ap_poll_requests counter in lost requests error path.
Ralph Wuerthner [Mon, 26 Mar 2007 18:42:43 +0000 (20:42 +0200)]
[S390] zcrypt: Fix ap_poll_requests counter in lost requests error path.

In the unlikely event that an AP device lost requests, don't forget to
update the ap_poll_requests counter too. Same must happen in case an AP
device is removed while there are still outstanding requests.

Cc: Martin Schwidefsky <>
Signed-off-by: Ralph Wuerthner <>
Signed-off-by: Heiko Carstens <>
13 years ago[S390] zcrypt: Fix possible dead lock in AP bus module.
Ralph Wuerthner [Mon, 26 Mar 2007 18:42:42 +0000 (20:42 +0200)]
[S390] zcrypt: Fix possible dead lock in AP bus module.

If a AP device is unconfigured __ap_poll_all() will call
device_unregister() in software interrupt context which can cause
dead locks. To fix this the device will be only marked as unconfigured
and the device_unregister() call will be done later by either
ap_scan_bus() or ap_queue_message() in process context.

Cc: Martin Schwidefsky <>
Signed-off-by: Ralph Wuerthner <>
Signed-off-by: Heiko Carstens <>
13 years ago[S390] cio: Device status validity.
Cornelia Huck [Mon, 26 Mar 2007 18:42:41 +0000 (20:42 +0200)]
[S390] cio: Device status validity.

Only accumulate device status field in irb if it is valid.

Cc: Martin Schwidefsky <>
Signed-off-by: Cornelia Huck <>
Signed-off-by: Heiko Carstens <>
13 years ago[S390] kprobes: Align probe address.
David Wilder [Mon, 26 Mar 2007 18:42:40 +0000 (20:42 +0200)]
[S390] kprobes: Align probe address.

Running a probe on s390 with a probe address that is not 4 byte aligned
results in a Kernel BUG.  The problem is that the stura instruction used
by swap_instruction requires the destination address to be 4 byte aligned.
As stura only writes 4 bytes, aligning to the next 4 byte aligned address
results in the breakpoint instruction being stored past the probe address.
The fix is to align the address backward (to the previous 4 byte aligned
address) and writing the two byte breakpoint instruction in the appropriate

Cc: Martin Schwidefsky <>
Signed-off-by: David Wilder <>
Signed-off-by: Heiko Carstens <>
13 years ago[S390] Fix TCP/UDP pseudo header checksum computation.
Heiko Carstens [Mon, 26 Mar 2007 18:42:39 +0000 (20:42 +0200)]
[S390] Fix TCP/UDP pseudo header checksum computation.

git commit f994aae1bd8e4813d59a2ed64d17585fe42d03fc changed the
function declaration of csum_tcpudp_nofold. Argument types were
changed from unsigned long to __be32 (unsigned int). Therefore we
lost the implicit type conversion that zeroed the upper half of the
registers that are used to pass parameters. Since the inline assembly
relied on this we ended up adding random values and wrong checksums
were created.
Showed only up on machines with more than 4GB since gcc produced code
where the registers that are used to pass 'saddr' and 'daddr' previously
contained addresses before calling this function.
Fix this by using 32 bit arithmetics and convert code to C, since gcc
produces better code than these hand-optimized versions.

Cc: Martin Schwidefsky <>
Signed-off-by: Heiko Carstens <>
13 years ago[S390] dasd: Work around gcc bug.
Peter Oberparleiter [Mon, 26 Mar 2007 18:42:38 +0000 (20:42 +0200)]
[S390] dasd: Work around gcc bug.

gcc incorrectly removes initialization of register 0 in dasd diag
inline assembly. Use different register to work around this compiler

Cc: Martin Schwidefsky <>
Signed-off-by: Peter Oberparleiter <>
Signed-off-by: Heiko Carstens <>
13 years ago9p: make struct v9fs_cached_file_operations static
Adrian Bunk [Mon, 5 Mar 2007 01:49:48 +0000 (02:49 +0100)]
9p: make struct v9fs_cached_file_operations static

This patch makes te needlessly global struct v9fs_cached_file_operations

Signed-off-by: Adrian Bunk <>
Signed-off-by: Eric Van Hensbergen <>
13 years ago[PPP]: Don't leak an sk_buff on interface destruction.
G. Liakhovetski [Mon, 26 Mar 2007 02:04:09 +0000 (19:04 -0700)]
[PPP]: Don't leak an sk_buff on interface destruction.

Signed-off-by: G. Liakhovetski <>
Acked-by: Paul Mackerras <>
Signed-off-by: David S. Miller <>
13 years ago[NET_SCHED]: Fix ingress locking
Patrick McHardy [Sun, 25 Mar 2007 05:13:25 +0000 (22:13 -0700)]
[NET_SCHED]: Fix ingress locking

Ingress queueing uses a seperate lock for serializing enqueue operations,
but fails to properly protect itself against concurrent changes to the
qdisc tree. Use queue_lock for now since the real fix it quite intrusive.

Signed-off-by: Patrick McHardy <>
Signed-off-by: David S. Miller <>
13 years ago[NET_SCHED]: cls_basic: fix NULL pointer dereference
Patrick McHardy [Sun, 25 Mar 2007 05:13:06 +0000 (22:13 -0700)]
[NET_SCHED]: cls_basic: fix NULL pointer dereference

cls_basic doesn't allocate tp->root before it is linked into the
active classifier list, resulting in a NULL pointer dereference
when packets hit the classifier before its ->change function is

Reported by Chris Madden <>

Signed-off-by: Patrick McHardy <>
Signed-off-by: David S. Miller <>
13 years ago[DCCP]: make dccp_write_xmit_timer() static again
Adrian Bunk [Sun, 25 Mar 2007 04:01:31 +0000 (21:01 -0700)]
[DCCP]: make dccp_write_xmit_timer() static again

dccp_write_xmit_timer() needlessly became global.

Signed-off-by: Adrian Bunk <>
Signed-off-by: David S. Miller <>
13 years ago[TG3]: Update version and reldate.
Michael Chan [Sun, 25 Mar 2007 03:58:51 +0000 (20:58 -0700)]
[TG3]: Update version and reldate.

Update version to 3.75.

Signed-off-by: Michael Chan <>
Signed-off-by: David S. Miller <>
13 years ago[TG3]: Exit irq handler during chip reset.
Michael Chan [Sun, 25 Mar 2007 03:57:11 +0000 (20:57 -0700)]
[TG3]: Exit irq handler during chip reset.

On most tg3 chips, the memory enable bit in the PCI command register
gets cleared during chip reset and must be restored before accessing
PCI registers using memory cycles.  The chip does not generate
interrupt during chip reset, but the irq handler can still be called
because of irq sharing or irqpoll.  Reading a register in the irq
handler can cause a master abort in this scenario and may result in a
crash on some architectures.

Use the TG3_FLAG_CHIP_RESETTING flag to tell the irq handler to exit
without touching any registers.  The checking of the flag is in the
"slow" path of the irq handler and will not affect normal performance.
The msi handler is not shared and therefore does not require checking
the flag.

Thanks to Bernhard Walle <> for reporting the problem.

Signed-off-by: Michael Chan <>
Signed-off-by: David S. Miller <>
13 years ago[TG3]: Eliminate the unused TG3_FLAG_SPLIT_MODE flag.
Michael Chan [Sun, 25 Mar 2007 03:54:37 +0000 (20:54 -0700)]
[TG3]: Eliminate the unused TG3_FLAG_SPLIT_MODE flag.

This flag to support multiple PCIX split completions was never used
because of hardware bugs.  This will make room for a new flag.

Signed-off-by: Michael Chan <>
Signed-off-by: David S. Miller <>
13 years ago[IPV6]: Fix routing round-robin locking.
David S. Miller [Sun, 25 Mar 2007 03:36:25 +0000 (20:36 -0700)]
[IPV6]: Fix routing round-robin locking.

As per RFC2461, section 6.3.6, item #2, when no routers on the
matching list are known to be reachable or probably reachable we
do round robin on those available routes so that we make sure
to probe as many of them as possible to detect when one becomes
reachable faster.

Each routing table has a rwlock protecting the tree and the linked
list of routes at each leaf.  The round robin code executes during
lookup and thus with the rwlock taken as a reader.  A small local
spinlock tries to provide protection but this does not work at all
for two reasons:

1) The round-robin list manipulation, as coded, goes like this (with
   read lock held):

walk routes finding head and tail

rotate list using head and tail

   While one thread is rotating the list, another thread can
   end up with stale values of head and tail and then proceed
   to corrupt the list when it gets the lock.  This ends up causing
   the OOPS in fib6_add() later onthat many people have been hitting.

2) All the other code paths that run with the rwlock held as
   a reader do not expect the list to change on them, they
   expect it to remain completely fixed while they hold the
   lock in that way.

So, simply stated, it is impossible to implement this correctly using
a manipulation of the list without violating the rwlock locking

Reimplement using a per-fib6_node round-robin pointer.  This way we
don't need to manipulate the list at all, and since the round-robin
pointer can only ever point to real existing entries we don't need
to perform any locking on the changing of the round-robin pointer
itself.  We only need to reset the round-robin pointer to NULL when
the entry it is pointing to is removed.

The idea is from Thomas Graf and it is very similar to how this
was implemented before the advanced router selection code when in.

Signed-off-by: David S. Miller <>
13 years ago[DECNet] fib: Fix out of bound access of dn_fib_props[]
Thomas Graf [Sun, 25 Mar 2007 03:33:27 +0000 (20:33 -0700)]
[DECNet] fib: Fix out of bound access of dn_fib_props[]

Fixes a typo which caused fib_props[] to have the wrong size
and makes sure the value used to index the array which is
provided by userspace via netlink is checked to avoid out of
bound access.

Signed-off-by: Thomas Graf <>
Signed-off-by: David S. Miller <>
13 years ago[IPv4] fib: Fix out of bound access of fib_props[]
Thomas Graf [Sun, 25 Mar 2007 03:32:54 +0000 (20:32 -0700)]
[IPv4] fib: Fix out of bound access of fib_props[]

Fixes a typo which caused fib_props[] to have the wrong size
and makes sure the value used to index the array which is
provided by userspace via netlink is checked to avoid out of
bound access.

Signed-off-by: Thomas Graf <>
Signed-off-by: David S. Miller <>
13 years ago[NET] AX.25 Kconfig and docs updates and fixes
Ralf Baechle [Sat, 24 Mar 2007 19:54:26 +0000 (12:54 -0700)]
[NET] AX.25 Kconfig and docs updates and fixes

 o The AX.25 Howto is unmaintained since several years.  I've replaced it
   with a wiki at which provides more uptodate
 o Change default for AX25_DAMA_SLAVE to Y.  AX25_DAMA_SLAVE only compiles
   in support for DAMA but doesn't activate it.  I hope this gets Linux
   distributions to ship their AX.25 kernels with AX25_DAMA_SLAVE enabled.
   The price for this would be very small.
 o Delete historic changelog from comments, that's what SCM systems are
   meant to do.
 o ---help--- in Kconfig looks so yellingly eye insulting.  Use just help.
 o Rewrite the commented out piece of old Linux 2.4 configuration language
   to Kconfig for consistency.
 o Fixup dependencies.

Signed-off-by: Ralf Baechle <>
Signed-off-by: David S. Miller <>
13 years ago[NET]: Fix neighbour destructor handling.
Alexey Kuznetsov [Sat, 24 Mar 2007 19:52:16 +0000 (12:52 -0700)]
[NET]: Fix neighbour destructor handling.

->neigh_destructor() is killed (not used), replaced with
->neigh_cleanup(), which is called when neighbor entry goes to dead
state. At this point everything is still valid: neigh->dev,
neigh->parms etc.

The device should guarantee that dead neighbor entries (neigh->dead !=
0) do not get private part initialized, otherwise nobody will cleanup

I think this is enough for ipoib which is the only user of this thing.
Initialization private part of neighbor entries happens in ipib
start_xmit routine, which is not reached when device is down.  But it
would be better to add explicit test for neigh->dead in any case.

Signed-off-by: David S. Miller <>
13 years ago[NET]: Fix fib_rules compatibility breakage
Thomas Graf [Sat, 24 Mar 2007 19:46:02 +0000 (12:46 -0700)]
[NET]: Fix fib_rules compatibility breakage

Based upon a patch from Patrick McHardy.

The fib_rules netlink attribute policy introduced in 2.6.19 broke
userspace compatibilty. When specifying a rule with "from all"
or "to all", iproute adds a zero byte long netlink attribute,
but the policy requires all addresses to have a size equal to
sizeof(struct in_addr)/sizeof(struct in6_addr), resulting in a
validation error.

Check attribute length of FRA_SRC/FRA_DST in the generic framework
by letting the family specific rules implementation provide the
length of an address. Report an error if address length is non
zero but no address attribute is provided. Fix actual bug by
checking address length for non-zero instead of relying on
availability of attribute.

Signed-off-by: Thomas Graf <>
Signed-off-by: Patrick McHardy <>
Signed-off-by: David S. Miller <>
13 years ago[SCTP]: Update SCTP Maintainers entry
Sridhar Samudrala [Fri, 23 Mar 2007 18:39:51 +0000 (11:39 -0700)]
[SCTP]: Update SCTP Maintainers entry

Add Vlad Yasevich as the primary maintainer of SCTP and add a
link to the project website.

Signed-off-by: Sridhar Samudrala <>
Signed-off-by: David S. Miller <>
13 years ago[NET]: remove unused header file: drivers/net/wan/lmc/lmc_media.h
Robert P. J. Day [Fri, 23 Mar 2007 06:35:08 +0000 (23:35 -0700)]
[NET]: remove unused header file: drivers/net/wan/lmc/lmc_media.h

Signed-off-by: Robert P. J. Day <>
Cc: Krzysztof Halasa <>
Signed-off-by: Andrew Morton <>
Signed-off-by: David S. Miller <>
13 years agoLinux 2.6.21-rc5 v2.6.21-rc5
Linus Torvalds [Sun, 25 Mar 2007 22:56:23 +0000 (15:56 -0700)]
Linux 2.6.21-rc5

.. hopefully most of the fallout of the timer changes is contained now.

Signed-off-by: Linus Torvalds <>
13 years ago[PATCH] clocksource: Fix thinko in watchdog selection
Thomas Gleixner [Sun, 25 Mar 2007 12:42:51 +0000 (14:42 +0200)]
[PATCH] clocksource: Fix thinko in watchdog selection

The watchdog implementation excludes low res / non continuous
clocksources from being selected as a watchdog reference

Allow using jiffies/PIT as a watchdog reference as long as no better
clocksource is available. This is necessary to detect TSC breakage on
systems, which have no pmtimer/hpet.

The main goal of the initial patch (preventing to switch to highres/nohz
when no reliable fallback clocksource is available) is still guaranteed
by the checks in clocksource_watchdog().

Signed-off-by: Thomas Gleixner <>
Signed-off-by: Linus Torvalds <>
13 years ago[PATCH] dynticks: fix hrtimer rounding error in next_timer_interrupt
Thomas Gleixner [Sun, 25 Mar 2007 12:31:17 +0000 (14:31 +0200)]
[PATCH] dynticks: fix hrtimer rounding error in next_timer_interrupt

The rework of next_timer_interrupt() fixed the timer wheel bugs, but
invented a rounding error versus the next hrtimer event. This is caused
by the conversion of the hrtimer internal representation to relative

This causes bug #8100:

next_timer_interrupt() returns "now" in such a case and causes the code
in tick_nohz_stop_sched_tick() to trigger the timer softirq, which is
bogus as no timer is due for expiry. This results in an endless context
switching between idle and ksoftirqd until a timer is due for expiry.

Modify the hrtimer evaluation so that, it returns now + 1, when the
conversion results in a delta < 1 jiffie.

It's confirmed to resolve bug #8100

Reported-by: Emil Karlson <>
Signed-off-by: Thomas Gleixner <>
Signed-off-by: Linus Torvalds <>
13 years agoMerge
Linus Torvalds [Sun, 25 Mar 2007 00:01:45 +0000 (17:01 -0700)]

  [ARM] 4278/1: configure pxa27x I2C SCL as "input"
  [ARM] 4272/1: Missing symbol h1940_pm_return fix
  [ARM] 4235/1: ns9xxx: declare the clock functions as "const"
  [ARM] 4271/1: iop32x: fix ep80219 detection (support iq80219 platforms)
  [ARM] 4270/2: mach-s3c2443/irq.c off by one error in dma irqs

13 years ago[PATCH] fix typos in net/ieee80211/Kconfig
Patrick Ringl [Sat, 24 Mar 2007 22:56:58 +0000 (23:56 +0100)]
[PATCH] fix typos in net/ieee80211/Kconfig

This is just a QA / cosmetic fix ..

[ "a modules" => "a module" ]

Signed-off-by: Linus Torvalds <>
13 years ago[PATCH] cx88-dvb: fix nxt200x rf input switching
Michael Krufky [Sat, 24 Mar 2007 17:21:53 +0000 (13:21 -0400)]
[PATCH] cx88-dvb: fix nxt200x rf input switching

After dvb tuner refactoring, the pllbuff has been altered such that the pll
address is now stored in buf[0].  Instead of sending buf to set_pll_input,
we should send buf+1.

Signed-off-by: Michael Krufky <>
Cc: Mauro Carvalho Chehab <>
Cc: Ivan Andrewjeski <>
Signed-off-by: Linus Torvalds <>
13 years ago[ARM] 4278/1: configure pxa27x I2C SCL as "input"
Guennadi Liakhovetski [Thu, 22 Mar 2007 12:06:55 +0000 (13:06 +0100)]
[ARM] 4278/1: configure pxa27x I2C SCL as "input"

It has been reported by Julian Deng that configuring the pxa27x i2c SCL line as output generates a short negative pulse on it during the call to pxa_gpio_mode(GPIO117_I2CSCL_MD); as it first switches it to output and then configures it for the alternate function. The SCL line is in fact bidirectional and can also be configured as 117 | GPIO_ALT_FN_1_IN, in which case the pulse is not generated. This is exactly what this patch does.

Author: Julian Deng <>

Signed-off-by: G. Liakhovetski <>
Signed-off-by: Russell King <>
13 years ago[PATCH] i386: Prevent early access to TSC to avoid crash on TSCless systems
Thomas Gleixner [Sat, 24 Mar 2007 22:02:49 +0000 (23:02 +0100)]
[PATCH] i386: Prevent early access to TSC to avoid crash on TSCless systems

commit f9690982b8c2f9a2c65acdc113e758ec356676a3 removed the check for
cpu_khz from sched_clock(), which prevented early access to the TSC by
non obvious magic.

This is harmless as long as the CPU has a TSC. On TSCless systems this
results in an illegal instruction trap.

Replace tsc_disabled and tsc_unstable by tsc_enabled, which is only set
when the tsc is available and not unstable.

Signed-off-by: Thomas Gleixner <>
Acked-by: Ingo Molnar <>
Signed-off-by: Linus Torvalds <>
13 years ago[MIPS] SB1250: Fix bugs/warnings by creative use of volatile.
Ralf Baechle [Sat, 24 Mar 2007 14:26:13 +0000 (14:26 +0000)]
[MIPS] SB1250: Fix bugs/warnings by creative use of volatile.

Signed-off-by: Ralf Baechle <>
13 years ago[MIPS] SB1: Fix pile of gcc's bogus format string warnings.
Ralf Baechle [Sat, 24 Mar 2007 14:09:59 +0000 (14:09 +0000)]
[MIPS] SB1: Fix pile of gcc's bogus format string warnings.

  CC      arch/mips/mm/cerr-sb1.o
arch/mips/mm/cerr-sb1.c: In function 'sb1_cache_error':
arch/mips/mm/cerr-sb1.c:235: warning: format '%010llx' expects type 'long long unsigned int', but argument 2 has type 'uint64_t'
arch/mips/mm/cerr-sb1.c: In function 'extract_ic':
arch/mips/mm/cerr-sb1.c:385: warning: format '%016llx' expects type 'long long unsigned int', but argument 3 has type 'uint64_t'
arch/mips/mm/cerr-sb1.c:385: warning: format '%016llX' expects type 'long long unsigned int', but argument 6 has type 'uint64_t'
arch/mips/mm/cerr-sb1.c: In function 'extract_dc':
arch/mips/mm/cerr-sb1.c:523: warning: format '%010llx' expects type 'long long unsigned int', but argument 3 has type 'uint64_t'
arch/mips/mm/cerr-sb1.c:523: warning: format '%016llX' expects type 'long long unsigned int', but argument 7 has type 'uint64_t'
arch/mips/mm/cerr-sb1.c:570: warning: format '%016llX' expects type 'long long unsigned int', but argument 3 has type 'uint64_t'
  LD      arch/mips/mm/built-in.o

Signed-off-by: Ralf Baechle <>
13 years ago[MIPS] Jazz: Fix warning.
Ralf Baechle [Sat, 24 Mar 2007 13:28:58 +0000 (13:28 +0000)]
[MIPS] Jazz: Fix warning.

arch/mips/jazz/jazzdma.c:70: warning: assignment makes integer from pointer without a cast

Signed-off-by: Ralf Baechle <>
13 years ago[MIPS] R3000: local_flush_data_cache_page take a pointer argument.
Ralf Baechle [Sat, 24 Mar 2007 13:20:15 +0000 (13:20 +0000)]
[MIPS] R3000: local_flush_data_cache_page take a pointer argument.

Signed-off-by: Ralf Baechle <>
13 years ago[MIPS] ARC: Fix warning.
Ralf Baechle [Sat, 24 Mar 2007 13:06:43 +0000 (13:06 +0000)]
[MIPS] ARC: Fix warning.

The missing cast did result a warning when calling an 32-bit ARC firmware
function that takes 5 arguments where the 5th argument is a pointer from a
64-bit kernel.

Signed-off-by: Ralf Baechle <>
13 years ago[MIPS] Implement flush_anon_page().
Ralf Baechle [Fri, 23 Mar 2007 21:36:37 +0000 (21:36 +0000)]
[MIPS] Implement flush_anon_page().

Signed-off-by: Ralf Baechle <>
13 years ago[MIPS] SPARSEMEM: The first pfn of zone should be min_low_pfn, not 0.
Atsushi Nemoto [Tue, 20 Mar 2007 15:56:28 +0000 (00:56 +0900)]
[MIPS] SPARSEMEM: The first pfn of zone should be min_low_pfn, not 0.

Signed-off-by: Atsushi Nemoto <>
Signed-off-by: Ralf Baechle <>
13 years ago[MIPS] Fix pipeline hazard.
Ralf Baechle [Tue, 20 Mar 2007 13:56:50 +0000 (13:56 +0000)]
[MIPS] Fix pipeline hazard.

In the the sequence:
        mfc0    $x, $status

the mfc0 may not see the SR_IE bit set. This was a deliberate bug in the
kernel code because we knew this was a safe thing to do on all R2 silicon
so far but new silicon is changing this.

Signed-off-by: Ralf Baechle <>
13 years ago[MIPS] Make MIPS udelay() preempt safe under DEBUG_PREEMPT
Deepak Saxena [Mon, 19 Mar 2007 23:49:45 +0000 (16:49 -0700)]
[MIPS] Make MIPS udelay() preempt safe under DEBUG_PREEMPT

Signed-off-by: Manish Lachwani <>
Signed-off-by: Deepak Saxena <>
Signed-off-by: Ralf Baechle <>
13 years ago[MIPS] Always use virt_to_phys() when translating kernel addresses
Franck Bui-Huu [Mon, 19 Mar 2007 16:36:42 +0000 (17:36 +0100)]
[MIPS] Always use virt_to_phys() when translating kernel addresses

This patch fixes two places where we used plain 'x - PAGE_OFFSET' to
achieve virtual to physical address convertions. This type of convertion
is no more allowed since commit 6f284a2ce7b8bc49cb8455b1763357897a899abb.

Reported-by: Maxime Bizon <>
Signed-off-by: Franck Bui-Huu <>
[Build fixes for machines that don't use the generic dma-coherence.h]

Signed-off-by: Ralf Baechle <>
13 years ago[PATCH] x86_64: avoid sending LOCAL_TIMER_VECTOR IPI to itself
Thomas Gleixner [Sat, 24 Mar 2007 00:14:37 +0000 (17:14 -0700)]
[PATCH] x86_64: avoid sending LOCAL_TIMER_VECTOR IPI to itself

Ray Lee reported, that on an UP kernel with "noapic" command line option
set, the box locks hard during boot.

Adding some debug printks revealed, that the last action on the box
before stalling was "Send IPI" - a debug printk which was put into

It seems that send_IPI_mask(mask, LOCAL_TIMER_VECTOR) fails when
"noapic" is set on the command line on an UP kernel.

Aside of that it does not make much sense to trigger an interrupt
instead of calling the function directly on the CPU which gets the
PIT/HPET interrupt in case of broadcasting.

Reported-by: Ray Lee <>
Signed-off-by: Thomas Gleixner <>
Acked-by: Ray Lee <>
Signed-off-by: Linus Torvalds <>
13 years ago[PATCH] i386: clear segment register padding in core dumps
Roland McGrath [Fri, 23 Mar 2007 21:26:33 +0000 (14:26 -0700)]
[PATCH] i386: clear segment register padding in core dumps

The segment register slots in struct pt_regs are padded to 32 bits.
Some of these are stored with instructions like "pushl %es", which
leaves the high 16 bits as they were.  So the high bits of these
fields in struct pt_regs contain kernel stack garbage.  These bits are
ignored by everything and never leak to user space, except in core
dumps.  The user struct pt_regs is always at the base of the thread's
kernel stack and so it seems unlikely the information that leaks from
here is ever worthwhile so as to be a security concern, but I'm not
sure about that.  It has been this way for ages; userland consumers of
core dumps all mask off these high bits themselves.  So it is not urgent.

This change masks off the padding bits of the segment register slots
in core dumps.  ptrace already masks off these high bits, so this
makes the values in core dumps consistent with what ptrace would
report just before the process died.

As I read the processor manuals, the cs and ss values will always be
padded with zero bits rather than stack garbage.  But unlike "pushl %es",
this is not simple to test with a userland program.  So I added the two
instructions rather than wonder if they are really never necessary.

I think that x86_64 does not have this problem (for either 32-bit or
64-bit processes).  It only uses "mov" instructions from segment
registers, which zero-extend.

Signed-off-by: Roland McGrath <>
Signed-off-by: Linus Torvalds <>
13 years agox86-64: add "local_apic_timer_c2_ok" here too
Linus Torvalds [Fri, 23 Mar 2007 18:32:31 +0000 (11:32 -0700)]
x86-64: add "local_apic_timer_c2_ok" here too

Needed for any architecture that claims ARCH_APICTIMER_STOPS_ON_C3,
not just i386.

I'm hoping Thomas will clean this up a bit later..

Signed-off-by: Linus Torvalds <>
13 years agoMerge branch 'for-linus' of git://
Linus Torvalds [Fri, 23 Mar 2007 18:02:45 +0000 (11:02 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/ieee1394/linux1394-2.6

* 'for-linus' of git://
  ieee1394: fix oops on "modprobe -r ohci1394" after network class_device conversion

13 years agoMerge branch 'upstream-linus' of
Linus Torvalds [Fri, 23 Mar 2007 18:01:41 +0000 (11:01 -0700)]
Merge branch 'upstream-linus' of /linux/kernel/git/jgarzik/netdev-2.6

* 'upstream-linus' of
  [netdrvr] ewrk3: correct card detection bug
  cxgb3 - fix white spaces in drivers/net/Kconfig
  myri10ge: update driver version to 1.3.0-1.226
  myri10ge: fix management of >4kB allocated pages
  myri10ge: update wcfifo and intr_coal_delay default values
  myri10ge: Serverworks HT2100 provides aligned PCIe completion
  mv643xx_eth: add mv643xx_eth_shutdown function
  SAA9730: Fix large pile of warnings
  Revert "ucc_geth: returns NETDEV_TX_BUSY when BD ring is full"
  cxgb3 - T3B2 pcie config space
  cxgb3 - Fix potential MAC hang
  cxgb3 - Auto-load FW if mismatch detected
  cxgb3 - fix ethtool cmd on multiple queues port
  Fix return code in pci-skeleton.c
  skge: use per-port phy locking
  skge: mask irqs when device down
  skge: deadlock on tx timeout
  [PATCH] airo: Fix an error path memory leak
  [PATCH] bcm43xx: MANUALWLAN fixes

13 years ago[PATCH] "ext[34]: EA block reference count racing fix" performance fix
Andrew Morton [Fri, 23 Mar 2007 07:10:02 +0000 (00:10 -0700)]
[PATCH] "ext[34]: EA block reference count racing fix" performance fix

A little mistake in 8a2bfdcbfa441d8b0e5cb9c9a7f45f77f80da465 is making all
transactions synchronous, which reduces ext3 performance to comical levels.

Cc: Mingming Cao <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
13 years ago[PATCH] rivafb: fix initial brightness
Guido Guenther [Fri, 23 Mar 2007 07:10:01 +0000 (00:10 -0700)]
[PATCH] rivafb: fix initial brightness

This is the rivafb equivalent of 238576e12fef1d52751c6e08db2d0bdb0e248caf.
It fixes rivafb having a default backlight brightness of 0 (no picture at
all) on a PBook 6,1.

Signed-off-by: Guido Guenther <>
Cc: "Antonino A. Daplas" <>
Acked-by: Richard Purdie <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
13 years ago[PATCH] add Fujitsu Siemens Tablet PC devices to 8250_pnp.c
Danny Kukawka [Fri, 23 Mar 2007 07:10:01 +0000 (00:10 -0700)]
[PATCH] add Fujitsu Siemens Tablet PC devices to 8250_pnp.c

Adds device ids of two Fujitsu Siemens Tablet PCs to pnp_dev_table

Signed-off-by: Danny Kukawka <>
Cc: Russell King <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
13 years ago[PATCH] FDPIC: fix the /proc/pid/stat representation of executable boundaries
David Howells [Fri, 23 Mar 2007 07:10:00 +0000 (00:10 -0700)]
[PATCH] FDPIC: fix the /proc/pid/stat representation of executable boundaries

Fix the /proc/pid/stat representation of executable boundaries.  It should
show the bounds of the executable, but instead shows the bounds of the

Before the patch is applied, the bug can be seen by examining, say, inetd:

# ps | grep inetd
  610         root          0   S   /usr/sbin/inetd -i
# cat /proc/610/maps
c0bb0000-c0bba788 r-xs 00000000 00:0b 14582157  /lib/
c3180000-c31dede4 r-xs 00000000 00:0b 14582179  /lib/
c328c000-c328ea00 rw-p 00008000 00:0b 14582157  /lib/
c3290000-c329b6c0 rw-p 00000000 00:00 0
c32a0000-c32c0000 rwxp 00000000 00:00 0
c32d4000-c32d8000 rw-p 00000000 00:00 0
c3394000-c3398000 rw-p 00000000 00:00 0
c3458000-c345f464 r-xs 00000000 00:0b 16384612  /usr/sbin/inetd
c3470000-c34748f8 rw-p 00004000 00:0b 16384612  /usr/sbin/inetd
c34cc000-c34d0000 rw-p 00000000 00:00 0
c34d4000-c34d8000 rw-p 00000000 00:00 0
c34d8000-c34dc000 rw-p 00000000 00:00 0
# cat /proc/610/stat
610 (inetd) S 1 610 610 0 -1 256 0 0 0 0 0 8 0 0 19 0 1 0 94392000718
950272 0 4294967295 3233480704 3233523592 3274440352 3274439976
  3273467584 0 0 4096 90115 3221712796 0 0 17 0 0 0 0

The code boundaries are 3233480704 to 3233523592, which are:

(gdb) p/x 3233480704
$1 = 0xc0bb0000
(gdb) p/x 3233523592
$2 = 0xc0bba788

Which corresponds to this line in the maps file:

c0bb0000-c0bba788 r-xs 00000000 00:0b 14582157  /lib/

Which is wrong.  After the patch is applied, the maps file is pretty much
identical (there's some minor shuffling of the location of some of the
anonymous VMAs), but the stat file is now:

# cat /proc/610/stat
610 (inetd) S 1 610 610 0 -1 256 0 0 0 0 0 7 0 0 18 0 1 0 94392000722
950272 0 4294967295 3276111872 3276141668 3274440352 3274439976
3273467584 0 0 4096 90115 3221712796 0 0 17 0 0 0 0

The code boundaries are then 3276111872 to 3276141668, which are:

(gdb) p/x 3276111872
$1 = 0xc3458000
(gdb) p/x 3276141668
$2 = 0xc345f464

And these correspond to this line in the maps file instead:

c3458000-c345f464 r-xs 00000000 00:0b 16384612  /usr/sbin/inetd

Which is now correct.

Signed-off-by: David Howells <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
13 years ago[PATCH] time: fix formatting in /proc/timer_list
James Morris [Fri, 23 Mar 2007 07:09:58 +0000 (00:09 -0700)]
[PATCH] time: fix formatting in /proc/timer_list

Fix the print formatting of three unsigned long fields in /proc/timer_list,
which are currently being formatted as signed long.

Signed-off-by: James Morris <>
Acked-by: Ingo Molnar <>
Cc: Thomas Gleixner <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
13 years ago[PATCH] i386: add command line option "local_apic_timer_c2_ok"
Thomas Gleixner [Fri, 23 Mar 2007 15:08:01 +0000 (16:08 +0100)]
[PATCH] i386: add command line option "local_apic_timer_c2_ok"

It turned out that it is almost impossible to trust ACPI, BIOS & Co.
regarding the C states. This was the reason to switch the local apic
timer off in C2 state already. OTOH there are sane and well behaving
systems, which get punished by that decision.

Allow the user to confirm that the local apic timer is trustworthy in C2
state. This keeps the default behaviour on the safe side.

Signed-off-by: Thomas Gleixner <>
Acked-by: Ingo Molnar <>
Signed-off-by: Linus Torvalds <>
13 years agoRevert "ACPI: Only use IPI on known broken machines (AMD, Dothan/BaniasPentium M)"
Linus Torvalds [Fri, 23 Mar 2007 15:03:47 +0000 (08:03 -0700)]
Revert "ACPI: Only use IPI on known broken machines (AMD, Dothan/BaniasPentium M)"

This reverts commit 25496caec111481161e7f06bbfa12a533c43cc6f, which
broke bootup on at least Ingo's ThinkPad T60.  Need to figure out
exactly what is wrong before we can re-do the logic.

Requested-by: Ingo Molnar <>
Acked-by: Thomas Gleixner <>
Cc: Thomas Renninger <>
Cc: Len Brown <>
Signed-off-by: Linus Torvalds <>
13 years agoieee1394: fix oops on "modprobe -r ohci1394" after network class_device conversion
Stefan Richter [Tue, 20 Mar 2007 21:43:22 +0000 (22:43 +0100)]
ieee1394: fix oops on "modprobe -r ohci1394" after network class_device conversion

The networking subsystem has been converted from class_device to device
but ieee1394 hasn't.  This results in a 100% reproducible NULL pointer
dereference if the ohci1394 driver module is unloaded while the eth1394
module is still loaded.

This is a regression in 2.6.21-rc1.

Signed-off-by: Stefan Richter <>
Tested-by: Ismail Dönmez <>
13 years ago[netdrvr] ewrk3: correct card detection bug
Jeff Garzik [Fri, 23 Mar 2007 06:03:29 +0000 (02:03 -0400)]
[netdrvr] ewrk3: correct card detection bug

Arwin Vosselman pointed out:
> The ewrk3-driver doesn't function with 2.6.16-kernels (used for
> my tests). Cards will never be detected due to this bug.
> drivers/net/ewrks3.c:
> Line 417 reads:
> if (nicsr == (CSR_TXD | CSR_RXD))
> that should be:
> if (nicsr != (CSR_TXD | CSR_RXD))
> Comparison with the same line in v2.4 shows why:
> 2.4:
> if (nicsr == (CSR_TXD | CSR_RXD)){
> blah, blah
> ==========
> 2.6:
> if (nicsr == (CSR_TXD | CSR_RXD))
>     return -ENXIO;
> blah, blah
> ==========
> blah,blah will not, but should, be executed in 2.6 with a card being present.
> The fix mentioned above solves this bug.

Signed-off-by: Jeff Garzik <>
13 years agoMerge branch 'upstream-fixes' of git://
Jeff Garzik [Fri, 23 Mar 2007 05:51:20 +0000 (01:51 -0400)]
Merge branch 'upstream-fixes' of git://git./linux/kernel/git/linville/wireless-2.6 into tmp

13 years agocxgb3 - fix white spaces in drivers/net/Kconfig
Divy Le Ray [Thu, 22 Mar 2007 02:21:00 +0000 (19:21 -0700)]
cxgb3 - fix white spaces in drivers/net/Kconfig

Use tabs instead of white spaces for CHELSIO_T3 entry.

Signed-off-by: Divy Le Ray <>
Signed-off-by: Jeff Garzik <>
13 years agomyri10ge: update driver version to 1.3.0-1.226
Brice Goglin [Wed, 21 Mar 2007 18:47:32 +0000 (19:47 +0100)]
myri10ge: update driver version to 1.3.0-1.226

Driver version is now 1.3.0-1.226.

Signed-off-by: Brice Goglin <>
Signed-off-by: Jeff Garzik <>
13 years agomyri10ge: fix management of >4kB allocated pages
Brice Goglin [Wed, 21 Mar 2007 18:46:57 +0000 (19:46 +0100)]
myri10ge: fix management of >4kB allocated pages

Fix management of allocated physical pages when the architecture
page size is not 4kB since the firmware cannot cross 4K boundary.

Signed-off-by: Brice Goglin <>
Signed-off-by: Jeff Garzik <>
13 years agomyri10ge: update wcfifo and intr_coal_delay default values
Brice Goglin [Wed, 21 Mar 2007 18:45:56 +0000 (19:45 +0100)]
myri10ge: update wcfifo and intr_coal_delay default values

Update the default value of 2 module parameters:
* wcfifo disabled
* intr_coal_delay 75us

Signed-off-by: Brice Goglin <>
Signed-off-by: Jeff Garzik <>
13 years agomyri10ge: Serverworks HT2100 provides aligned PCIe completion
Brice Goglin [Wed, 21 Mar 2007 18:45:18 +0000 (19:45 +0100)]
myri10ge: Serverworks HT2100 provides aligned PCIe completion

[PATCH 1/4] myri10ge: Serverworks HT2100 provides aligned PCIe completion

Use the regular firmware on Serverworks HT2100 PCIe ports since this
chipset provides aligned PCIe completion.

Signed-off-by: Brice Goglin <>
Signed-off-by: Jeff Garzik <>
13 years agomv643xx_eth: add mv643xx_eth_shutdown function
Dale Farnsworth [Tue, 20 Mar 2007 23:38:04 +0000 (16:38 -0700)]
mv643xx_eth: add mv643xx_eth_shutdown function

mv643xx_eth_shutdown is needed for kexec.

Signed-off-by: Dale Farnsworth <>
Signed-off-by: Jeff Garzik <>
13 years agoSAA9730: Fix large pile of warnings
Ralf Baechle [Tue, 20 Mar 2007 12:40:09 +0000 (12:40 +0000)]
SAA9730: Fix large pile of warnings

The SAA9730 driver doesn't quite grok what the difference between an ioport
and memory mapped I/O is.  It just happened to work on the one Linux
system the SAA9730 happens to spend it's misserable existence on.

drivers/net/saa9730.c: In function 'evm_saa9730_enable_lan_int':
drivers/net/saa9730.c:68: warning: passing argument 2 of 'outl' makes integer from pointer without a cast
drivers/net/saa9730.c:70: warning: passing argument 2 of 'outl' makes integer from pointer without a cast
drivers/net/saa9730.c:72: warning: passing argument 2 of 'outl' makes integer from pointer without a cast
drivers/net/saa9730.c: In function 'evm_saa9730_disable_lan_int':
drivers/net/saa9730.c:78: warning: passing argument 2 of 'outl' makes integer from pointer without a cast
drivers/net/saa9730.c:80: warning: passing argument 2 of 'outl' makes integer from pointer without a cast
drivers/net/saa9730.c: In function 'evm_saa9730_clear_lan_int':
drivers/net/saa9730.c:85: warning: passing argument 2 of 'outl' makes integer from pointer without a cast
drivers/net/saa9730.c: In function 'evm_saa9730_block_lan_int':
drivers/net/saa9730.c:91: warning: passing argument 2 of 'outl' makes integer from pointer without a cast
drivers/net/saa9730.c: In function 'evm_saa9730_unblock_lan_int':
drivers/net/saa9730.c:97: warning: passing argument 2 of 'outl' makes integer from pointer without a cast
drivers/net/saa9730.c: In function 'show_saa9730_regs':
drivers/net/saa9730.c:150: warning: passing argument 2 of 'outl' makes integer from pointer without a cast
drivers/net/saa9730.c: In function 'lan_saa9730_allocate_buffers':
drivers/net/saa9730.c:292: warning: passing argument 2 of 'outl' makes integer from pointer without a cast
drivers/net/saa9730.c:295: warning: passing argument 2 of 'outl' makes integer from pointer without a cast
drivers/net/saa9730.c:302: warning: passing argument 2 of 'outl' makes integer from pointer without a cast
drivers/net/saa9730.c:305: warning: passing argument 2 of 'outl' makes integer from pointer without a cast
drivers/net/saa9730.c:312: warning: passing argument 2 of 'outl' makes integer from pointer without a cast
drivers/net/saa9730.c: In function 'lan_saa9730_cam_load':
drivers/net/saa9730.c:329: warning: passing argument 2 of 'outl' makes integer from pointer without a cast
drivers/net/saa9730.c:332: warning: passing argument 2 of 'outl' makes integer from pointer without a cast
drivers/net/saa9730.c: In function 'lan_saa9730_mii_init':
drivers/net/saa9730.c:369: warning: passing argument 2 of 'outl' makes integer from pointer without a cast
drivers/net/saa9730.c:395: warning: passing argument 2 of 'outl' makes integer from pointer without a cast
drivers/net/saa9730.c:403: warning: passing argument 2 of 'outl' makes integer from pointer without a cast
drivers/net/saa9730.c:410: warning: passing argument 2 of 'outl' makes integer from pointer without a cast
drivers/net/saa9730.c:432: warning: passing argument 2 of 'outl' makes integer from pointer without a cast
drivers/net/saa9730.c: In function 'lan_saa9730_control_init':
drivers/net/saa9730.c:470: warning: passing argument 2 of 'outl' makes integer from pointer without a cast
drivers/net/saa9730.c:474: warning: passing argument 2 of 'outl' makes integer from pointer without a cast
drivers/net/saa9730.c:478: warning: passing argument 2 of 'outl' makes integer from pointer without a cast
drivers/net/saa9730.c:484: warning: passing argument 2 of 'outl' makes integer from pointer without a cast
drivers/net/saa9730.c:487: warning: passing argument 2 of 'outl' makes integer from pointer without a cast
drivers/net/saa9730.c:490: warning: passing argument 2 of 'outl' makes integer from pointer without a cast
drivers/net/saa9730.c:493: warning: passing argument 2 of 'outl' makes integer from pointer without a cast
drivers/net/saa9730.c: In function 'lan_saa9730_stop':
drivers/net/saa9730.c:505: warning: passing argument 2 of 'outl' makes integer from pointer without a cast
drivers/net/saa9730.c:508: warning: passing argument 2 of 'outl' makes integer from pointer without a cast
drivers/net/saa9730.c:510: warning: passing argument 2 of 'outl' makes integer from pointer without a cast
drivers/net/saa9730.c: In function 'lan_saa9730_dma_init':
drivers/net/saa9730.c:536: warning: passing argument 2 of 'outl' makes integer from pointer without a cast
drivers/net/saa9730.c: In function 'lan_saa9730_start':
drivers/net/saa9730.c:556: warning: passing argument 2 of 'outl' makes integer from pointer without a cast
drivers/net/saa9730.c:560: warning: passing argument 2 of 'outl' makes integer from pointer without a cast
drivers/net/saa9730.c:564: warning: passing argument 2 of 'outl' makes integer from pointer without a cast
drivers/net/saa9730.c:567: warning: passing argument 2 of 'outl' makes integer from pointer without a cast
drivers/net/saa9730.c: In function 'lan_saa9730_tx':
drivers/net/saa9730.c:590: warning: passing argument 2 of 'outl' makes integer from pointer without a cast
drivers/net/saa9730.c: In function 'lan_saa9730_rx':
drivers/net/saa9730.c:664: warning: passing argument 2 of 'outl' makes integer from pointer without a cast
drivers/net/saa9730.c:729: warning: passing argument 2 of 'outl' makes integer from pointer without a cast
drivers/net/saa9730.c: In function 'lan_saa9730_write':
drivers/net/saa9730.c:848: warning: passing argument 2 of 'outl' makes integer from pointer without a cast
drivers/net/saa9730.c: In function 'lan_saa9730_set_multicast':
drivers/net/saa9730.c:943: warning: passing argument 2 of 'outl' makes integer from pointer without a cast
drivers/net/saa9730.c:949: warning: passing argument 2 of 'outl' makes integer from pointer without a cast

Fixed by using writel instead of outl.  42 warnings less.

Signed-off-by: Ralf Baechle <>
Signed-off-by: Jeff Garzik <>
13 years agoRevert "ucc_geth: returns NETDEV_TX_BUSY when BD ring is full"
Li Yang [Mon, 19 Mar 2007 03:58:02 +0000 (11:58 +0800)]
Revert "ucc_geth: returns NETDEV_TX_BUSY when BD ring is full"

This reverts commit 18babd38547a042a4bfd4154a014d1ad33373eb0.

Michael Barkowski points out that it's wrong, and I agree.  The
patch causes a problem rather than fixes one after another
patch "ucc_geth: Fix BD processing" was applied.  Before that
patch, current packet should be blocked.  However after the patch
current packet is ok and we only need to block next.

Reported-by: Michael Barkowski <>
Signed-off-by: Li Yang <>
Signed-off-by: Jeff Garzik <>
13 years agocxgb3 - T3B2 pcie config space
Divy Le Ray [Sun, 18 Mar 2007 20:10:17 +0000 (13:10 -0700)]
cxgb3 - T3B2 pcie config space

T3B2 does not lose its pcie config space on reset.

Signed-off-by: Divy Le Ray <>
Signed-off-by: Jeff Garzik <>
13 years agocxgb3 - Fix potential MAC hang
Divy Le Ray [Sun, 18 Mar 2007 20:10:12 +0000 (13:10 -0700)]
cxgb3 - Fix potential MAC hang

Under rare conditions, the MAC might hang while generating a pause frame.
This patch fine tunes the MAC settings to avoid the issue, allows for
periodic MAC state check, and triggers a recovery if hung.

Also fix one MAC statistics counter for the rev board T3B2.

Signed-off-by: Divy Le Ray <>
Signed-off-by: Jeff Garzik <>
13 years agocxgb3 - Auto-load FW if mismatch detected
Divy Le Ray [Sun, 18 Mar 2007 20:10:06 +0000 (13:10 -0700)]
cxgb3 - Auto-load FW if mismatch detected

The driver attempts to upgrade the FW if the card has the wrong version.

Signed-off-by: Divy Le Ray <>
Signed-off-by: Jeff Garzik <>
13 years agocxgb3 - fix ethtool cmd on multiple queues port
Divy Le Ray [Sun, 18 Mar 2007 20:10:01 +0000 (13:10 -0700)]
cxgb3 - fix ethtool cmd on multiple queues port

Limit ethtool -g/-G to the given port's queues.

Signed-off-by: Divy Le Ray <>
Signed-off-by: Jeff Garzik <>
13 years agoFix return code in pci-skeleton.c
Anton Blanchard [Fri, 16 Mar 2007 22:00:21 +0000 (17:00 -0500)]
Fix return code in pci-skeleton.c

We assign the return value of register_netdev to i, but return rc later
on. Fix it.

Signed-off-by: Anton Blanchard <>
Signed-off-by: Jeff Garzik <>
13 years agoskge: use per-port phy locking
Stephen Hemminger [Fri, 16 Mar 2007 21:01:28 +0000 (14:01 -0700)]
skge: use per-port phy locking

Rather than a workqueue and a per-board mutex to control PHY,
use a tasklet and spinlock. Tasklet is lower overhead and works
just as well for this.

Signed-off-by: Stephen Hemminger <>
Signed-off-by: Jeff Garzik <>