platform/kernel/linux-rpi.git
16 years agoforcedeth: tx pause watermarks
Ayaz Abdulla [Tue, 5 Feb 2008 17:30:01 +0000 (12:30 -0500)]
forcedeth: tx pause watermarks

New chipsets introduced variant Rx FIFO sizes that need to be taken into
account when setting up the tx pause watermarks. This patch introduces
the new device feature flags based on a version and implements the new
watermarks.

Signed-off-by: Ayaz Abdulla <aabdulla@nvidia.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agoforcedeth: tx collision fix
Ayaz Abdulla [Tue, 5 Feb 2008 17:29:49 +0000 (12:29 -0500)]
forcedeth: tx collision fix

This patch supports a new fix in hardware regarding tx collisions. In
the cases where we are in autoneg mode and the link partner is in forced
mode, we need to setup the tx deferral register differently in order to
reduce collisions on the wire.

Signed-off-by: Ayaz Abdulla <aabdulla@nvidia.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agocxgb3: Handle ARP completions that mark neighbors stale.
Steve Wise [Wed, 6 Feb 2008 18:05:19 +0000 (12:05 -0600)]
cxgb3: Handle ARP completions that mark neighbors stale.

When ARP completes due to a request rather than a reply the neighbor is
marked NUD_STALE instead of reachable (see arp_process()).  The handler
for the resulting netevent needs to check also for NUD_STALE.

Failure to use the arp entry can cause RDMA connection failures.

Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Acked-by: Divy Le Ray <divy@chelsio.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agoMerge branch 'r6040' of git://git.kernel.org/pub/scm/linux/kernel/git/romieu/netdev...
Jeff Garzik [Mon, 11 Feb 2008 16:07:34 +0000 (11:07 -0500)]
Merge branch 'r6040' of git://git./linux/kernel/git/romieu/netdev-2.6 into upstream-fixes

16 years agoDM9000: Show the MAC address source after printing MAC
Ben Dooks [Tue, 5 Feb 2008 00:02:23 +0000 (00:02 +0000)]
DM9000: Show the MAC address source after printing MAC

Show whether the MAC address was read from the EEPROM or
the onboard PAR registers.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agoDM9000: Update retry count whilst identifying chip
Ben Dooks [Tue, 5 Feb 2008 00:02:22 +0000 (00:02 +0000)]
DM9000: Update retry count whilst identifying chip

Reading the ID register does not always return the correct ID
from the device, so we retry several times to see if we get
a correct value.

These failures seem to be excaserbated by the speed of the
access to the chip (possibly time between issuing the address
and then the data cycle).

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agoDM9000: Add support for MII ioctl() calls
Ben Dooks [Tue, 5 Feb 2008 00:02:21 +0000 (00:02 +0000)]
DM9000: Add support for MII ioctl() calls

Add entry to handle the MII ioctl() calls via the
generic_mii_ioctl call.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agoDM9000: Add platform flag for no attached EEPROM
Ben Dooks [Tue, 5 Feb 2008 00:02:20 +0000 (00:02 +0000)]
DM9000: Add platform flag for no attached EEPROM

Allow the platform data to specify to the DM9000 driver
that there is no posibility of an attached EEPROM on the
device, so default all reads to 0xff and ignore any
write operations.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agoDM9000: Remove redudant use of "& 0xff"
Ben Dooks [Tue, 5 Feb 2008 00:02:19 +0000 (00:02 +0000)]
DM9000: Remove redudant use of "& 0xff"

The writing of the data should implicitly truncate
the data to 8bits, so do not bother with the ands
in the code.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agoDM9000: Remove cal_CRC() and use ether_crc_le instead
Ben Dooks [Tue, 5 Feb 2008 00:02:18 +0000 (00:02 +0000)]
DM9000: Remove cal_CRC() and use ether_crc_le instead

Remove the cal_CRC as this is basically wrappering the
ether_crc_le function, and is only being used by the
multicast hash table functions.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agoDM9000: Fix delays used by EEPROM read and write
Ben Dooks [Tue, 5 Feb 2008 00:02:17 +0000 (00:02 +0000)]
DM9000: Fix delays used by EEPROM read and write

The code was using a delay of 8ms, when it should have been
using the EEPROM status flag from the device to indicate the
EEPROM transaction had finished.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agoDM9000: Use netif_msg to enable debugging options
Ben Dooks [Tue, 5 Feb 2008 00:02:16 +0000 (00:02 +0000)]
DM9000: Use netif_msg to enable debugging options

Use the netif_msg_*() macros to enable the debugging based
on the board's msg_enable field. The output still goes via
the dev_dbg() macros, so will be tagged and output as
appropriate.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agoDM9000: Remove unnecessary changelog in header comment
Ben Dooks [Tue, 5 Feb 2008 00:02:15 +0000 (00:02 +0000)]
DM9000: Remove unnecessary changelog in header comment

We have a perfectly good version control system, so we do not
need to duplicate change comments in the header for this code.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agoDM9000: Ensure spinlock held whilst accessing EEPROM registers
Ben Dooks [Tue, 5 Feb 2008 00:02:14 +0000 (00:02 +0000)]
DM9000: Ensure spinlock held whilst accessing EEPROM registers

Ensure we hold the spinlock whilst the registers and being
modified even though we hold the overall lock. This should
protect against an interrupt happening whilst we are using
the device.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agoDM9000: Remove EEPROM initialisation code.
Ben Dooks [Tue, 5 Feb 2008 00:02:13 +0000 (00:02 +0000)]
DM9000: Remove EEPROM initialisation code.

Remove the old hack to program an initial EEPROM setting
into the DM9000 as we now have ethtool support for reading
and writing the EEPROM.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agoDM9000: Add ethtool control of msg_enable value
Ben Dooks [Tue, 5 Feb 2008 00:02:12 +0000 (00:02 +0000)]
DM9000: Add ethtool control of msg_enable value

Allow the msg_enable value to be read and written by
the ethtool interface.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agoDM9000: Add ethtool support for reading and writing EEPROM
Ben Dooks [Tue, 5 Feb 2008 00:02:11 +0000 (00:02 +0000)]
DM9000: Add ethtool support for reading and writing EEPROM

Add ethtool support to access the configuration EEPROM
connected to the DM9000.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agoDM9000: Add mutex to protect access
Ben Dooks [Tue, 5 Feb 2008 00:02:10 +0000 (00:02 +0000)]
DM9000: Add mutex to protect access

Add a mutex to serialise access to the chip functions from
entries such as the ethtool and the MII code. This should
reduce the amount of time the spinlock is held to protect
the address register.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agoDM9000: Remove barely used SROM array read.
Ben Dooks [Tue, 5 Feb 2008 00:02:09 +0000 (00:02 +0000)]
DM9000: Remove barely used SROM array read.

The srom array in the board data is only being used in the device probe
routines. The probe also only uses the first 6 bytes of an array
we spend 512ms reading 128 bytes from. Change to reading the
MAC area directly to the MAC address structure.

As a side product, we rename the read_srom_word to dm9000_read_eeprom
to bring it into line with the rest of the driver. No change is made
to the delay in this function, which will be dealt with in a later
patch.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agoDM9000: Use msleep() instead of udelay()
Ben Dooks [Tue, 5 Feb 2008 00:02:08 +0000 (00:02 +0000)]
DM9000: Use msleep() instead of udelay()

We can use sleeping functions when reading and writing the
PHY registers, so let us sleep instead of busy waiting for
the PHY.

Note, this also fixes a bug reading the PHY where only 100uS
was being used instead of 150uS

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agoDM9000: Do not sleep with spinlock and IRQs held
Ben Dooks [Tue, 5 Feb 2008 00:02:07 +0000 (00:02 +0000)]
DM9000: Do not sleep with spinlock and IRQs held

The phy read and write routines call udelay() with the board
lock held, and with the posibility of IRQs being disabled. Since
these delays can be up to 500usec, and are only required as we
have to save the chip's address register.

To improve the behaviour, hold the lock whilst we are writing
and then restore the state before the delay and then repeat
the process once the delay has happened.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agoDM9000: Add initial ethtool support
Ben Dooks [Tue, 5 Feb 2008 00:02:06 +0000 (00:02 +0000)]
DM9000: Add initial ethtool support

Add support for ethtool operations for the DM9000.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agoDM9000: Remove old timer based poll routines
Ben Dooks [Tue, 5 Feb 2008 00:02:05 +0000 (00:02 +0000)]
DM9000: Remove old timer based poll routines

Remove the timer based MII phy polling, as this is
currently broken with the new EEPROM code that now
uses mutexes to protect the phy access.

This will need to be replaced in the future by some
form of mutex safe mechanism for reading the MII
phy status.

The replacement has not been done here as changing
this patch, which is early in the sequence has quite
a knock-on effect. Once this series is merged, then
a new presentation of an patch to poll the MII link
status can be added.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agoDM9000: Pass IRQ flags via platform resources
Ben Dooks [Tue, 5 Feb 2008 00:02:04 +0000 (00:02 +0000)]
DM9000: Pass IRQ flags via platform resources

Use the flags in the IRQ resource to specify the type of
IRQ being requested, so that systems which do not have
level-based interrupts, or change the interrupt in some
other way can specify this without making an #ifdef mess
in the driver.

This is specifically designed to undo the change in commit
4e4fc05a2b6e7bd2e0facd96e0c18dceb34d9349 which hardwires the
type for everyone but blackfin to IRQT_RISING, which breaks
all a number of Simtec boards which use (and setup in the
bootloader) active low IRQs.

Note, although there where originally objections due to
the use of IORESOURCE_IRQ and IRQT_ flags not sharing the
same definition, at least <include/linux/interrupt.h> notes
these are the same.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
CC: Daniel Mack <daniel@caiaq.de>
CC: Bryan Wu <bryan.wu@analog.com>
CC: Alex Landau <landau.alex@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agoDM9000 update debugging macros to use debug level
Ben Dooks [Tue, 5 Feb 2008 00:02:03 +0000 (00:02 +0000)]
DM9000 update debugging macros to use debug level

Change the debug macros to use the compiler to elide any
unnecessary debug level, and to allow device configurable
debug control.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agoDM9000 use dev_xxx() instead of printk for output.
Ben Dooks [Tue, 5 Feb 2008 00:02:02 +0000 (00:02 +0000)]
DM9000 use dev_xxx() instead of printk for output.

Move to using dev_dbg() and friends for the output of
information to the user.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agoDM9000: Add platform data to specify external phy
Ben Dooks [Tue, 5 Feb 2008 00:02:01 +0000 (00:02 +0000)]
DM9000: Add platform data to specify external phy

Patch from: Laurent Pinchart <laurentp@cse-semaphore.com>

This patch adds a flag to the DM9000 platform data which, when set,
configures the device to use an external PHY.

Signed-off-by: Laurent Pinchart <laurentp@cse-semaphore.com>
Signed-off-by: Ben Dooks <ben-linuy@fluff.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agoDM9000: Fix endian-ness of data accesses.
Ben Dooks [Tue, 5 Feb 2008 00:02:00 +0000 (00:02 +0000)]
DM9000: Fix endian-ness of data accesses.

Patch from: Laurent Pinchart <laurentp@cse-semaphore.com>

This patch splits the receive status in 8bit wide fields and convert the
packet length from little endian to CPU byte order.

Signed-off-by: Laurent Pinchart <laurentp@cse-semaphore.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agoOptimize cxgb3 xmit path (a bit)
Krishna Kumar [Wed, 30 Jan 2008 07:00:16 +0000 (12:30 +0530)]
Optimize cxgb3 xmit path (a bit)

1. Add common code for stopping queue.
2. No need to call netif_stop_queue followed by netif_wake_queue (and
   infact a netif_start_queue could have been used instead), instead
   call stop_queue if required, and remove code under USE_GTS macro.
3. There is no need to check for netif_queue_stopped, as the network
   core guarantees that for us (I am sure every driver could remove
   that check, eg e1000 - I have tested that path a few billion times
   with about a few hundred thousand qstops but the condition never
   hit even once).

Signed-off-by: Krishna Kumar <krkumar2@in.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agoe1000: Fix for 32 bits platforms with 64 bits resources
Benjamin Herrenschmidt [Fri, 16 Nov 2007 07:37:38 +0000 (18:37 +1100)]
e1000: Fix for 32 bits platforms with 64 bits resources

The e1000 driver stores the content of the PCI resources into
unsigned long's before ioremapping. This breaks on 32 bits
platforms that support 64 bits MMIO resources such as ppc 44x.

This fixes it by removing those temporary variables and passing
directly the result of pci_resource_start/len to ioremap.

The side effect is that I removed the assignments to the netdev
fields mem_start, mem_end and base_addr, which are totally useless
for PCI devices.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
--

 drivers/net/e1000/e1000_main.c |   18 +++++-------------
 1 file changed, 5 insertions(+), 13 deletions(-)
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agoPS3: gelic: Add wireless support for PS3
Masakazu Mokuno [Thu, 7 Feb 2008 10:58:57 +0000 (19:58 +0900)]
PS3: gelic: Add wireless support for PS3

Signed-off-by: Masakazu Mokuno <mokuno@sm.sony.co.jp>
Acked-by: Dan Williams <dcbw@redhat.com>
Acked-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agoPS3: gelic: Add support for dual network interface
Masakazu Mokuno [Thu, 7 Feb 2008 10:58:42 +0000 (19:58 +0900)]
PS3: gelic: Add support for dual network interface

Add support for dual network (net_device) interface so that ethernet
and wireless can own separate ethX interfaces.

V2
  - Fix the bug that bringing down and up the interface keeps rx
    disabled.
  - Make 'gelic_net_poll_controller()' extern , as David Woodhouse
    pointed out at the previous submission.
  - Fix weird usage of member names for the rx descriptor chain
V1
  - Export functions which are convenient for both interfaces
  - Move irq allocation/release code to driver probe/remove handlers
    because interfaces share interrupts.
  - Allocate skbs by using dev_alloc_skb() instead of netdev_alloc_skb()
    as the interfaces share the hardware rx queue.
  - Add gelic_port struct in order to abstract dual interface handling
  - Change handlers for hardware queues so that they can handle dual
    {source,destination} interfaces.
  - Use new NAPI functions
This is a prerequisite for the new PS3 wireless support.

Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agoPS3: gelic: add support for port link status
Masakazu Mokuno [Thu, 7 Feb 2008 10:58:32 +0000 (19:58 +0900)]
PS3: gelic: add support for port link status

Add support for interrupt driven port link status detection.

Signed-off-by: Masakazu Mokuno <mokuno@sm.sony.co.jp>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agoPS3: gelic: remove duplicated ethtool handlers
Masakazu Mokuno [Thu, 7 Feb 2008 10:58:20 +0000 (19:58 +0900)]
PS3: gelic: remove duplicated ethtool handlers

Remove some ethtool handlers, which duplicate functionality that was already
provided by the common ethtool handlers.

Signed-off-by: Masakazu Mokuno <mokuno@sm.sony.co.jp>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agoPS3: gelic: code cleanup
Masakazu Mokuno [Thu, 7 Feb 2008 10:58:08 +0000 (19:58 +0900)]
PS3: gelic: code cleanup

Code cleanup:
 - Use appropriate prefixes for names instead of fixed 'gelic_net'
   so that objects of the functions, variables and constants can be estimated.
 - Remove definitions for IPSec offload to the gelic hardware.  This
   functionality is never supported on PS3.
 - Group constants with enum.
 - Use bitwise constants for interrupt status, instead of bit numbers to
   eliminate shift operations.
 - Style fixes.
Signed-off-by: Masakazu Mokuno <mokuno@sm.sony.co.jp>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agoPS3: gelic: Add endianness macros
Masakazu Mokuno [Thu, 7 Feb 2008 10:57:54 +0000 (19:57 +0900)]
PS3: gelic: Add endianness macros

Mark the members of the structure for DMA descriptors with proper endian
annotations and use the appropriate accessor macros.
As the gelic driver works only on PS3, all these macros will be
expanded to null.

Signed-off-by: Masakazu Mokuno <mokuno@sm.sony.co.jp>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agoPS3: gelic: Fix the wrong dev_id passed
Masakazu Mokuno [Thu, 7 Feb 2008 10:57:41 +0000 (19:57 +0900)]
PS3: gelic: Fix the wrong dev_id passed

The device id for lv1_net_set_interrupt_status_indicator() is wrong.
This path would be invoked only in the case of an initialization failure.

Signed-off-by: Masakazu Mokuno <mokuno@sm.sony.co.jp>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years ago8139too fix for Dreamcast
Adrian McMenamin [Fri, 8 Feb 2008 11:21:58 +0000 (11:21 +0000)]
8139too fix for Dreamcast

Updates the 8139too driver to work with recently added
(a724605cb7a66d423a494a395f9a8ba871b8a1eb) declared coherent memory
patch for the Dreamcast.

Signed-off-by: Adrian McMenamin <adrian@mcmen.demon.co.uk>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agoni52: Remove 278 scripts/checkpatch errors
Alan Cox [Fri, 8 Feb 2008 15:27:38 +0000 (15:27 +0000)]
ni52: Remove 278 scripts/checkpatch errors

To kill the volatiles also switch it to stop poking ISA memory directly
without going through readb and friends.

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agopcnet32: Use print_mac
Don Fry [Fri, 8 Feb 2008 15:29:38 +0000 (07:29 -0800)]
pcnet32: Use print_mac

Signed-off-by: Joe Perches <joe@perches.com>
Acked-by: Don Fry <pcnet32@verizon.net>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agopcnet32: use NET_IP_ALIGN instead of 2
Don Fry [Fri, 8 Feb 2008 15:32:26 +0000 (07:32 -0800)]
pcnet32: use NET_IP_ALIGN instead of 2

Change hard coded 2 to NET_IP_ALIGN.  Added new #define with comments.
Tested amd_64

Signed-off-by: Don Fry <pcnet32@verizon.net>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agoLinux 2.6.25-rc1
Linus Torvalds [Sun, 10 Feb 2008 22:18:14 +0000 (14:18 -0800)]
Linux 2.6.25-rc1

.. and I really need to call it something else.  Maybe it is time to
bring back the weasel series, since weasels always make me feel good
about a kernel.

16 years agoMerge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm
Linus Torvalds [Sun, 10 Feb 2008 22:09:44 +0000 (14:09 -0800)]
Merge branch 'for-linus' of /home/rmk/linux-2.6-arm

* 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm: (30 commits)
  [ARM] constify function pointer tables
  [ARM] 4823/1: AT91 section fix
  [ARM] 4824/1: pxa: clear RDH bit after any reset
  [ARM] pxa: remove debugging PM: printk
  ARM: OMAP1: Misc clean-up
  ARM: OMAP1: Update defconfigs for omap1
  ARM: OMAP1: Palm Tungsten E board clean-up
  ARM: OMAP1: Use I2C bus registration helper for omap1
  ARM: OMAP1: Remove omap_sram_idle()
  ARM: OMAP1: PM fixes for OMAP1
  ARM: OMAP1: Use MMC multislot structures for Siemens SX1 board
  ARM: OMAP1: Make omap1 use MMC multislot structures
  ARM: OMAP1: Change the comments to C style
  ARM: OMAP1: Make omap1 boards to use omap_nand_platform_data
  ARM: OMAP: Add helper module for board specific I2C bus registration
  ARM: OMAP: Add dmtimer support for OMAP3
  ARM: OMAP: Pre-3430 clean-up for dmtimer.c
  ARM: OMAP: Add DMA support for chaining and 3430
  ARM: OMAP: Add 24xx GPIO debounce support
  ARM: OMAP: Get rid of unnecessary ifdefs in GPIO code
  ...

16 years agoChange pci_raw_ops to pci_raw_read/write
Matthew Wilcox [Sun, 10 Feb 2008 14:45:28 +0000 (09:45 -0500)]
Change pci_raw_ops to pci_raw_read/write

We want to allow different implementations of pci_raw_ops for standard
and extended config space on x86.  Rather than clutter generic code with
knowledge of this, we make pci_raw_ops private to x86 and use it to
implement the new raw interface -- raw_pci_read() and raw_pci_write().

Signed-off-by: Matthew Wilcox <willy@linux.intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
16 years agoPCI x86: always use conf1 to access config space below 256 bytes
Ivan Kokshaysky [Mon, 14 Jan 2008 22:31:09 +0000 (17:31 -0500)]
PCI x86: always use conf1 to access config space below 256 bytes

Thanks to Loic Prylli <loic@myri.com>, who originally proposed
this idea.

Always using legacy configuration mechanism for the legacy config space
and extended mechanism (mmconf) for the extended config space is
a simple and very logical approach. It's supposed to resolve all
known mmconf problems. It still allows per-device quirks (tweaking
dev->cfg_size). It also allows to get rid of mmconf fallback code.

Signed-off-by: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Signed-off-by: Matthew Wilcox <willy@linux.intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
16 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
Linus Torvalds [Sun, 10 Feb 2008 20:03:57 +0000 (12:03 -0800)]
Merge git://git./linux/kernel/git/davem/net-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:
  [PKT_SCHED] ematch: Fix build warning.

16 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/tglx/linux-2.6-hrt
Linus Torvalds [Sun, 10 Feb 2008 20:02:45 +0000 (12:02 -0800)]
Merge git://git./linux/kernel/git/tglx/linux-2.6-hrt

* git://git.kernel.org/pub/scm/linux/kernel/git/tglx/linux-2.6-hrt:
  hrtimer: don't modify restart_block->fn in restart functions
  hrtimer: fix *rmtp/restarts handling in compat_sys_nanosleep()
  hrtimer: fix *rmtp handling in hrtimer_nanosleep()
  ntp: correct inconsistent interval/tick_length usage

16 years agosplice: fix user pointer access in get_iovec_page_array()
Bastian Blank [Sun, 10 Feb 2008 14:47:57 +0000 (16:47 +0200)]
splice: fix user pointer access in get_iovec_page_array()

Commit 8811930dc74a503415b35c4a79d14fb0b408a361 ("splice: missing user
pointer access verification") added the proper access_ok() calls to
copy_from_user_mmap_sem() which ensures we can copy the struct iovecs
from userspace to the kernel.

But we also must check whether we can access the actual memory region
pointed to by the struct iovec to fix the access checks properly.

Signed-off-by: Bastian Blank <waldi@debian.org>
Acked-by: Oliver Pinter <oliver.pntr@gmail.com>
Cc: Jens Axboe <jens.axboe@oracle.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
16 years ago[PKT_SCHED] ematch: Fix build warning.
David S. Miller [Sun, 10 Feb 2008 11:48:15 +0000 (03:48 -0800)]
[PKT_SCHED] ematch: Fix build warning.

Commit 954415e33ed6cfa932c13e8c2460bd05e50723b5 ("[PKT_SCHED] ematch:
tcf_em_destroy robustness") removed a cast on em->data when
passing it to kfree(), but em->data is an integer type that can
hold pointers as well as other values so the cast is necessary.

Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agohrtimer: don't modify restart_block->fn in restart functions
Oleg Nesterov [Fri, 1 Feb 2008 17:41:30 +0000 (20:41 +0300)]
hrtimer: don't modify restart_block->fn in restart functions

hrtimer_nanosleep_restart() clears/restores restart_block->fn. This is
pointless and complicates its usage. Note that if sys_restart_syscall()
doesn't actually happen, we have a bogus "pending" restart->fn anyway,
this is harmless.

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Cc: Alexey Dobriyan <adobriyan@sw.ru>
Cc: Pavel Emelyanov <xemul@sw.ru>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Toyo Abe <toyoa@mvista.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agohrtimer: fix *rmtp/restarts handling in compat_sys_nanosleep()
Oleg Nesterov [Fri, 1 Feb 2008 17:35:31 +0000 (20:35 +0300)]
hrtimer: fix *rmtp/restarts handling in compat_sys_nanosleep()

Spotted by Pavel Emelyanov and Alexey Dobriyan.

compat_sys_nanosleep() implicitly uses hrtimer_nanosleep_restart(), this can't
work. Make a suitable compat_nanosleep_restart() helper.

Introduced by commit c70878b4e0b6cf8d2f1e46319e48e821ef4a8aba
hrtimer: hook compat_sys_nanosleep up to high res timer code

Also, set ->addr_limit = KERNEL_DS before doing hrtimer_nanosleep(), this func
was changed by the previous patch and now takes the "__user *" parameter.

Thanks to Ingo Molnar for fixing the bug in this patch.

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Alexey Dobriyan <adobriyan@sw.ru>
Cc: Pavel Emelyanov <xemul@sw.ru>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Toyo Abe <toyoa@mvista.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agohrtimer: fix *rmtp handling in hrtimer_nanosleep()
Oleg Nesterov [Fri, 1 Feb 2008 14:29:05 +0000 (17:29 +0300)]
hrtimer: fix *rmtp handling in hrtimer_nanosleep()

Spotted by Pavel Emelyanov and Alexey Dobriyan.

hrtimer_nanosleep() sets restart_block->arg1 = rmtp, but this rmtp points to
the local variable which lives in the caller's stack frame. This means that
if sys_restart_syscall() actually happens and it is interrupted as well, we
don't update the user-space variable, but write into the already dead stack
frame.

Introduced by commit 04c227140fed77587432667a574b14736a06dd7f
hrtimer: Rework hrtimer_nanosleep to make sys_compat_nanosleep easier

Change the callers to pass "__user *rmtp" to hrtimer_nanosleep(), and change
hrtimer_nanosleep() to use copy_to_user() to actually update *rmtp.

Small problem remains. man 2 nanosleep states that *rtmp should be written if
nanosleep() was interrupted (it says nothing whether it is OK to update *rmtp
if nanosleep returns 0), but (with or without this patch) we can dirty *rem
even if nanosleep() returns 0.

NOTE: this patch doesn't change compat_sys_nanosleep(), because it has other
bugs. Fixed by the next patch.

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Cc: Alexey Dobriyan <adobriyan@sw.ru>
Cc: Michael Kerrisk <mtk.manpages@googlemail.com>
Cc: Pavel Emelyanov <xemul@sw.ru>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Toyo Abe <toyoa@mvista.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
 include/linux/hrtimer.h |    2 -
 kernel/hrtimer.c        |   51 +++++++++++++++++++++++++-----------------------
 kernel/posix-timers.c   |   14 +------------
 3 files changed, 30 insertions(+), 37 deletions(-)

16 years agontp: correct inconsistent interval/tick_length usage
john stultz [Sun, 10 Feb 2008 09:48:03 +0000 (10:48 +0100)]
ntp: correct inconsistent interval/tick_length usage

clocksource initialization and error accumulation.  This corrects a 280ppm
drift seen on some systems using acpi_pm, and affects other clocksources as
well (likely to a lesser degree).

Signed-off-by: John Stultz <johnstul@us.ibm.com>
Cc: Roman Zippel <zippel@linux-m68k.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
Linus Torvalds [Sun, 10 Feb 2008 08:04:35 +0000 (00:04 -0800)]
Merge git://git./linux/kernel/git/davem/net-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (28 commits)
  [NET_SCHED] sch_htb: htb_requeue fix
  [IPV6]: Replace using the magic constant "1024" with IP6_RT_PRIO_USER for fc_metric.
  starfire: secton fix
  via-velocity: section fix
  natsemi: section fix
  typhoon: section fix
  isdn: fix section mismatch warning for ISACVer
  isdn: fix section mismatch warnings from hisax_cs_setup_card
  isdn: fix section mismatch warnings in isac.c and isar.c
  isdn: fix section mismatch warning in hfc_sx.c
  [PKT_SCHED] ematch: tcf_em_destroy robustness
  [PKT_SCHED]: deinline functions in meta match
  [SCTP]: Convert sctp_dbg_objcnt to seq files.
  [SCTP]: Use snmp_fold_field instead of a homebrew analogue.
  [IGMP]: Optimize kfree_skb in igmp_rcv.
  [KEY]: Convert net/pfkey to use seq files.
  [KEY]: Clean up proc files creation a bit.
  pppol2tp: fix printk warnings
  bnx2: section fix
  bnx2x: section fix
  ...

16 years ago[NET_SCHED] sch_htb: htb_requeue fix
Jarek Poplawski [Sun, 10 Feb 2008 07:44:00 +0000 (23:44 -0800)]
[NET_SCHED] sch_htb: htb_requeue fix

htb_requeue() enqueues skbs for which htb_classify() returns NULL.
This is wrong because such skbs could be handled by NET_CLS_ACT code,
and the decision could be different than earlier in htb_enqueue().
So htb_requeue() is changed to work and look more like htb_enqueue().

Signed-off-by: Jarek Poplawski <jarkao2@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[IPV6]: Replace using the magic constant "1024" with IP6_RT_PRIO_USER for fc_metric.
Rami Rosen [Sun, 10 Feb 2008 07:43:11 +0000 (23:43 -0800)]
[IPV6]: Replace using the magic constant "1024" with IP6_RT_PRIO_USER for fc_metric.

This patch replaces the explicit usage of the magic constant "1024"
with IP6_RT_PRIO_USER in the IPV6 tree.

Signed-off-by: Rami Rosen <ramirose@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agostarfire: secton fix
Andrew Morton [Sun, 10 Feb 2008 07:42:17 +0000 (23:42 -0800)]
starfire: secton fix

gcc-3.4.4 on powerpc:

drivers/net/starfire.c:219: error: version causes a section type conflict

Cc: Jeff Garzik <jeff@garzik.org>
Cc: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agovia-velocity: section fix
Andrew Morton [Sun, 10 Feb 2008 07:41:40 +0000 (23:41 -0800)]
via-velocity: section fix

From: Andrew Morton <akpm@linux-foundation.org>

gcc-3.4.4 on powerpc:

drivers/net/via-velocity.c:443: error: chip_info_table causes a section type conflict

on this one I had to remove the __devinitdata too.  Don't know why.

Cc: Jeff Garzik <jeff@garzik.org>
Cc: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agonatsemi: section fix
Andrew Morton [Sun, 10 Feb 2008 07:41:08 +0000 (23:41 -0800)]
natsemi: section fix

gcc-3.4.4 on powerpc:

drivers/net/natsemi.c:245: error: natsemi_pci_info causes a section type conflict

Cc: Jeff Garzik <jeff@garzik.org>
Cc: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agotyphoon: section fix
Andrew Morton [Sun, 10 Feb 2008 07:40:34 +0000 (23:40 -0800)]
typhoon: section fix

gcc-3.4.4 on powerpc:

drivers/net/typhoon.c:137: error: version causes a section type conflict

Cc: Jeff Garzik <jeff@garzik.org>
Cc: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86
Linus Torvalds [Sun, 10 Feb 2008 07:29:57 +0000 (23:29 -0800)]
Merge git://git./linux/kernel/git/x86/linux-2.6-x86

* git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86: (32 commits)
  x86: cpa, strict range check in try_preserve_large_page()
  x86: cpa, enable CONFIG_DEBUG_PAGEALLOC on 64-bit
  x86: cpa, use page pool
  x86: introduce page pool in cpa
  x86: DEBUG_PAGEALLOC: enable after mem_init()
  brk: help text typo fix
  lguest: accept guest _PAGE_PWT page table entries
  x86 PM: update stale comments
  x86 PM: consolidate suspend and hibernation code
  x86 PM: rename 32-bit files in arch/x86/power
  x86 PM: move 64-bit hibernation files to arch/x86/power
  x86: trivial printk optimizations
  x86: fix early_ioremap pagetable ops
  x86: construct 32-bit boot time page tables in native format.
  x86, core: remove CONFIG_FORCED_INLINING
  x86: avoid unused variable warning in mm/init_64.c
  x86: fixup more paravirt fallout
  brk: document randomize_va_space and CONFIG_COMPAT_BRK (was Re:
  x86: fix sparse warnings in acpi/bus.c
  x86: fix sparse warning in topology.c
  ...

16 years agoisdn: fix section mismatch warning for ISACVer
Sam Ravnborg [Sun, 10 Feb 2008 07:29:28 +0000 (23:29 -0800)]
isdn: fix section mismatch warning for ISACVer

Fix following warnings:
WARNING: drivers/isdn/hisax/built-in.o(.text+0x19723): Section mismatch in reference from the function ISACVersion() to the variable .devinit.data:ISACVer
WARNING: drivers/isdn/hisax/built-in.o(.text+0x2005b): Section mismatch in reference from the function setup_avm_a1_pcmcia() to the function .devinit.text:setup_isac()

ISACVer were only used from function annotated __devinit
so add same annotation to ISACVer.
One af the fererencing functions missed __devinit so add it
and kill an additional warning.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Acked-by: Karsten Keil <kkeil@suse.de>
Cc: Jeff Garzik <jgarzik@pobox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agoisdn: fix section mismatch warnings from hisax_cs_setup_card
Sam Ravnborg [Sun, 10 Feb 2008 07:28:50 +0000 (23:28 -0800)]
isdn: fix section mismatch warnings from hisax_cs_setup_card

Fix the following warnings:
WARNING: drivers/isdn/hisax/built-in.o(.text+0x722): Section mismatch in reference from the function hisax_cs_setup_card() to the function .devinit.text:setup_teles3()
WARNING: drivers/isdn/hisax/built-in.o(.text+0x72c): Section mismatch in reference from the function hisax_cs_setup_card() to the function .devinit.text:setup_s0box()
WARNING: drivers/isdn/hisax/built-in.o(.text+0x736): Section mismatch in reference from the function hisax_cs_setup_card() to the function .devinit.text:setup_telespci()
WARNING: drivers/isdn/hisax/built-in.o(.text+0x747): Section mismatch in reference from the function hisax_cs_setup_card() to the function .devinit.text:setup_avm_pcipnp()
WARNING: drivers/isdn/hisax/built-in.o(.text+0x74e): Section mismatch in reference from the function hisax_cs_setup_card() to the function .devinit.text:setup_elsa()
WARNING: drivers/isdn/hisax/built-in.o(.text+0x755): Section mismatch in reference from the function hisax_cs_setup_card() to the function .devinit.text:setup_diva()
WARNING: drivers/isdn/hisax/built-in.o(.text+0x75c): Section mismatch in reference from the function hisax_cs_setup_card() to the function .devinit.text:setup_sedlbauer()
WARNING: drivers/isdn/hisax/built-in.o(.text+0x763): Section mismatch in reference from the function hisax_cs_setup_card() to the function .devinit.text:setup_netjet_s()
WARNING: drivers/isdn/hisax/built-in.o(.text+0x76a): Section mismatch in reference from the function hisax_cs_setup_card() to the function .devinit.text:setup_hfcpci()
WARNING: drivers/isdn/hisax/built-in.o(.text+0x771): Section mismatch in reference from the function hisax_cs_setup_card() to the function .devinit.text:setup_hfcsx()
WARNING: drivers/isdn/hisax/built-in.o(.text+0x778): Section mismatch in reference from the function hisax_cs_setup_card() to the function .devinit.text:setup_niccy()
WARNING: drivers/isdn/hisax/built-in.o(.text+0x77f): Section mismatch in reference from the function hisax_cs_setup_card() to the function .devinit.text:setup_bkm_a4t()
WARNING: drivers/isdn/hisax/built-in.o(.text+0x786): Section mismatch in reference from the function hisax_cs_setup_card() to the function .devinit.text:setup_sct_quadro()
WARNING: drivers/isdn/hisax/built-in.o(.text+0x78d): Section mismatch in reference from the function hisax_cs_setup_card() to the function .devinit.text:setup_gazel()
WARNING: drivers/isdn/hisax/built-in.o(.text+0x794): Section mismatch in reference from the function hisax_cs_setup_card() to the function .devinit.text:setup_w6692()
WARNING: drivers/isdn/hisax/built-in.o(.text+0x79b): Section mismatch in reference from the function hisax_cs_setup_card() to the function .devinit.text:setup_netjet_u()
WARNING: drivers/isdn/hisax/built-in.o(.text+0x7a2): Section mismatch in reference from the function hisax_cs_setup_card() to the function .devinit.text:setup_enternow_pci()

checkcard() are the only user of hisax_cs_setup_card().
And checkcard is only used during init or when hot plugging
ISDN devices. So annotate hisax_cs_setup_card() with __devinit.
checkcard() is used by exported functions so it cannot be
annotated __devinit. Annotate it with __ref so modpost
ignore references to _devinit section.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Acked-by: Karsten Keil <kkeil@suse.de>
Cc: Jeff Garzik <jgarzik@pobox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6
Linus Torvalds [Sun, 10 Feb 2008 07:28:26 +0000 (23:28 -0800)]
Merge git://git./linux/kernel/git/davem/sparc-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6: (24 commits)
  [SPARC]: Add solaris/sunos binary support to feature removal schedule.
  [SPARC]: Merge asm-sparc{,64}/a.out.h
  [SPARC]: Merge asm-sparc{,64}/fb.h
  [SPARC]: Merge asm-sparc{,64}/errno.h
  [SPARC]: Merge asm-sparc{,64}/emergency-restart.h
  [SPARC]: Merge asm-sparc{,64}/div64.h
  [SPARC]: Merge asm-sparc{,64}/device.h
  [SPARC]: Merge asm-sparc{,64}/current.h
  [SPARC]: Merge asm-sparc{,64}/cputime.h
  [SPARC]: Merge asm-sparc{,64}/cache.h
  [SPARC]: Merge asm-sparc{,64}/byteorder.h
  [SPARC]: Merge asm-sparc{,64}/bugs.h
  [SPARC]: Merge asm-sparc{,64}/bug.h
  [SPARC]: Kill BSD errno translation table and header files.
  [SPARC]: Merge asm-sparc{,64}/bpp.h
  [SPARC]: Merge include/asm-sparc{,64}/auxvec.h
  [SPARC]: Merge include/asm-sparc{,64}/of_device.h
  [SPARC]: Merge include/asm-sparc{,64}/prom.h
  [SPARC]: Remove of_platform_device_create
  [SPARC64]: Add kretprobe support.
  ...

16 years agoisdn: fix section mismatch warnings in isac.c and isar.c
Sam Ravnborg [Sun, 10 Feb 2008 07:28:12 +0000 (23:28 -0800)]
isdn: fix section mismatch warnings in isac.c and isar.c

Fix the following warnings:
WARNING: drivers/isdn/hisax/built-in.o(.text+0x1b276): Section mismatch in reference from the function inithscxisac() to the function .devinit.text:clear_pending_isac_ints()
WARNING: drivers/isdn/hisax/built-in.o(.text+0x1b286): Section mismatch in reference from the function inithscxisac() to the function .devinit.text:initisac()
WARNING: drivers/isdn/hisax/built-in.o(.text+0x1fec7): Section mismatch in reference from the function AVM_card_msg() to the function .devinit.text:clear_pending_isac_ints()
WARNING: drivers/isdn/hisax/built-in.o(.text+0x21669): Section mismatch in reference from the function AVM_card_msg() to the function .devinit.text:clear_pending_isac_ints()
WARNING: drivers/isdn/hisax/built-in.o(.text+0x21671): Section mismatch in reference from the function AVM_card_msg() to the function .devinit.text:initisac()
WARNING: drivers/isdn/hisax/built-in.o(.text+0x2991e): Section mismatch in reference from the function Sedl_card_msg() to the function .devinit.text:clear_pending_isac_ints()
WARNING: drivers/isdn/hisax/built-in.o(.text+0x29936): Section mismatch in reference from the function Sedl_card_msg() to the function .devinit.text:initisac()
WARNING: drivers/isdn/hisax/built-in.o(.text+0x2993e): Section mismatch in reference from the function Sedl_card_msg() to the function .devinit.text:initisar()
WARNING: drivers/isdn/hisax/built-in.o(.text+0x2e026): Section mismatch in reference from the function NETjet_S_card_msg() to the function .devinit.text:clear_pending_isac_ints()
WARNING: drivers/isdn/hisax/built-in.o(.text+0x2e02e): Section mismatch in reference from the function NETjet_S_card_msg() to the function .devinit.text:initisac()
WARNING: drivers/isdn/hisax/built-in.o(.text+0x37813): Section mismatch in reference from the function BKM_card_msg() to the function .devinit.text:clear_pending_isac_ints()
WARNING: drivers/isdn/hisax/built-in.o(.text+0x37823): Section mismatch in reference from the function BKM_card_msg() to the function .devinit.text:initisac()

initisar(), initisac() and clear_pending_isac_ints()
were all used via a cardmsg fnction - which may be called
ouside __devinit context.
So remove the bogus __devinit annotation of the
above three functions to fix the warnings.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Acked-by: Karsten Keil <kkeil@suse.de>
Cc: Jeff Garzik <jgarzik@pobox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agoMerge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4
Linus Torvalds [Sun, 10 Feb 2008 07:28:01 +0000 (23:28 -0800)]
Merge branch 'for_linus' of git://git./linux/kernel/git/tytso/ext4

* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
  ext4: Add new "development flag" to the ext4 filesystem
  ext4: Don't panic in case of corrupt bitmap
  ext4: allocate struct ext4_allocation_context from a kmem cache
  JBD2:  Clear buffer_ordered flag for barried IO request on success
  ext4: Fix Direct I/O locking
  ext4: Fix circular locking dependency with migrate and rm.
  allow in-inode EAs on ext4 root inode
  ext4: Fix null bh pointer dereference in mballoc
  ext4: Don't set EXTENTS_FL flag for fast symlinks
  JBD2: Use the incompat macro for testing the incompat feature.
  jbd2: Fix reference counting on the journal commit block's buffer head
  [PATCH] jbd: Remove useless loop when writing commit record
  jbd2: Add error check to journal_wait_on_commit_record to avoid oops

16 years agoisdn: fix section mismatch warning in hfc_sx.c
Sam Ravnborg [Sun, 10 Feb 2008 07:27:41 +0000 (23:27 -0800)]
isdn: fix section mismatch warning in hfc_sx.c

Fix the following warning:
WARNING: drivers/isdn/hisax/built-in.o(.text+0x35818): Section mismatch in reference from the function hfcsx_card_msg() to the function .devinit.text:inithfcsx()

hfcsx_card_msg() may be called outside __devinit context.
Following the program logic is looks like the CARD_INIT branch
will only be taken under __devinit context but to be consistent
remove the __devinit annotation of inithfcsx() so we
do not mix non-__devinit and __devinit code.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Acked-by: Karsten Keil <kkeil@suse.de>
Cc: Jeff Garzik <jgarzik@pobox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agodrivers/media/video/em28xx/: Fix undefined symbol error with CONFIG_SND=N
S.Çağlar Onur [Sun, 10 Feb 2008 03:27:23 +0000 (05:27 +0200)]
drivers/media/video/em28xx/: Fix undefined symbol error with CONFIG_SND=N

Without this you get undefined symbol errors with CONFIG_SND=N:

  ERROR: "snd_pcm_period_elapsed" [drivers/media/video/em28xx/em28xx-alsa.ko] undefined!
  ERROR: "snd_pcm_hw_constraint_integer" [drivers/media/video/em28xx/em28xx-alsa.ko] undefined!
  ERROR: "snd_pcm_set_ops" [drivers/media/video/em28xx/em28xx-alsa.ko] undefined!
  ERROR: "snd_pcm_lib_ioctl" [drivers/media/video/em28xx/em28xx-alsa.ko] undefined!
  ERROR: "snd_card_new" [drivers/media/video/em28xx/em28xx-alsa.ko] undefined!
  ERROR: "snd_card_free" [drivers/media/video/em28xx/em28xx-alsa.ko] undefined!
  ERROR: "snd_card_register" [drivers/media/video/em28xx/em28xx-alsa.ko] undefined!
  ERROR: "snd_pcm_new" [drivers/media/video/em28xx/em28xx-alsa.ko] undefined!

Signed-off-by: S.Çağlar Onur <caglar@pardus.org.tr>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
16 years agoUpdate kernel/.gitignore with new auto-generated files
S.Çağlar Onur [Sun, 10 Feb 2008 03:19:03 +0000 (05:19 +0200)]
Update kernel/.gitignore with new auto-generated files

Signed-off-by: S.Çağlar Onur <caglar@pardus.org.tr>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
16 years agoUpdate arch/x86/boot/.gitignore with new auto-generated files
S.Çağlar Onur [Sun, 10 Feb 2008 03:18:08 +0000 (05:18 +0200)]
Update arch/x86/boot/.gitignore with new auto-generated files

Signed-off-by: S.Çağlar Onur <caglar@pardus.org.tr>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
16 years agortc-r9701.c: silence compiler warning
S.Çağlar Onur [Sun, 10 Feb 2008 03:10:48 +0000 (05:10 +0200)]
rtc-r9701.c: silence compiler warning

Commit 75b6102257874a4ea796af686de2f72cfa0452f9 ("rtc: add support for
Epson RTC-9701JE V4") introduced the warning

  drivers/rtc/rtc-r9701.c: In function `r9701_get_datetime':
  drivers/rtc/rtc-r9701.c:74: warning: unused variable `time'

Signed-off-by: S.Çağlar Onur <caglar@pardus.org.tr>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
16 years agox25_asy.c: silence compiler warning
S.Çağlar Onur [Sun, 10 Feb 2008 03:06:25 +0000 (05:06 +0200)]
x25_asy.c: silence compiler warning

Commit 11b0cc3a4af65413ca3bb5698769e091486e0b22 ("x25_asy: Fix ref count
rule violation") introduced the warning

  drivers/net/wan/x25_asy.c: In function `x25_asy_open_tty':
  drivers/net/wan/x25_asy.c:557: warning: unused variable `ld'

Signed-off-by: S.Çağlar Onur <caglar@pardus.org.tr>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
16 years ago[PKT_SCHED] ematch: tcf_em_destroy robustness
Stephen Hemminger [Sun, 10 Feb 2008 07:26:53 +0000 (23:26 -0800)]
[PKT_SCHED] ematch: tcf_em_destroy robustness

Make the code in tcf_em_tree_destroy more robust and cleaner:
 * Don't need to cast pointer to kfree() or avoid passing NULL.
 * After freeing the tree, clear the pointer to avoid possible problems
from repeated free.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[PKT_SCHED]: deinline functions in meta match
Stephen Hemminger [Sun, 10 Feb 2008 07:26:17 +0000 (23:26 -0800)]
[PKT_SCHED]: deinline functions in meta match

A couple of functions in meta match don't need to be inline.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[SCTP]: Convert sctp_dbg_objcnt to seq files.
Pavel Emelyanov [Sun, 10 Feb 2008 07:24:58 +0000 (23:24 -0800)]
[SCTP]: Convert sctp_dbg_objcnt to seq files.

This makes the code use a good proc API and the text ~50 bytes shorter.

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Acked-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[SCTP]: Use snmp_fold_field instead of a homebrew analogue.
Pavel Emelyanov [Sun, 10 Feb 2008 07:23:44 +0000 (23:23 -0800)]
[SCTP]: Use snmp_fold_field instead of a homebrew analogue.

SCPT already depends in INET, so this doesn't create additional
dependencies.

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Acked-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[IGMP]: Optimize kfree_skb in igmp_rcv.
Denis V. Lunev [Sun, 10 Feb 2008 07:22:26 +0000 (23:22 -0800)]
[IGMP]: Optimize kfree_skb in igmp_rcv.

Merge error paths inside igmp_rcv.

Signed-off-by: Denis V. Lunev <den@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[KEY]: Convert net/pfkey to use seq files.
Pavel Emelyanov [Sun, 10 Feb 2008 07:20:06 +0000 (23:20 -0800)]
[KEY]: Convert net/pfkey to use seq files.

The seq files API disposes the caller of the difficulty of
checking file position, the length of data to produce and
the size of provided buffer.

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[KEY]: Clean up proc files creation a bit.
Pavel Emelyanov [Sun, 10 Feb 2008 07:19:14 +0000 (23:19 -0800)]
[KEY]: Clean up proc files creation a bit.

Mainly this removes ifdef-s from inside the ipsec_pfkey_init.

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agopppol2tp: fix printk warnings
Andrew Morton [Sun, 10 Feb 2008 07:17:51 +0000 (23:17 -0800)]
pppol2tp: fix printk warnings

drivers/net/pppol2tp.c: In function `pppol2tp_seq_tunnel_show':
drivers/net/pppol2tp.c:2295: warning: long long unsigned int format, __u64 arg (arg 4)
drivers/net/pppol2tp.c:2295: warning: long long unsigned int format, __u64 arg (arg 5)
drivers/net/pppol2tp.c:2295: warning: long long unsigned int format, __u64 arg (arg 6)
drivers/net/pppol2tp.c:2295: warning: long long unsigned int format, __u64 arg (arg 7)
drivers/net/pppol2tp.c:2295: warning: long long unsigned int format, __u64 arg (arg 8)
drivers/net/pppol2tp.c:2295: warning: long long unsigned int format, __u64 arg (arg 9)
drivers/net/pppol2tp.c: In function `pppol2tp_seq_session_show':
drivers/net/pppol2tp.c:2328: warning: long long unsigned int format, __u64 arg (arg 5)
drivers/net/pppol2tp.c:2328: warning: long long unsigned int format, __u64 arg (arg 6)
drivers/net/pppol2tp.c:2328: warning: long long unsigned int format, __u64 arg (arg 7)
drivers/net/pppol2tp.c:2328: warning: long long unsigned int format, __u64 arg (arg 8)
drivers/net/pppol2tp.c:2328: warning: long long unsigned int format, __u64 arg (arg 9)
drivers/net/pppol2tp.c:2328: warning: long long unsigned int format, __u64 arg (arg 10)

Not all platforms implement u64 with unsigned long long.  eg: powerpc.

Cc: Jeff Garzik <jeff@garzik.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agobnx2: section fix
Andrew Morton [Sun, 10 Feb 2008 07:17:15 +0000 (23:17 -0800)]
bnx2: section fix

gcc-3.4.4 on powerpc:

drivers/net/bnx2.c:67: error: version causes a section type conflict

Cc: Jeff Garzik <jeff@garzik.org>
Cc: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agobnx2x: section fix
Andrew Morton [Sun, 10 Feb 2008 07:16:41 +0000 (23:16 -0800)]
bnx2x: section fix

From: Andrew Morton <akpm@linux-foundation.org>

gcc-3.4.4 on powerpc:

drivers/net/bnx2x.c:73: error: version causes a section type conflict

Cc: Jeff Garzik <jeff@garzik.org>
Cc: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[SPARC]: Add solaris/sunos binary support to feature removal schedule.
David S. Miller [Sun, 10 Feb 2008 07:08:53 +0000 (23:08 -0800)]
[SPARC]: Add solaris/sunos binary support to feature removal schedule.

Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[SPARC]: Merge asm-sparc{,64}/a.out.h
David S. Miller [Sun, 10 Feb 2008 06:25:50 +0000 (22:25 -0800)]
[SPARC]: Merge asm-sparc{,64}/a.out.h

Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agoext4: Add new "development flag" to the ext4 filesystem
Theodore Tso [Sun, 10 Feb 2008 06:11:44 +0000 (01:11 -0500)]
ext4: Add new "development flag" to the ext4 filesystem

This flag is simply a generic "this is a crash/burn test filesystem"
marker.  If it is set, then filesystem code which is "in development"
will be allowed to mount the filesystem.  Filesystem code which is not
considered ready for prime-time will check for this flag, and if it is
not set, it will refuse to touch the filesystem.

As we start rolling ext4 out to distro's like Fedora, et. al, this makes
it less likely that a user might accidentally start using ext4 on a
production filesystem; a bad thing, since that will essentially make it
be unfsckable until e2fsprogs catches up.

Signed-off-by: Theodore Tso <tytso@MIT.EDU>
Signed-off-by: Mingming Cao <cmm@us.ibm.com>
16 years agoext4: Don't panic in case of corrupt bitmap
Aneesh Kumar K.V [Sun, 10 Feb 2008 06:10:04 +0000 (01:10 -0500)]
ext4: Don't panic in case of corrupt bitmap

Multiblock allocator calls BUG_ON in many case if the free and used
blocks count obtained looking at the bitmap is different from what
the allocator internally accounted for. Use ext4_error in such case
and don't panic the system.

Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: Mingming Cao <cmm@us.ibm.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
16 years agoext4: allocate struct ext4_allocation_context from a kmem cache
Eric Sandeen [Sun, 10 Feb 2008 06:13:33 +0000 (01:13 -0500)]
ext4: allocate struct ext4_allocation_context from a kmem cache

struct ext4_allocation_context is rather large, and this bloats
the stack of many functions which use it.  Allocating it from
a named slab cache will alleviate this.

For example, with this change (on top of the noinline patch sent earlier):

-ext4_mb_new_blocks 200
+ext4_mb_new_blocks  40

-ext4_mb_free_blocks 344
+ext4_mb_free_blocks 168

-ext4_mb_release_inode_pa 216
+ext4_mb_release_inode_pa  40

-ext4_mb_release_group_pa 192
+ext4_mb_release_group_pa  24

Most of these stack-allocated structs are actually used only for
mballoc history; and in those cases often a smaller struct would do.
So changing that may be another way around it, at least for those
functions, if preferred.  For now, in those cases where the ac
is only for history, an allocation failure simply skips the history
recording, and does not cause any other failures.

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Mingming Cao <cmm@us.ibm.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
16 years agoJBD2: Clear buffer_ordered flag for barried IO request on success
Dave Kleikamp [Sun, 10 Feb 2008 06:09:32 +0000 (01:09 -0500)]
JBD2:  Clear buffer_ordered flag for barried IO request on success

In JBD2 jbd2_journal_write_commit_record(), clear the buffer_ordered
flag for the bh after barried IO has succeed. This prevents later, if
the same buffer head were submitted to the underlying device, which has
been reconfigured to not support barrier request, the JBD2 commit code
could treat it as a normal IO (without barrier).

This is a port from JBD/ext3 fix from Neil Brown.

More details from Neil:

Some devices - notably dm and md - can change their behaviour in
response to BIO_RW_BARRIER requests.  They might start out accepting
such requests but on reconfiguration, they find out that they cannot
any more. JBD2 deal with this by always testing if BIO_RW_BARRIER
requests fail with EOPNOTSUPP, and retrying the write
requests without the barrier (probably after waiting for any pending
writes to complete).

However there is a bug in the handling this in JBD2 for ext4 .

When ext4/JBD2 to submit a BIO_RW_BARRIER request,
it sets the buffer_ordered flag on the buffer head.
If the request completes successfully, the flag STAYS SET.

Other code might then write the same buffer_head after the device has
been reconfigured to not accept barriers.  This write will then fail,
but the "other code" is not ready to handle EOPNOTSUPP errors and the
error will be treated as fatal.

Cc: Neil Brown <neilb@suse.de>
Signed-off-by: Dave Kleikamp <shaggy@linux.vnet.ibm.com>
Signed-off-by: Mingming Cao <cmm@us.ibm.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
16 years agoext4: Fix Direct I/O locking
Jan Kara [Sun, 10 Feb 2008 06:08:38 +0000 (01:08 -0500)]
ext4: Fix Direct I/O locking

We cannot start transaction in ext4_direct_IO() and just let it last
during the whole write because dio_get_page() acquires mmap_sem which
ranks above transaction start (e.g. because we have dependency chain
mmap_sem->PageLock->journal_start, or because we update atime while
holding mmap_sem) and thus deadlocks could happen. We solve the problem
by starting a transaction separately for each ext4_get_block() call.

We *could* have a problem that we allocate a block and before its data
are written out the machine crashes and thus we expose stale data. But
that does not happen because for hole-filling generic code falls back to
buffered writes and for file extension, we add inode to orphan list and
thus in case of crash, journal replay will truncate inode back to the
original size.

Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Mingming Cao <cmm@us.ibm.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
16 years agoext4: Fix circular locking dependency with migrate and rm.
Aneesh Kumar K.V [Sun, 10 Feb 2008 06:20:05 +0000 (01:20 -0500)]
ext4: Fix circular locking dependency with migrate and rm.

In order to prevent a circular locking dependency when an unlink
operation is racing with an ext4 migration, we delay taking i_data_sem
until just before switch the inode format, and use i_mutex to prevent
writes and truncates during the first part of the migration operation.

Acked-by: Jan Kara <jack@suse.cz>
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: Mingming Cao <cmm@us.ibm.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
16 years agoMerge branches 'master', 'omap1-upstream' and 'orion' into devel
Russell King [Sat, 9 Feb 2008 22:47:23 +0000 (22:47 +0000)]
Merge branches 'master', 'omap1-upstream' and 'orion' into devel

* master:
  [ARM] constify function pointer tables
  [ARM] 4823/1: AT91 section fix
  [ARM] 4824/1: pxa: clear RDH bit after any reset
  [ARM] pxa: remove debugging PM: printk

* omap1-upstream:
  ARM: OMAP1: Misc clean-up
  ARM: OMAP1: Update defconfigs for omap1
  ARM: OMAP1: Palm Tungsten E board clean-up
  ARM: OMAP1: Use I2C bus registration helper for omap1
  ARM: OMAP1: Remove omap_sram_idle()
  ARM: OMAP1: PM fixes for OMAP1
  ARM: OMAP1: Use MMC multislot structures for Siemens SX1 board
  ARM: OMAP1: Make omap1 use MMC multislot structures
  ARM: OMAP1: Change the comments to C style
  ARM: OMAP1: Make omap1 boards to use omap_nand_platform_data
  ARM: OMAP: Add helper module for board specific I2C bus registration
  ARM: OMAP: Add dmtimer support for OMAP3
  ARM: OMAP: Pre-3430 clean-up for dmtimer.c
  ARM: OMAP: Add DMA support for chaining and 3430
  ARM: OMAP: Add 24xx GPIO debounce support
  ARM: OMAP: Get rid of unnecessary ifdefs in GPIO code
  ARM: OMAP: Add 3430 gpio support
  ARM: OMAP: Add 3430 CPU identification macros
  ARM: OMAP: Request DSP memory for McBSP

* orion:
  [ARM] Orion: Use the sata_mv driver for the TS-209 SATA
  [ARM] Orion: Use the sata_mv driver for the Kurobox SATA
  [ARM] Orion: free up kernel virtual address space
  [ARM] Orion: distinguish between physical and virtual addresses
  [ARM] Orion: kill orion_early_putstr()
  [ARM] Orion: update defconfig
  [ARM] Orion: Use the sata_mv driver for the integrated SATA controller

16 years ago[ARM] constify function pointer tables
Jan Engelhardt [Tue, 22 Jan 2008 19:41:07 +0000 (20:41 +0100)]
[ARM] constify function pointer tables

Signed-off-by: Jan Engelhardt <jengelh@computergmbh.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years ago[ARM] 4823/1: AT91 section fix
David Brownell [Wed, 6 Feb 2008 21:03:42 +0000 (22:03 +0100)]
[ARM] 4823/1: AT91 section fix

Fix section warning:

 WARNING: arch/arm/mach-at91/built-in.o(.text+0xd74): Section mismatch in reference
        from the function init_programmable_clock()
        to the function .init.text:at91_css_to_clk()
 The function  init_programmable_clock() references
 the function __init at91_css_to_clk().
 This is often because init_programmable_clock lacks a __init
 annotation or the annotation of at91_css_to_clk is wrong.

In this case the only calls to and from init_programmable_clock()
are from code marked as "__init", so this fix is trivially correct.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Acked-by: Uwe Kleine-Knig <Uwe.Kleine-Koenig@digi.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years ago[ARM] 4824/1: pxa: clear RDH bit after any reset
Dmitry Krivoschekov [Fri, 8 Feb 2008 14:02:03 +0000 (15:02 +0100)]
[ARM] 4824/1: pxa: clear RDH bit after any reset

According to PXA300/310 and PXA320 Developer manuals,
the ASCR[RDH] "bit needs to be cleared as part of the software
initialization coming out of any reset and coming out of D3".
The latter requirement is addressed by commit
"c4d1fb627ff3072", as for the former (coming out of any reset),
the kernel relies on boot loaders and assumes that RDH bit
is cleared there. Though, not all bootloaders follow the rule
so we have to clear the bit in kernel.

We clear the RDH bit in pxa3xx_init() function since
it is always invoked after any reset. We also preserve D1S, D2S
and D3S bits from being cleared in case we invoke pxa3xx_init()
function not from normal hardware reset (e.g. kexec scenario),
so these bits can be properly referenced later.

Signed-off-by: Dmitry Krivoschekov <dmitry.krivoschekov@gmail.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years agox86: cpa, strict range check in try_preserve_large_page()
Thomas Gleixner [Sat, 9 Feb 2008 22:24:09 +0000 (23:24 +0100)]
x86: cpa, strict range check in try_preserve_large_page()

Right now, we check only the first 4k page for static required protections.
This does not take overlapping regions into account. So we might end up
setting the wrong permissions/protections for other parts of this large page.

This can be optimized further, but correctness is the important part.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agox86: cpa, enable CONFIG_DEBUG_PAGEALLOC on 64-bit
Thomas Gleixner [Sat, 9 Feb 2008 22:24:09 +0000 (23:24 +0100)]
x86: cpa, enable CONFIG_DEBUG_PAGEALLOC on 64-bit

Now, that the page pool is in place we can enable DEBUG_PAGEALLOC on
64bit.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agox86: cpa, use page pool
Thomas Gleixner [Sat, 9 Feb 2008 22:24:09 +0000 (23:24 +0100)]
x86: cpa, use page pool

Switch the split page code to use the page pool. We do this
unconditionally to avoid different behaviour with and without
DEBUG_PAGEALLOC enabled.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agox86: introduce page pool in cpa
Thomas Gleixner [Sat, 9 Feb 2008 22:24:09 +0000 (23:24 +0100)]
x86: introduce page pool in cpa

DEBUG_PAGEALLOC was not possible on 64-bit due to its early-bootup
hardcoded reliance on PSE pages, and the unrobustness of the runtime
splitup of large pages. The splitup ended in recursive calls to
alloc_pages() when a page for a pte split was requested.

Avoid the recursion with a preallocated page pool, which is used to
split up large mappings and gets refilled in the return path of
kernel_map_pages after the split has been done. The size of the page
pool is adjusted to the available memory.

This part just implements the page pool and the initialization w/o
using it yet.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agox86: DEBUG_PAGEALLOC: enable after mem_init()
Thomas Gleixner [Sat, 9 Feb 2008 22:24:09 +0000 (23:24 +0100)]
x86: DEBUG_PAGEALLOC: enable after mem_init()

DEBUG_PAGEALLOC must not be enabled before mem_init(). Before this
point there is nothing to allocate.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
16 years agobrk: help text typo fix
Ingo Molnar [Sat, 9 Feb 2008 22:24:09 +0000 (23:24 +0100)]
brk: help text typo fix

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>