]> err.no Git - linux-2.6/log
linux-2.6
17 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davej/cpufreq
Linus Torvalds [Fri, 12 Oct 2007 22:42:01 +0000 (15:42 -0700)]
Merge master.kernel.org:/pub/scm/linux/kernel/git/davej/cpufreq

* master.kernel.org:/pub/scm/linux/kernel/git/davej/cpufreq:
  [CPUFREQ] Don't take semaphore in cpufreq_quick_get()
  [CPUFREQ] Support different families in fid/did to frequency conversion
  [CPUFREQ] cpufreq_stats: misc cpuinit section annotations
  [CPUFREQ] implement !CONFIG_CPU_FREQ stub for  cpufreq_unregister_notifier()
  [CPUFREQ] mark hotplug notifier callback as __cpuinit
  [CPUFREQ] Only check for transition latency on problematic governors (kconfig fix)
  [CPUFREQ] allow ondemand and conservative cpufreq governors to be used as default
  [CPUFREQ] move policy's governor initialisation out of low-level drivers into cpufreq core
  [CPUFREQ] Longhaul - Add support for PM133 northbridge
  [CPUFREQ] x86: use num_online_nodes to get physical cpus numbers for

17 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/tglx/linux-2.6-x86
Linus Torvalds [Fri, 12 Oct 2007 22:39:39 +0000 (15:39 -0700)]
Merge git://git.kernel.org/pub/scm/linux/kernel/git/tglx/linux-2.6-x86

* git://git.kernel.org/pub/scm/linux/kernel/git/tglx/linux-2.6-x86: (40 commits)
  x86: HPET add another ICH7 PCI id
  x86: HPET force enable ICH5 suspend/resume fix
  x86: HPET force enable for ICH5
  x86: HPET try to activate force detected hpet
  x86: HPET force enable o ICH7 and later
  x86: HPET restructure hpet code for hpet force enable
  clock events: allow replacement of broadcast timer
  i386/x8664: cleanup the shared hpet code
  i386: Remove the useless #ifdef in i8253.h
  ACPI: remove the now unused ifdef code
  jiffies: remove unused macros
  x86_64: cleanup apic.c after clock events switch
  x86_64: remove now unused code
  x86: unify timex.h variants
  x86: kill 8253pit.h
  x86: disable apic timer for AMD C1E enabled CPUs
  x86: Fix irq0 / local apic timer accounting
  x86_64: convert to clock events
  x86_64: Add (not yet used) clock event functions
  x86_64: prepare idle loop for dynamic ticks
  ...

17 years agoMerge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mfashe...
Linus Torvalds [Fri, 12 Oct 2007 22:04:00 +0000 (15:04 -0700)]
Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2

* 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2: (23 commits)
  ocfs2: Optionally return filldir errors
  ocfs2: Write support for directories with inline data
  ocfs2: Read support for directories with inline data
  ocfs2: Write support for inline data
  ocfs2: Read support for inline data
  ocfs2: Structure updates for inline data
  ocfs2: Cleanup dirent size check
  ocfs2: Rename cleanups
  ocfs2: Provide convenience function for ino lookup
  ocfs2: Implement ocfs2_empty_dir() as a caller of ocfs2_dir_foreach()
  ocfs2: Remove open coded readdir()
  ocfs2: Pass raw u64 to filldir
  ocfs2: Abstract out core dir listing functionality
  ocfs2: Move directory manipulation code into dir.c
  ocfs2: Small refactor of truncate zeroing code
  ocfs2: move nonsparse hole-filling into ocfs2_write_begin()
  ocfs2: Sync ocfs2_fs.h with ocfs2-tools
  [PATCH] fs/ocfs2/: removed unneeded initial value and function's return value
  ocfs2: Implement show_options()
  ocfs2: Clear slot map when umounting a local volume
  ...

17 years agoMerge branch 'isdn-cleanups' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik...
Linus Torvalds [Fri, 12 Oct 2007 22:03:35 +0000 (15:03 -0700)]
Merge branch 'isdn-cleanups' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/misc-2.6

* 'isdn-cleanups' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/misc-2.6:
  [ISDN] HiSax diva: split setup into three smaller functions
  [ISDN] HiSax sedlbauer: move ISAPNP and PCI code into functions of their own
  [ISDN] HiSax elsa: split huge setup function into four smaller functions
  [ISDN] HiSax avm_pci: split setup into three smaller functions
  [ISDN] Remove CONFIG_PCI ifdefs from 100% PCI source code

17 years agoMerge branch 'hysdn' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/misc-2.6
Linus Torvalds [Fri, 12 Oct 2007 22:02:45 +0000 (15:02 -0700)]
Merge branch 'hysdn' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/misc-2.6

* 'hysdn' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/misc-2.6:
  [ISDN] hysdn: convert to PCI hotplug API

17 years agoMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc
Linus Torvalds [Fri, 12 Oct 2007 22:01:16 +0000 (15:01 -0700)]
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc:
  mmc: use correct unregister function for led trigger

17 years agox86: HPET add another ICH7 PCI id
Venki Pallipadi [Fri, 12 Oct 2007 21:04:24 +0000 (23:04 +0200)]
x86: HPET add another ICH7 PCI id

Add another PCI ID for ICH7 force hpet.

Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Cc: Andi Kleen <ak@suse.de>
Cc: john stultz <johnstul@us.ibm.com>
Cc: Greg KH <greg@kroah.com>
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>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
17 years agox86: HPET force enable ICH5 suspend/resume fix
Venki Pallipadi [Fri, 12 Oct 2007 21:04:24 +0000 (23:04 +0200)]
x86: HPET force enable ICH5 suspend/resume fix

A bugfix in ich5 hpet force detect which caused resumes to fail.  Thanks to
Udo A Steinberg for reporting the problem.

Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Cc: Andi Kleen <ak@suse.de>
Cc: john stultz <johnstul@us.ibm.com>
Cc: Greg KH <greg@kroah.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
17 years agox86: HPET force enable for ICH5
Venki Pallipadi [Fri, 12 Oct 2007 21:04:24 +0000 (23:04 +0200)]
x86: HPET force enable for ICH5

force_enable hpet for ICH5.

[ Build fixes from Andrew Morton ]

Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Cc: Andi Kleen <ak@suse.de>
Cc: john stultz <johnstul@us.ibm.com>
Cc: Greg KH <greg@kroah.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
17 years agox86: HPET try to activate force detected hpet
Venki Pallipadi [Fri, 12 Oct 2007 21:04:23 +0000 (23:04 +0200)]
x86: HPET try to activate force detected hpet

Enable HPET later during boot, after the force detect in PCI quirks.  Also add
a call to repeat the force enabling at resume time.

Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Cc: Andi Kleen <ak@suse.de>
Cc: john stultz <johnstul@us.ibm.com>
Cc: Greg KH <greg@kroah.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
17 years agox86: HPET force enable o ICH7 and later
Venki Pallipadi [Fri, 12 Oct 2007 21:04:23 +0000 (23:04 +0200)]
x86: HPET force enable o ICH7 and later

Force detect and/or enable HPET on ICH chipsets.  This patch just handles the
detection part and following patches use this information.  Adds a function to
repeat the force enabling during resume time.

Using HPET this way, instead of PIT increases the time CPUs can reside in
C-state when system is totally idle.  On my test system with Core 2 Duo,
average C-state residency goes up from ~20mS to ~80mS.

[ Build fixed from Andrew Morton ]

Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Cc: Andi Kleen <ak@suse.de>
Cc: john stultz <johnstul@us.ibm.com>
Cc: Greg KH <greg@kroah.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
17 years agox86: HPET restructure hpet code for hpet force enable
Venki Pallipadi [Fri, 12 Oct 2007 21:04:23 +0000 (23:04 +0200)]
x86: HPET restructure hpet code for hpet force enable

Restructure and rename legacy replacement mode HPET timer support.  Just the
code structural changes and should be zero functionality change.

Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Cc: Andi Kleen <ak@suse.de>
Cc: john stultz <johnstul@us.ibm.com>
Cc: Greg KH <greg@kroah.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
17 years agoclock events: allow replacement of broadcast timer
Venki Pallipadi [Fri, 12 Oct 2007 21:04:23 +0000 (23:04 +0200)]
clock events: allow replacement of broadcast timer

Change the broadcast timer, if a timer with higher rating becomes available.

Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Cc: Andi Kleen <ak@suse.de>
Cc: john stultz <johnstul@us.ibm.com>
Cc: Greg KH <greg@kroah.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
17 years agoi386/x8664: cleanup the shared hpet code
Chris Wright [Fri, 12 Oct 2007 21:04:23 +0000 (23:04 +0200)]
i386/x8664: cleanup the shared hpet code

Remove hpet_readl/writel from vsyscall.h, where it does not belong
anyway. Use the hpet code itself.

Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
17 years agoi386: Remove the useless #ifdef in i8253.h
Thomas Gleixner [Fri, 12 Oct 2007 21:04:23 +0000 (23:04 +0200)]
i386: Remove the useless #ifdef in i8253.h

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
17 years agoACPI: remove the now unused ifdef code
Thomas Gleixner [Fri, 12 Oct 2007 21:04:23 +0000 (23:04 +0200)]
ACPI: remove the now unused ifdef code

The conversion of x86-64 to clock events makes the
 #ifdef CONFIG_GENERIC_CLOCKEVENTS
 n the timer broadcast functions useless. Remove it.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: john stultz <johnstul@us.ibm.com>
Cc: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
17 years agojiffies: remove unused macros
Chris Wright [Fri, 12 Oct 2007 21:04:23 +0000 (23:04 +0200)]
jiffies: remove unused macros

The x86 hpet cleanups allow removal of some unused macros.

Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
17 years agox86_64: cleanup apic.c after clock events switch
Chris Wright [Fri, 12 Oct 2007 21:04:23 +0000 (23:04 +0200)]
x86_64: cleanup apic.c after clock events switch

Make variables static.

Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
17 years agox86_64: remove now unused code
Thomas Gleixner [Fri, 12 Oct 2007 21:04:23 +0000 (23:04 +0200)]
x86_64: remove now unused code

Remove the unused code after the switch to clock events.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
17 years agox86: unify timex.h variants
Thomas Gleixner [Fri, 12 Oct 2007 21:04:23 +0000 (23:04 +0200)]
x86: unify timex.h variants

Combine the timex.h variants and move the TSC related code into tsc.h.
Move the set_cyc2ns_scale() call into the tsc calibraction code, where
it belongs.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
17 years agox86: kill 8253pit.h
Thomas Gleixner [Fri, 12 Oct 2007 21:04:23 +0000 (23:04 +0200)]
x86: kill 8253pit.h

Useless header file with 32 bit and 64 bit variants. Move the
single useful line to the place where it is used.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
17 years agox86: disable apic timer for AMD C1E enabled CPUs
Thomas Gleixner [Fri, 12 Oct 2007 21:04:07 +0000 (23:04 +0200)]
x86: disable apic timer for AMD C1E enabled CPUs

AMDs C1E enabled CPUs stop the local apic timer, when both cores are
idle. This is a hardware feature which breaks highres/dynticks.
Add the same quirk as we have for 32 bit already.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
17 years agox86: Fix irq0 / local apic timer accounting
Thomas Gleixner [Fri, 12 Oct 2007 21:04:07 +0000 (23:04 +0200)]
x86: Fix irq0 / local apic timer accounting

The clock events merge introduced a change to the nmi watchdog code to
handle the not longer increasing local apic timer count in the
broadcast mode. This is fine for UP, but on SMP it pampers over a
stuck CPU which is not handling the broadcast interrupt due to the
unconditional sum up of local apic timer count and irq0 count.

To cover all cases we need to keep track on which CPU irq0 is
handled. In theory this is CPU#0 due to the explicit disabling of irq
balancing for irq0, but there are systems which ignore this on the
hardware level. The per cpu irq0 accounting allows us to remove the
irq0 to CPU0 binding as well.

Add a per cpu counter for irq0 and evaluate this instead of the global
irq0 count in the nmi watchdog code.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
17 years agox86_64: convert to clock events
Thomas Gleixner [Fri, 12 Oct 2007 21:04:07 +0000 (23:04 +0200)]
x86_64: convert to clock events

Finally switch to the clockevents code. Share code with i386 for
hpet and PIT.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
17 years agox86_64: Add (not yet used) clock event functions
Thomas Gleixner [Fri, 12 Oct 2007 21:04:07 +0000 (23:04 +0200)]
x86_64: Add (not yet used) clock event functions

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
17 years agox86_64: prepare idle loop for dynamic ticks
Chris Wright [Fri, 12 Oct 2007 21:04:07 +0000 (23:04 +0200)]
x86_64: prepare idle loop for dynamic ticks

Add tick_nohz_{stop,restart}_sched_tick to idle loop in prepartion for turning
on dynticks.  These are just noops until NO_HZ is enabled.

Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
17 years agox86_64: remove nested irq disables
Thomas Gleixner [Fri, 12 Oct 2007 21:04:07 +0000 (23:04 +0200)]
x86_64: remove nested irq disables

setup_APIC_timer disables interrupts anyway. So no need to do the same
in setup_boot_APIC_clock and setup_secondary_APIC_clock. Disable
interrupts explicit in the calibration code.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
17 years agox86_64: apic change setup_APIC_timer calling convention
Thomas Gleixner [Fri, 12 Oct 2007 21:04:07 +0000 (23:04 +0200)]
x86_64: apic change setup_APIC_timer calling convention

setup_APIC_timer takes the file global calibration result as an argument.
Remove it.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
17 years agox86_64: Remove APIC_DIVISOR
Thomas Gleixner [Fri, 12 Oct 2007 21:04:06 +0000 (23:04 +0200)]
x86_64: Remove APIC_DIVISOR

APIC_DIVISOR is rather useless. It makes the calibration result more
accurate in the first place, but we discard this later when we write
the value to the APIC timer by dividing the calibration value by
APIC_DIVISOR.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
17 years agox86_64: Move apic calibration code around
Thomas Gleixner [Fri, 12 Oct 2007 21:04:06 +0000 (23:04 +0200)]
x86_64: Move apic calibration code around

Let the calibration code fill in calibration_result directly and
move the variable on top of the file.

Fixup a printk w/o log level while at it.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
17 years agox86_64: remove pit synchronization
Thomas Gleixner [Fri, 12 Oct 2007 21:04:06 +0000 (23:04 +0200)]
x86_64: remove pit synchronization

The APIC timer setup code synchronizes the local APIC timer to the
PIT/HPET. This is pointless as the PIT and the local APIC timer
frequency are not correlated and the APIC timer calibration can never
be accurate enough to avoid that the local APIC timer and the PIT/HPET
drift apart.

Simply remove it.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
17 years agox86_64: prepare apic code for clock events
Thomas Gleixner [Fri, 12 Oct 2007 21:04:06 +0000 (23:04 +0200)]
x86_64: prepare apic code for clock events

Change __setup_APIC_LVTT so it takes the arguments which are necessary
for the later clock events switch.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
17 years agox86: remove never used apic_mapped
Yinghai Lu [Fri, 12 Oct 2007 21:04:06 +0000 (23:04 +0200)]
x86: remove never used apic_mapped

[ tglx: arch/x86 adaptation ]

Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Cc: Christoph Lameter <clameter@sgi.com>
Cc: Len Brown <lenb@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
17 years agoi386: prepare sharing the PIT code
Thomas Gleixner [Fri, 12 Oct 2007 21:04:06 +0000 (23:04 +0200)]
i386: prepare sharing the PIT code

PIT clock events work already and the PIT handling is the same for
i386 and x86_64. x86_64 does not support PIT as a clock source, so
disable the PIT clocksource for x86_64.

Use the i386 i8253.h include file for x86_64 as well to share the
exports and the PIT constants.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
17 years agoi386: prepare sharing the PIT code
Thomas Gleixner [Fri, 12 Oct 2007 21:04:06 +0000 (23:04 +0200)]
i386: prepare sharing the PIT code

PIT clock events work already and the PIT handling is the same for
i386 and x86_64. x86_64 does not support PIT as a clock source, so
disable the PIT clocksource for x86_64.

Prepare i8253.h to be shared with x8664

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
17 years agoi386: prepare sharing the hpet code with x86_64
Thomas Gleixner [Fri, 12 Oct 2007 21:04:06 +0000 (23:04 +0200)]
i386: prepare sharing the hpet code with x86_64

Add the x8664 specific bits (mapping) to share the hpet code later.

Move the reserve_platform_timer call to late init. This is necessary
for x86_64, as hpet enable() is called before memory is setup. i386
calls it in late_time_init, but it does not hurt to do it later for
both.

Pull in the x8664 hpet disable command line option as well.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
17 years agoi386: prepare sharing the hpet code with x86_64
Thomas Gleixner [Fri, 12 Oct 2007 21:04:06 +0000 (23:04 +0200)]
i386: prepare sharing the hpet code with x86_64

The hpet implementations of i386 and x8664 has been mostly the same
before the clock events conversion of i386. The clock events
conversion of i386 hpet is already done. So it makes sense to share
the code for the x86_64 clock events conversion.

Abstract out the mapping functions.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
17 years agox86_64: Consolidate tsc calibration
Thomas Gleixner [Fri, 12 Oct 2007 21:04:06 +0000 (23:04 +0200)]
x86_64: Consolidate tsc calibration

Move the TSC calibration code to tsc.c. Reimplement it so the
pm timer can be used as a reference as well.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
17 years agox86_64: Select clocksource watchdog in Kconfig
Thomas Gleixner [Fri, 12 Oct 2007 21:04:06 +0000 (23:04 +0200)]
x86_64: Select clocksource watchdog in Kconfig

TSC must be verified by a continous and reliable clocksource to
allow high resolution timers and or dynamic ticks.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
17 years agox86: Geode MFGPT clock event device support
Andres Salomon [Fri, 12 Oct 2007 21:04:06 +0000 (23:04 +0200)]
x86: Geode MFGPT clock event device support

Add support for an MFGPT clock event device; this allows us to use MFGPTs as
the basis for high-resolution timers.

Signed-off-by: Jordan Crouse <jordan.crouse@amd.com>
Signed-off-by: Andres Salomon <dilinger@debian.org>
Cc: Andi Kleen <ak@suse.de>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: john stultz <johnstul@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
17 years agox86: Geode Multi-Function General Purpose Timers support
Andres Salomon [Fri, 12 Oct 2007 21:04:06 +0000 (23:04 +0200)]
x86: Geode Multi-Function General Purpose Timers support

This adds support for Multi-Function General Purpose Timers.  It detects the
available timers during southbridge init, and provides an API for allocating
and setting the timers.  They're higher resolution than the standard PIT, so
the MFGPTs come in handy for quite a few things.

Note that we never clobber the timers that the BIOS might have opted to use;
we just check for unused timers.

Signed-off-by: Jordan Crouse <jordan.crouse@amd.com>
Signed-off-by: Andres Salomon <dilinger@debian.org>
Cc: Andi Kleen <ak@suse.de>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
17 years agox86: block irq balancing for timer
Venki Pallipadi [Fri, 12 Oct 2007 21:04:06 +0000 (23:04 +0200)]
x86: block irq balancing for timer

Disable irq balancing on IRQ0.  Several SIS chipsets lock up when you try to
change affinity of IRQ #0.

Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Cc: john stultz <johnstul@us.ibm.com>
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>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
17 years agox86: Fix irq0 / local apic timer accounting
Thomas Gleixner [Fri, 12 Oct 2007 21:04:06 +0000 (23:04 +0200)]
x86: Fix irq0 / local apic timer accounting

The clock events merge introduced a change to the nmi watchdog code to
handle the not longer increasing local apic timer count in the
broadcast mode. This is fine for UP, but on SMP it pampers over a
stuck CPU which is not handling the broadcast interrupt due to the
unconditional sum up of local apic timer count and irq0 count.

To cover all cases we need to keep track on which CPU irq0 is
handled. In theory this is CPU#0 due to the explicit disabling of irq
balancing for irq0, but there are systems which ignore this on the
hardware level. The per cpu irq0 accounting allows us to remove the
irq0 to CPU0 binding as well.

Add a per cpu counter for irq0 and evaluate this instead of the global
irq0 count in the nmi watchdog code.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
17 years agoclockevents: fix periodic broadcast for oneshot devices
Thomas Gleixner [Fri, 12 Oct 2007 21:04:06 +0000 (23:04 +0200)]
clockevents: fix periodic broadcast for oneshot devices

The next_event member of the clock event device is used to keep track
of the next periodic event. For one shot only devices it is wrong to
clear the variable, as the next event will be based on it.

Pointed out by Ralf Baechle

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
17 years agoclockevents: Allow build w/o run-tine usage for migration purposes
Thomas Gleixner [Fri, 12 Oct 2007 21:04:05 +0000 (23:04 +0200)]
clockevents: Allow build w/o run-tine usage for migration purposes

Migration aid to allow preparatory patches which introduce not yet
used parts of clock events code.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
17 years agoclockevents: Remove unused inline function
Thomas Gleixner [Fri, 12 Oct 2007 21:04:05 +0000 (23:04 +0200)]
clockevents: Remove unused inline function

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
17 years agommc: use correct unregister function for led trigger
Pierre Ossman [Fri, 12 Oct 2007 20:48:46 +0000 (22:48 +0200)]
mmc: use correct unregister function for led trigger

We register a simple trigger so make sure we use the corresponding
unregister function.

(Also means we get a dummy function when triggers aren't compiled in)

Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
17 years agoocfs2: Optionally return filldir errors
Mark Fasheh [Mon, 24 Sep 2007 21:25:27 +0000 (14:25 -0700)]
ocfs2: Optionally return filldir errors

Modify ocfs2_dir_foreach_blk() to optionally return any error from the
filldir callback. This way ocfs2_dirforeach() can terminate early, as
opposed to always passing through the entire directory. This fixes a bug
introduced during a previous code refactor where ocfs2_empty_dir() would
loop infinitely.

Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
17 years agoocfs2: Write support for directories with inline data
Mark Fasheh [Thu, 13 Sep 2007 23:33:54 +0000 (16:33 -0700)]
ocfs2: Write support for directories with inline data

Create all new directories with OCFS2_INLINE_DATA_FL and the inline data
bytes formatted as an empty directory. Inode size field reflects the actual
amount of inline data available, which makes searching for dirent space
very similar to the regular directory search.

Inline-data directories are automatically pushed out to extents on any
insert request which is too large for the available space.

Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
Reviewed-by: Joel Becker <joel.becker@oracle.com>
17 years agoocfs2: Read support for directories with inline data
Mark Fasheh [Wed, 12 Sep 2007 20:01:18 +0000 (13:01 -0700)]
ocfs2: Read support for directories with inline data

This splits out extent based directory read support and implements
inline-data versions of those functions. All knowledge of inline-data versus
extent based directories is internalized. For lookups the code uses
ocfs2_find_entry_id(), full dir iterations make use of
ocfs2_dir_foreach_blk_id().

Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
Reviewed-by: Joel Becker <joel.becker@oracle.com>
17 years agoocfs2: Write support for inline data
Mark Fasheh [Fri, 7 Sep 2007 21:46:51 +0000 (14:46 -0700)]
ocfs2: Write support for inline data

This fixes up write, truncate, mmap, and RESVSP/UNRESVP to understand inline
inode data.

For the most part, the changes to the core write code can be relied on to do
the heavy lifting. Any code calling ocfs2_write_begin (including shared
writeable mmap) can count on it doing the right thing with respect to
growing inline data to an extent tree.

Size reducing truncates, including UNRESVP can simply zero that portion of
the inode block being removed. Size increasing truncatesm, including RESVP
have to be a little bit smarter and grow the inode to an extent tree if
necessary.

Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
Reviewed-by: Joel Becker <joel.becker@oracle.com>
17 years agoocfs2: Read support for inline data
Mark Fasheh [Fri, 7 Sep 2007 21:05:51 +0000 (14:05 -0700)]
ocfs2: Read support for inline data

This hooks up ocfs2_readpage() to populate a page with data from an inode
block. Direct IO reads from inline data are modified to fall back to
buffered I/O. Appropriate checks are also placed in the extent map code to
avoid reading an extent list when inline data might be stored.

Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
Reviewed-by: Joel Becker <joel.becker@oracle.com>
17 years agoocfs2: Structure updates for inline data
Mark Fasheh [Fri, 7 Sep 2007 20:58:15 +0000 (13:58 -0700)]
ocfs2: Structure updates for inline data

Add the disk, network and memory structures needed to support data in inode.

Struct ocfs2_inline_data is defined and embedded in ocfs2_dinode for storing
inline data.

A new inode field, i_dyn_features, is added to facilitate tracking of
dynamic inode state. Since it will be used often, we want to mirror it on
ocfs2_inode_info, and transfer it via the meta data lvb.

Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
Reviewed-by: Joel Becker <joel.becker@oracle.com>
17 years agoocfs2: Cleanup dirent size check
Mark Fasheh [Thu, 13 Sep 2007 23:29:01 +0000 (16:29 -0700)]
ocfs2: Cleanup dirent size check

The check to see if a new dirent would fit in an old one is pretty ugly, and
it's done at least twice. Clean things up by putting this in it's own
easier-to-read function.

Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
Reviewed-by: Joel Becker <joel.becker@oracle.com>
17 years agoocfs2: Rename cleanups
Mark Fasheh [Wed, 12 Sep 2007 00:21:56 +0000 (17:21 -0700)]
ocfs2: Rename cleanups

ocfs2_rename() does direct manipulation of the dirent it's gotten back from
a directory search. Wrap this manipulation inside of a function so that we
can transparently change directory update behavior in the future. As an
added bonus, this gets rid of an ugly macro.

Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
Reviewed-by: Joel Becker <joel.becker@oracle.com>
17 years agoocfs2: Provide convenience function for ino lookup
Mark Fasheh [Tue, 11 Sep 2007 22:22:06 +0000 (15:22 -0700)]
ocfs2: Provide convenience function for ino lookup

A couple paths which needed to just match a parent dir + name pair to an
inode number were a bit messy because they had to deal with
ocfs2_find_files_on_disk() which returns a larger number of values. Provide
a convenience function, ocfs2_lookup_ino_from_name() which internalizes all
the extra accounting.

Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
Reviewed-by: Joel Becker <joel.becker@oracle.com>
17 years agoocfs2: Implement ocfs2_empty_dir() as a caller of ocfs2_dir_foreach()
Mark Fasheh [Wed, 12 Sep 2007 18:19:00 +0000 (11:19 -0700)]
ocfs2: Implement ocfs2_empty_dir() as a caller of ocfs2_dir_foreach()

We can preserve the behavior of ocfs2_empty_dir(), while getting rid of the
open coded directory walk by just providing a smart filldir callback. This
also automatically gets to use the dir readahead code, though in this case
any advantage is minor at best.

Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
Reviewed-by: Joel Becker <joel.becker@oracle.com>
17 years agoocfs2: Remove open coded readdir()
Mark Fasheh [Tue, 11 Sep 2007 00:50:51 +0000 (17:50 -0700)]
ocfs2: Remove open coded readdir()

ocfs2_queue_orphans() has an open coded readdir loop which can easily just
use a directory accessor function.

Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
Reviewed-by: Joel Becker <joel.becker@oracle.com>
17 years agoocfs2: Pass raw u64 to filldir
Mark Fasheh [Tue, 11 Sep 2007 00:30:26 +0000 (17:30 -0700)]
ocfs2: Pass raw u64 to filldir

filldir_t can take this, so don't turn de->inode into a 32 bit value. Right
now this doesn't make a difference since no ocfs2 inodes overflow that, but
it could be a nasty surprise later on if some kernel code is calling
ocfs2_dir_foreach_blk() and expecting real inode numbers back...

Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
Reviewed-by: Joel Becker <joel.becker@oracle.com>
17 years agoocfs2: Abstract out core dir listing functionality
Mark Fasheh [Tue, 11 Sep 2007 00:17:52 +0000 (17:17 -0700)]
ocfs2: Abstract out core dir listing functionality

Put this in it's own function so that the functionality can be overridden.

Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
Reviewed-by: Joel Becker <joel.becker@oracle.com>
17 years agoocfs2: Move directory manipulation code into dir.c
Mark Fasheh [Sat, 8 Sep 2007 01:21:26 +0000 (18:21 -0700)]
ocfs2: Move directory manipulation code into dir.c

The code for adding, removing, deleting directory entries was splattered all
over namei.c. I'd rather have this all centralized, so that it's easier to
make changes for inline dir data, and eventually indexed directories.

None of the code in any of the functions was changed. I only removed the
static keyword from some prototypes so that they could be exported.

Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
Reviewed-by: Joel Becker <joel.becker@oracle.com>
17 years agoocfs2: Small refactor of truncate zeroing code
Mark Fasheh [Fri, 7 Sep 2007 21:20:45 +0000 (14:20 -0700)]
ocfs2: Small refactor of truncate zeroing code

We'll want to reuse most of this when pushing inline data back out to an
extent. Keeping this part as a seperate patch helps to keep the upcoming
changes for write support uncluttered.

The core portion of ocfs2_zero_cluster_pages() responsible for making sure a
page is mapped and properly dirtied is abstracted out into it's own
function, ocfs2_map_and_dirty_page(). Actual functionality doesn't change,
though zeroing becomes optional.

We also turn part of ocfs2_free_write_ctxt() into  a common function for
unlocking and freeing a page array. This operation is very common (and
uniform) for Ocfs2 cluster sizes greater than page size, so it makes sense
to keep the code in one place.

Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
Reviewed-by: Joel Becker <joel.becker@oracle.com>
17 years agoocfs2: move nonsparse hole-filling into ocfs2_write_begin()
Mark Fasheh [Wed, 29 Aug 2007 00:13:23 +0000 (17:13 -0700)]
ocfs2: move nonsparse hole-filling into ocfs2_write_begin()

By doing this, we can remove any higher level logic which has to have
knowledge of btree functionality - any callers of ocfs2_write_begin() can
now expect it to do anything necessary to prepare the inode for new data.

Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
Reviewed-by: Joel Becker <joel.becker@oracle.com>
17 years agoocfs2: Sync ocfs2_fs.h with ocfs2-tools
Mark Fasheh [Thu, 20 Sep 2007 18:19:20 +0000 (11:19 -0700)]
ocfs2: Sync ocfs2_fs.h with ocfs2-tools

ocfs2-tools added some on-disk fields and flags which are used by
tunefs.ocfs2.

Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
17 years ago[PATCH] fs/ocfs2/: removed unneeded initial value and function's return value
Denis Cheng [Wed, 26 Sep 2007 18:10:04 +0000 (02:10 +0800)]
[PATCH] fs/ocfs2/: removed unneeded initial value and function's return value

Signed-off-by: Denis Cheng <crquan@gmail.com>
Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
17 years agoocfs2: Implement show_options()
Sunil Mushran [Thu, 6 Sep 2007 20:34:16 +0000 (13:34 -0700)]
ocfs2: Implement show_options()

Implement sops->show_options() so as to allow /proc/mounts to show the mount
options.

Signed-off-by: Sunil Mushran <sunil.mushran@oracle.com>
Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
17 years agoocfs2: Clear slot map when umounting a local volume
Mark Fasheh [Thu, 4 Oct 2007 21:47:09 +0000 (14:47 -0700)]
ocfs2: Clear slot map when umounting a local volume

This is technically harmless (recovery will clean it out later), but leaves
a bogus entry in the slot_map which really shouldn't be there.

Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
17 years agoocfs2: Remove unused structure field
Mark Fasheh [Wed, 12 Sep 2007 17:21:22 +0000 (10:21 -0700)]
ocfs2: Remove unused structure field

c_used_tail_recs in struct ocfs2_merge_ctxt is only ever set, so we can
remove it.

Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
17 years agoocfs2: remove unused variable
Tao Mao [Wed, 29 Aug 2007 00:25:35 +0000 (17:25 -0700)]
ocfs2: remove unused variable

delete_tail_recs in ocfs2_try_to_merge_extent() was only ever set, remove
it.

Signed-off-by: Tao Mao <tao.ma@oracle.com>
Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
17 years agoocfs2: remove mostly unused field from insert structure
Tao Mao [Wed, 29 Aug 2007 00:22:33 +0000 (17:22 -0700)]
ocfs2: remove mostly unused field from insert structure

ocfs2_insert_type->ins_free_records was only used in one place, and was set
incorrectly in most places. We can free up some memory and lose some code by
removing this.

* Small warning fixup contributed by Andrew Mortom <akpm@linux-foundation.org>

Signed-off-by: Tao Mao <tao.ma@oracle.com>
Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
17 years agoMerge branch 'for-linus' of git://git.kernel.dk/data/git/linux-2.6-block
Linus Torvalds [Fri, 12 Oct 2007 16:25:42 +0000 (09:25 -0700)]
Merge branch 'for-linus' of git://git.kernel.dk/data/git/linux-2.6-block

* 'for-linus' of git://git.kernel.dk/data/git/linux-2.6-block:
  [BLOCK] s390 xpram typo
  [BLOCK] Only include the compat ioctl code if CONFIG_BLOCK is set
  [BLOCK] Better fix for do_blk_trace_setup() for !CONFIG_BLOCK
  [BLOCK] Move sector_div() from blkdev.h to kernel.h

17 years agoMerge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
Linus Torvalds [Fri, 12 Oct 2007 16:17:22 +0000 (09:17 -0700)]
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6

* 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:
  [BNX2]: Refine napi poll loop.
  [TG3]: Refine napi poll loop.

17 years agoNTFS: Fix a mount time deadlock.
Anton Altaparmakov [Fri, 12 Oct 2007 08:37:15 +0000 (09:37 +0100)]
NTFS: Fix a mount time deadlock.

Big thanks go to Mathias Kolehmainen for reporting the bug, providing
debug output and testing the patches I sent him to get it working.

The fix was to stop calling ntfs_attr_set() at mount time as that causes
balance_dirty_pages_ratelimited() to be called which on systems with
little memory actually tries to go and balance the dirty pages which tries
to take the s_umount semaphore but because we are still in fill_super()
across which the VFS holds s_umount for writing this results in a
deadlock.

We now do the dirty work by hand by submitting individual buffers.  This
has the annoying "feature" that mounting can take a few seconds if the
journal is large as we have clear it all.  One day someone should improve
on this by deferring the journal clearing to a helper kernel thread so it
can be done in the background but I don't have time for this at the moment
and the current solution works fine so I am leaving it like this for now.

Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw
Linus Torvalds [Fri, 12 Oct 2007 16:14:51 +0000 (09:14 -0700)]
Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw

* git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw: (51 commits)
  [DLM] block dlm_recv in recovery transition
  [DLM] don't overwrite castparam if it's NULL
  [GFS2] Get superblock a different way
  [GFS2] Don't try to remove buffers that don't exist
  [GFS2] Alternate gfs2_iget to avoid looking up inodes being freed
  [GFS2] Data corruption fix
  [GFS2] Clean up journaled data writing
  [GFS2] GFS2: chmod hung - fix race in thread creation
  [DLM] Make dlm_sendd cond_resched more
  [GFS2] Move inode deletion out of blocking_cb
  [GFS2] flocks from same process trip kernel BUG at fs/gfs2/glock.c:1118!
  [GFS2] Clean up gfs2_trans_add_revoke()
  [GFS2] Use slab operations for all gfs2_bufdata allocations
  [GFS2] Replace revoke structure with bufdata structure
  [GFS2] Fix ordering of dirty/journal for ordered buffer unstuffing
  [GFS2] Clean up ordered write code
  [GFS2] Move pin/unpin into lops.c, clean up locking
  [GFS2] Don't mark jdata dirty in gfs2_unstuffer_page()
  [GFS2] Introduce gfs2_remove_from_ail
  [GFS2] Correct lock ordering in unlink
  ...

17 years ago[S390] xpram: fix bio_end{_,}io typo
Martin Schwidefsky [Fri, 12 Oct 2007 14:11:53 +0000 (16:11 +0200)]
[S390] xpram: fix bio_end{_,}io typo

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
17 years ago[S390] 3215: Handle special console device.
Cornelia Huck [Fri, 12 Oct 2007 14:11:52 +0000 (16:11 +0200)]
[S390] 3215: Handle special console device.

The early console device is special as it already has all needed data
set and raw3215[0] allocated from con3215_init(). Therefore, it needs
special treatment in the probe function so it can be matched with the
3215 driver which is already owning it.

Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
17 years ago[S390] pfault: Fix alignment of parameter list.
Heiko Carstens [Fri, 12 Oct 2007 14:11:51 +0000 (16:11 +0200)]
[S390] pfault: Fix alignment of parameter list.

Make sure parameter list of the pfault token function is eight byte
aligned. Otherwise we can get specification exceptions.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
17 years ago[S390] s390: use PAGE_SIZE in vmlinux.lds
Sam Ravnborg [Fri, 12 Oct 2007 14:11:50 +0000 (16:11 +0200)]
[S390] s390: use PAGE_SIZE in vmlinux.lds

Replace the hardcoded 4096 value with the PAGE_SIZE macro.
Converted a few decimal numbers to readable hex numbers.

Use of PAGE_SIZE required a small change to page.h
to allow PAGE_SIZE to be used from assembler/linker scripts.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
17 years ago[S390] s390: beautify vmlinux.lds
Sam Ravnborg [Fri, 12 Oct 2007 14:11:49 +0000 (16:11 +0200)]
[S390] s390: beautify vmlinux.lds

Introduce a consistent style in vmlinux.lds.
This style is gradually being introduced for all archs.

A few lables were moved inside the section definition so
they are assigned the correct value of gcc decide to align
the content to another address than the one . has.
In the past this has fixed several bugs but for s390 it
will not impact due to all the alignmnet already introduced.

Stabs definitions are consolidated in asm-generic/vmlinux.lds.h
This patch also introduce support for DWARF - without knowing
if this makes sense for s390.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
17 years ago[S390] vmwatchdog: fix broken inline assembly.
Heiko Carstens [Fri, 12 Oct 2007 14:11:48 +0000 (16:11 +0200)]
[S390] vmwatchdog: fix broken inline assembly.

Constraint for err is wrong since it is preinitialized and the code
relies on it in case of an exception.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
17 years ago[S390] tape: Fix medium state handling
Michael Holzheu [Fri, 12 Oct 2007 14:11:47 +0000 (16:11 +0200)]
[S390] tape: Fix medium state handling

Currently there are situations, where the tape medium state (loaded, unloaded,
unknown) is not set correctly. The reason is that the medium association
field is used to determine the medium state. This not always leads to
correct results. To fix that we use another field of the medium sense
data instead.

Signed-off-by: Michael Holzheu <holzheu@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
17 years ago[S390] cpcmd: fix inline assembly usage.
Heiko Carstens [Fri, 12 Oct 2007 14:11:46 +0000 (16:11 +0200)]
[S390] cpcmd: fix inline assembly usage.

After assigning values to specific registers memset was called. This
may clobber the contents of the used registers.
To solve this extract the two used inline assemblies into small
functions that don't call any functions.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
17 years ago[S390] Make vmalloc area start at address > 4GB.
Heiko Carstens [Fri, 12 Oct 2007 14:11:45 +0000 (16:11 +0200)]
[S390] Make vmalloc area start at address > 4GB.

Prevent that modules get loaded at addresses below 4GB to
prevent exchanging system call table entries.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
17 years ago[S390] zcore: fix inline assembly in memcpy_real()
Michael Holzheu [Fri, 12 Oct 2007 14:11:44 +0000 (16:11 +0200)]
[S390] zcore: fix inline assembly in memcpy_real()

memcpy_real uses the mvcle instruction. This instruction alters all used
registers (source, destination and 2 x count). Therefore we have to flag
those registers as input/output registers (+d). In addition to that, we
have to specify, that we read from memory designated by "src" and write to
memory designated by "dest".

Signed-off-by: Michael Holzheu <holzheu@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
17 years ago[S390] Remove obsolete recommendation for 8M ramdisk size.
Robert P. J. Day [Fri, 12 Oct 2007 14:11:43 +0000 (16:11 +0200)]
[S390] Remove obsolete recommendation for 8M ramdisk size.

Signed-off-by: Robert P. J. Day <rpjday@mindspring.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
17 years ago[S390] Use IPL CLEAR for reipl under z/VM
Michael Holzheu [Fri, 12 Oct 2007 14:11:42 +0000 (16:11 +0200)]
[S390] Use IPL CLEAR for reipl under z/VM

If we use the CLEAR ipl option, reipl is faster, since then VM can release
the memory, which has been paged out.

Signed-off-by: Michael Holzheu <holzheu@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
17 years ago[S390] Force link error if xchg/cmpxchg gets called with unsupported size.
Heiko Carstens [Fri, 12 Oct 2007 14:11:41 +0000 (16:11 +0200)]
[S390] Force link error if xchg/cmpxchg gets called with unsupported size.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
17 years ago[S390] qdio: change QDIO performance_stats error message priority
Ursula Braun [Fri, 12 Oct 2007 14:11:40 +0000 (16:11 +0200)]
[S390] qdio: change QDIO performance_stats error message priority

Signed-off-by: Ursula Braun <braunu@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
17 years ago[S390] is_power_of_2 in drivers/s390/block/dasd_int.h
vignesh babu [Fri, 12 Oct 2007 14:11:39 +0000 (16:11 +0200)]
[S390] is_power_of_2 in drivers/s390/block/dasd_int.h

Replacing n & (n - 1) for power of 2 check by is_power_of_2(n)

Signed-off-by: vignesh babu <vignesh.babu@wipro.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
17 years ago[S390] qdio: dont cast function pointers and use them to call functions.
Heiko Carstens [Fri, 12 Oct 2007 14:11:38 +0000 (16:11 +0200)]
[S390] qdio: dont cast function pointers and use them to call functions.

According to C99 6.3.2.3 it's undefined what happens if a converted
pointer is used to call a function whose type is not compatible with
the pointed-to type.
That's what the qdio code is doing, so fix it.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
17 years ago[S390] Get rid of ARCH_KMALLOC_MINALIGN.
Heiko Carstens [Fri, 12 Oct 2007 14:11:37 +0000 (16:11 +0200)]
[S390] Get rid of ARCH_KMALLOC_MINALIGN.

slab cache debugging code has been changed so that we always get a
minimum alignment of the alignment of a 64-integer. Since this is
8 on s390/s390x there is no need of ARCH_KMALLOC_MINALIGN anymore.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
17 years ago[S390] remove packed attribute from ext_int_info_t.
Christian Borntraeger [Fri, 12 Oct 2007 14:11:36 +0000 (16:11 +0200)]
[S390] remove packed attribute from ext_int_info_t.

ext_int_info_t is no longer used in entry(64).S Instead do_extint is a C
function that handles the hash search.
As the structure is handled in C code, we can also remove the packed
attribute to avoid alignment issues. (Currently there is no alignment
problem in ext_int_info_t, even if packet)

Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
17 years ago[S390] Get rid of a bunch of sparse warnings again.
Heiko Carstens [Fri, 12 Oct 2007 14:11:35 +0000 (16:11 +0200)]
[S390] Get rid of a bunch of sparse warnings again.

Also removes a bunch of ^L in drivers/s390/cio/cmf.c

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
17 years ago[S390] disassembler: Remove redundant variable assignment
Christian Borntraeger [Fri, 12 Oct 2007 14:11:34 +0000 (16:11 +0200)]
[S390] disassembler: Remove redundant variable assignment

There is no need to assign "0" to "hops" twice. Remove one assigment.

Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
17 years ago[S390] disassembler: fix output for insns with 6 operands.
Martin Schwidefsky [Fri, 12 Oct 2007 14:11:33 +0000 (16:11 +0200)]
[S390] disassembler: fix output for insns with 6 operands.

The termination condition of the loop that prints the operands of
an instruction doesn't stop after the maximum of 6 operands.
It continues with the operands of the next instruction format
instead which create really long lines.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
17 years ago[S390] appldata_base: Remove module_exit function and modular stuff
Satyam Sharma [Fri, 12 Oct 2007 14:11:32 +0000 (16:11 +0200)]
[S390] appldata_base: Remove module_exit function and modular stuff

arch/s390/Kconfig tells us that CONFIG_APPLDATA_BASE is bool and hence can
never be built modular.  Given this, defining appldata_exit() function is
pointless (and wasteful, actually).  Remove all that.

Previous patch annotated appldata_offline_cpu() as __cpuexit, but now with the
__exit function appldata_exit() gone, the only callsite that references it is
__cpuinit, so this function can also be __cpuinit, thereby saving space when
HOTPLUG_CPU=n.

Signed-off-by: Satyam Sharma <satyam@infradead.org>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
17 years ago[S390] appldata_base: Misc cpuinit annotations and bugfix
Satyam Sharma [Fri, 12 Oct 2007 14:11:31 +0000 (16:11 +0200)]
[S390] appldata_base: Misc cpuinit annotations and bugfix

appldata_offline_cpu() is only called from __cpuinit-marked hotplug
notifier callback and from the __exit-marked module_exit function,
therefore candidate for __cpuexit.

BTW the __exit module_exit function appldata_exit() of this driver fails to
unregister_hotcpu_notifier() the notifier_block that was registered by
appldata_init() during module startup.  This will lead to oops if hotplug
notification comes after module has been unloaded.  Let's fix this by
unregistering the notifier appropriately (before appldata_offline_cpu()'ing
the CPUs).

Signed-off-by: Satyam Sharma <satyam@infradead.org>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
17 years ago[S390] zcrypt: fix PCIXCC/CEX2C error recovery
Ralph Wuerthner [Fri, 12 Oct 2007 14:11:30 +0000 (16:11 +0200)]
[S390] zcrypt: fix PCIXCC/CEX2C error recovery

Symptom:     zcrypt fails by setting all PCIXCC/CEX2C cards offline for a
             certain type of invalid keys.
Problem:     zcrypt does not handle rc=12/rs=769 request responses correctly
Solution:    modify convert_type86_ica() to handle these error codes correctly

Signed-off-by: Ralph Wuerthner <rwuerthn@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
17 years ago[S390] zcrypt: fix ap_reset_domain()
Ralph Wuerthner [Fri, 12 Oct 2007 14:11:29 +0000 (16:11 +0200)]
[S390] zcrypt: fix ap_reset_domain()

Resetting of a all queues within a domain requires that a domain must
be selected first.

Signed-off-by: Ralph Wuerthner <rwuerthn@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
17 years ago[S390] zcrypt: remove duplicated struct CPRBX definition
Ralph Wuerthner [Fri, 12 Oct 2007 14:11:28 +0000 (16:11 +0200)]
[S390] zcrypt: remove duplicated struct CPRBX definition

Signed-off-by: Ralph Wuerthner <rwuerthn@de.ibm.com>