GitHub/exynos8895/android_kernel_samsung_universal8895.git
15 years agoring-buffer: Fix advance of reader in rb_buffer_peek()
Robert Richter [Thu, 30 Jul 2009 17:19:18 +0000 (19:19 +0200)]
ring-buffer: Fix advance of reader in rb_buffer_peek()

When calling rb_buffer_peek() from ring_buffer_consume() and a
padding event is returned, the function rb_advance_reader() is
called twice. This may lead to missing samples or under high
workloads to the warning below. This patch fixes this. If a padding
event is returned by rb_buffer_peek() it will be consumed by the
calling function now.

Also, I simplified some code in ring_buffer_consume().

------------[ cut here ]------------
WARNING: at /dev/shm/.source/linux/kernel/trace/ring_buffer.c:2289 rb_advance_reader+0x2e/0xc5()
Hardware name: Anaheim
Modules linked in:
Pid: 29, comm: events/2 Tainted: G        W  2.6.31-rc3-oprofile-x86_64-standard-00059-g5050dc2 #1
Call Trace:
[<ffffffff8106776f>] ? rb_advance_reader+0x2e/0xc5
[<ffffffff81039ffe>] warn_slowpath_common+0x77/0x8f
[<ffffffff8103a025>] warn_slowpath_null+0xf/0x11
[<ffffffff8106776f>] rb_advance_reader+0x2e/0xc5
[<ffffffff81068bda>] ring_buffer_consume+0xa0/0xd2
[<ffffffff81326933>] op_cpu_buffer_read_entry+0x21/0x9e
[<ffffffff810be3af>] ? __find_get_block+0x4b/0x165
[<ffffffff8132749b>] sync_buffer+0xa5/0x401
[<ffffffff810be3af>] ? __find_get_block+0x4b/0x165
[<ffffffff81326c1b>] ? wq_sync_buffer+0x0/0x78
[<ffffffff81326c76>] wq_sync_buffer+0x5b/0x78
[<ffffffff8104aa30>] worker_thread+0x113/0x1ac
[<ffffffff8104dd95>] ? autoremove_wake_function+0x0/0x38
[<ffffffff8104a91d>] ? worker_thread+0x0/0x1ac
[<ffffffff8104dc9a>] kthread+0x88/0x92
[<ffffffff8100bdba>] child_rip+0xa/0x20
[<ffffffff8104dc12>] ? kthread+0x0/0x92
[<ffffffff8100bdb0>] ? child_rip+0x0/0x20
---[ end trace f561c0a58fcc89bd ]---

Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: <stable@kernel.org>
Signed-off-by: Robert Richter <robert.richter@amd.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agotracing: do not use functions starting with .L in recordmcount.pl
Steven Rostedt [Thu, 6 Aug 2009 02:00:14 +0000 (22:00 -0400)]
tracing: do not use functions starting with .L in recordmcount.pl

On Wed, 5 Aug 2009, Ingo Molnar wrote:
> * Dave Airlie <airlied@gmail.com> wrote:
>
> > Hey,
> >
> > So I spent 3-4 hrs today (I'm stupid yes) tracking down a .o
> > breakage by blaming rawhide gcc/binutils as I was using make
> > V=1and seeing only the compiler chain running,
>
> Hm, is this that powerpc related build bug you just reported?

Well we tracked it down and it is powerpc64 specific.

Seems that in drivers/hwmon/lm93.c there's a function called:

   LM93_IN_FROM_REG()

But PPC64 has function descriptors and the real function names (the ones
you see in objdump) start with a '.'. Thus this in objdump you have:

 Disassembly of section .text:

 0000000000000000 <.LM93_IN_FROM_REG>:
       0:       7c 08 02 a6     mflr    r0
       4:       fb 81 ff e0     std     r28,-32(r1)

The function name used is .LM93_IN_FROM_REG. But gcc considers symbols
that start with ".L" as a special symbol that is used inside the assembly
stage.

The nm passed into recordmcount uses the --synthetic option which shows
the ".L" symbols (my runs outside of the build did not include the
--synthetic option, so my older patch worked). We see the function as a
local.

Now to capture all the locations that use "mcount" we need to have a
reference to link into the object file a list of mcount callers. We need a
reference that will not disappear. We try to use a global function and if
that does not work, we use a local function as a reference. But to relink
the section back into the object, we need to make it global. In this case,
we run objcopy using --globalize-symbol and --localize-symbol to convert
the symbol into a global symbol, link the mcount list, then convert it
back to a local symbol.

This works great except for this case. .L* symbols can not be converted
into a global symbol, and the mcount section referencing it will remain
unresolved.

Reported-by: Dave Airlie <airlied@gmail.com>
LKML-Reference: <alpine.DEB.2.00.0908052011590.5010@gandalf.stny.rr.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
15 years agoring-buffer: do not disable ring buffer on oops_in_progress
Steven Rostedt [Wed, 5 Aug 2009 19:26:37 +0000 (15:26 -0400)]
ring-buffer: do not disable ring buffer on oops_in_progress

The commit:

  commit e0fdace10e75dac67d906213b780ff1b1a4cc360
  Author: David Miller <davem@davemloft.net>
  Date:   Fri Aug 1 01:11:22 2008 -0700

    debug_locks: set oops_in_progress if we will log messages.

    Otherwise lock debugging messages on runqueue locks can deadlock the
    system due to the wakeups performed by printk().

Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Will permanently set oops_in_progress on any lockdep failure.
When this triggers it will cause any read from the ring buffer to
permanently disable the ring buffer (not to mention no locking of
printk).

This patch removes the check. It keeps the print in NMI which makes
sense. This is probably OK, since the ring buffer should not cause
something to set oops_in_progress anyway.

Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
15 years agoring-buffer: fix check of try_to_discard result
Steven Rostedt [Wed, 5 Aug 2009 16:02:48 +0000 (12:02 -0400)]
ring-buffer: fix check of try_to_discard result

The function ring_buffer_discard_commit inversed the code path
of the result of try_to_discard. It should skip incrementing the
entry counter if try_to_discard succeeded. But instead, it increments
the entry conder if it succeeded to discard, and does not increment
it if it fails.

The result of this bug is that filtering will make the stat counters
incorrect.

Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
15 years agoMerge branch 'tracing/fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/frederi...
Ingo Molnar [Tue, 4 Aug 2009 11:58:28 +0000 (13:58 +0200)]
Merge branch 'tracing/fixes' of git://git./linux/kernel/git/frederic/random-tracing into tracing/urgent

15 years agotracing: Fix missing function_graph events when we splice_read from trace_pipe
Lai Jiangshan [Tue, 28 Jul 2009 12:17:22 +0000 (20:17 +0800)]
tracing: Fix missing function_graph events when we splice_read from trace_pipe

About a half events are missing when we splice_read
from trace_pipe. They are unexpectedly consumed because we ignore
the TRACE_TYPE_NO_CONSUME return value used by the function graph
tracer when it needs to consume the events by itself to walk on
the ring buffer.

The same problem appears with ftrace_dump()

Example of an output before this patch:

1)               |      ktime_get_real() {
1)   2.846 us    |          read_hpet();
1)   4.558 us    |        }
1)   6.195 us    |      }

After this patch:

0)               |      ktime_get_real() {
0)               |        getnstimeofday() {
0)   1.960 us    |          read_hpet();
0)   3.597 us    |        }
0)   5.196 us    |      }

The fix also applies on 2.6.30

Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: stable@kernel.org
LKML-Reference: <4A6EEC52.90704@cn.fujitsu.com>
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
15 years agotracing: Fix invalid function_graph entry
Lai Jiangshan [Tue, 28 Jul 2009 12:11:24 +0000 (20:11 +0800)]
tracing: Fix invalid function_graph entry

When print_graph_entry() computes a function call entry event, it needs
to also check the next entry to guess if it matches the return event of
the current function entry.
In order to look at this next event, it needs to consume the current
entry before going ahead in the ring buffer.

However, if the current event that gets consumed is the last one in the
ring buffer head page, the ring_buffer may reuse the page for writers.
The consumed entry will then become invalid because of possible
racy overwriting.

Me must then handle this entry by making a copy of it.

The fix also applies on 2.6.30

Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: stable@kernel.org
LKML-Reference: <4A6EEAEC.3050508@cn.fujitsu.com>
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
15 years agomm: Remove duplicate definitions in MIPS and SH
Benjamin Herrenschmidt [Tue, 28 Jul 2009 00:16:48 +0000 (10:16 +1000)]
mm: Remove duplicate definitions in MIPS and SH

Those definitions are already provided by asm-generic

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Acked-by: Paul Mundt <lethal@linux-sh.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
15 years agousb_serial: Fix remaining ref count/lock bugs
Alan Cox [Mon, 27 Jul 2009 23:34:58 +0000 (00:34 +0100)]
usb_serial: Fix remaining ref count/lock bugs

This fixes
- locking bug that was hidden by ecc2e05e739c30870c8e4f252b63a0c4041f2724
- Regression #13821
- Spurious warning when closing and blocking for data write out

With these changes my PL2303 always ends up as ttyUSB0 when it should and
the module refcounts stay correct.

I'll do a more wholesale split & tidy of _open in the next release or two
as we get a standard tty_port_open and port->ops->init port->ops->shutdown
call backs.

Copy sent to Alan Stern and Carlos Mafra just to confirm it fixes all the
reports but it passes local testing with the same hardware as Alan Stern.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
15 years agoMerge branch 'for-linus' of git://git.infradead.org/users/eparis/notify
Linus Torvalds [Mon, 27 Jul 2009 22:54:10 +0000 (15:54 -0700)]
Merge branch 'for-linus' of git://git.infradead.org/users/eparis/notify

* 'for-linus' of git://git.infradead.org/users/eparis/notify:
  inotify: use GFP_NOFS under potential memory pressure
  fsnotify: fix inotify tail drop check with path entries
  inotify: check filename before dropping repeat events
  fsnotify: use def_bool in kconfig instead of letting the user choose
  inotify: fix error paths in inotify_update_watch
  inotify: do not leak inode marks in inotify_add_watch
  inotify: drop user watch count when a watch is removed

15 years agopty: quickfix for the pty ENXIO timing problems
Alan Cox [Mon, 27 Jul 2009 21:17:51 +0000 (22:17 +0100)]
pty: quickfix for the pty ENXIO timing problems

This also makes close stall in the normal case which is apparently
needed to fix emacs

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
15 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
Linus Torvalds [Mon, 27 Jul 2009 20:42:47 +0000 (13:42 -0700)]
Merge git://git./linux/kernel/git/davem/net-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (45 commits)
  cnic: Fix ISCSI_KEVENT_IF_DOWN message handling.
  net: irda: init spinlock after memcpy
  ixgbe: fix for 82599 errata marking UDP checksum errors
  r8169: WakeOnLan fix for the 8168
  netxen: reset ring consumer during cleanup
  net/bridge: use kobject_put to release kobject in br_add_if error path
  smc91x.h: add config for Nomadik evaluation kit
  NET: ROSE: Don't use static buffer.
  eepro: Read buffer overflow
  tokenring: Read buffer overflow
  at1700: Read buffer overflow
  fealnx: Write outside array bounds
  ixgbe: remove unnecessary call to device_init_wakeup
  ixgbe: Don't priority tag control frames in DCB mode
  ixgbe: Enable FCoE offload when DCB is enabled for 82599
  net: Rework mdio-ofgpio driver to use of_mdio infrastructure
  register at91_ether using platform_driver_probe
  skge: Enable WoL by default if supported
  net: KS8851 needs to depend on MII
  be2net: Bug fix in the non-lro path. Size of received packet was not updated in statistics properly.
  ...

15 years agoMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp
Linus Torvalds [Mon, 27 Jul 2009 19:23:47 +0000 (12:23 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/bp/bp

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp:
  amd64_edac: read the right F2 maskoffset reg

15 years agotty: Fix a USB serial crash/scribble
Alan Cox [Mon, 27 Jul 2009 09:58:08 +0000 (10:58 +0100)]
tty: Fix a USB serial crash/scribble

The port lock is used to protect the port state. However the port structure
is freed on a hangup, then the lock taken on a close. The right fix is to
drop the port on tty->shutdown() but we can't yet do that due to sleep v
non-sleeping rules. Instead do the next best thing and fix it up when we are
not in -rc season.

Reported-by: Daniel Mack <daniel@caiaq.de>
Signed-off-by: Alan Cox <alan@linux.intel.com>
Tested-by: Daniel Mack <daniel@caiaq.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
15 years agoMerge branch 'fixes-for-linus' of git://git.monstr.eu/linux-2.6-microblaze
Linus Torvalds [Mon, 27 Jul 2009 19:18:27 +0000 (12:18 -0700)]
Merge branch 'fixes-for-linus' of git://git.monstr.eu/linux-2.6-microblaze

* 'fixes-for-linus' of git://git.monstr.eu/linux-2.6-microblaze:
  microblaze: Makefile cleanup
  microblaze: Typo fix for cpu param inconsistency
  microblaze: Add support for R_MICROBLAZE_64_NONE
  microblaze: Get module loading working
  microblaze: remove sys_ipc
  microblaze: Support unaligned address for put/get_user macros
  microblaze: Detect new Microblaze 7.20 versions
  microblaze: Fix do_page_fault for no context
  microblaze: Add _PAGE_FILE macros to pgtable.h
  microblaze: Fix put_user macro for 64bits arguments
  microblaze: Clear print messages for DTB passing via r7
  microblaze: Not to clear r7 after copying DTB to kernel
  microblaze: Add messages about FDT blob
  microblaze: Final support for statically linked DTB
  microblaze: remove duplicated #include
  microblaze: Define tlb_flush macro

15 years agoMerge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
Linus Torvalds [Mon, 27 Jul 2009 19:18:09 +0000 (12:18 -0700)]
Merge branch 'x86-fixes-for-linus' of git://git./linux/kernel/git/tip/linux-2.6-tip

* 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  x86: geode: Mark mfgpt irq IRQF_TIMER to prevent resume failure
  x86, amd: Don't probe for extended APIC ID if APICs are disabled
  x86, mce: Rename incorrect macro name "CONFIG_X86_THRESHOLD"
  x86-64: Fix bad_srat() to clear all state
  x86, mce: Fix set_trigger() accessor
  x86: Fix movq immediate operand constraints in uaccess.h
  x86: Fix movq immediate operand constraints in uaccess_64.h
  x86: Add reboot fixup for SBC-fitPC2
  x86: Include all of .data.* sections in _edata on 64-bit
  x86: Add quirk for Intel DG45ID board to avoid low memory corruption

15 years agoMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6
Linus Torvalds [Mon, 27 Jul 2009 19:17:29 +0000 (12:17 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/tiwai/sound-2.6

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
  ALSA: hda - Fix mute control with some ALC262 models
  ALSA: snd_usb_caiaq: add support for Audio2DJ
  ALSA: pcm - Fix hwptr buffer-size overlap bug
  ALSA: pcm - Fix warnings in debug loggings
  ALSA: pcm - Add logging of hwptr updates and interrupt updates
  ASoC: tlv320aic3x: Enable PLL when not bypassed
  ALSA: hda - Restore GPIO1 properly at resume with AD1984A
  ALSA: ctxfi - Fix uninitialized error checks
  ALSA: hda - Use snprintf() to be safer
  ALSA: usb-audio - Volume control quirk for QuickCam E 3500
  ALSA: pcm - Fix regressions with VMware

15 years agoMerge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab...
Linus Torvalds [Mon, 27 Jul 2009 19:16:57 +0000 (12:16 -0700)]
Merge branch 'for_linus' of git://git./linux/kernel/git/mchehab/linux-2.6

* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6: (34 commits)
  V4L/DVB (12303): cx23885: check pointers before dereferencing in dprintk macro
  V4L/DVB (12302): cx23885-417: fix broken IOCTL handling
  V4L/DVB (12300): bttv: fix regression: tvaudio must be loaded before tuner
  V4L/DVB (12291): b2c2: fix frontends compiled into kernel
  V4L/DVB (12286): sn9c20x: reorder includes to be like other drivers
  V4L/DVB (12284): gspca - jpeg subdrivers: Check the result of kmalloc(jpeg header).
  V4L/DVB (12283): gspca - sn9c20x: New subdriver for sn9c201 and sn9c202 bridges.
  V4L/DVB (12282): gspca - main: Support for vidioc_g_chip_ident and vidioc_g/s_register.
  V4L/DVB (12269): af9013: auto-detect parameters in case of garbage given by app
  V4L/DVB (12267): gspca - sonixj: Bad sensor init of non ov76xx sensors.
  V4L/DVB (12265): em28xx: fix tuning problem in HVR-900 (R1)
  V4L/DVB (12263): em28xx: set demod profile for Pinnacle Hybrid Pro 320e
  V4L/DVB (12262): em28xx: Make sure the tuner is initialized if generic empia USB id was used
  V4L/DVB (12261): em28xx: set GPIO properly for Pinnacle Hybrid Pro analog support
  V4L/DVB (12260): em28xx: make support work for the Pinnacle Hybrid Pro (eb1a:2881)
  V4L/DVB (12258): em28xx: fix typo in mt352 init sequence for Terratec Cinergy T XS USB
  V4L/DVB (12257): em28xx: make tuning work for Terratec Cinergy T XS USB (mt352 variant)
  V4L/DVB (12245): em28xx: add support for mt9m001 webcams
  V4L/DVB (12244): em28xx: adjust vinmode/vinctl based on the stream input format
  V4L/DVB (12243): em28xx: allow specifying sensor xtal frequency
  ...

15 years agoMerge branch 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6
Linus Torvalds [Mon, 27 Jul 2009 19:16:38 +0000 (12:16 -0700)]
Merge branch 'for-linus' of git://git390.marist.edu/linux-2.6

* 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6:
  [S390] zcrypt: fix scheduling of hrtimer ap_poll_timer
  [S390] vdso: clock_gettime of CLOCK_THREAD_CPUTIME_ID with noexec=on
  [S390] vdso: fix per cpu area allocation
  [S390] hibernation: fix register corruption on machine checks
  [S390] hibernation: fix lowcore handling

15 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-2.6-dm
Linus Torvalds [Mon, 27 Jul 2009 19:16:21 +0000 (12:16 -0700)]
Merge git://git./linux/kernel/git/agk/linux-2.6-dm

* git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-2.6-dm:
  dm table: pass correct dev area size to device_area_is_valid
  dm: remove queue next_ordered workaround for barriers
  dm raid1: wake kmirrord when requeueing delayed bios after remote recovery

15 years agoMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/shaggy...
Linus Torvalds [Mon, 27 Jul 2009 19:15:56 +0000 (12:15 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/shaggy/jfs-2.6

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/shaggy/jfs-2.6:
  jfs: Fix early release of acl in jfs_get_acl

15 years agoupdate the comment in kthread_stop()
Oleg Nesterov [Fri, 19 Jun 2009 00:51:13 +0000 (02:51 +0200)]
update the comment in kthread_stop()

Commit 63706172f332fd3f6e7458ebfb35fa6de9c21dc5 ("kthreads: rework
kthread_stop()") removed the limitation that the thread function mysr
not call do_exit() itself, but forgot to update the comment.

Since that commit it is OK to use kthread_stop() even if kthread can
exit itself.

Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
15 years agomodule: use MODULE_SYMBOL_PREFIX with module_layout
Mike Frysinger [Thu, 23 Jul 2009 14:12:08 +0000 (23:42 +0930)]
module: use MODULE_SYMBOL_PREFIX with module_layout

The check_modstruct_version() needs to look up the symbol "module_layout"
in the kernel, but it does so literally and not by a C identifier.  The
trouble is that it does not include a symbol prefix for those ports that
need it (like the Blackfin and H8300 port).  So make sure we tack on the
MODULE_SYMBOL_PREFIX define to the front of it.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
15 years agoMerge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux...
Linus Torvalds [Mon, 27 Jul 2009 19:12:10 +0000 (12:12 -0700)]
Merge branch 'for_linus' of git://git./linux/kernel/git/jack/linux-fs-2.6

* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6:
  jbd: fix race between write_metadata_buffer and get_write_access
  ext3: Get rid of extenddisksize parameter of ext3_get_blocks_handle()
  jbd: Fix a race between checkpointing code and journal_get_write_access()
  ext3: Fix truncation of symlinks after failed write
  jbd: Fail to load a journal if it is too short

15 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6
Linus Torvalds [Mon, 27 Jul 2009 19:11:43 +0000 (12:11 -0700)]
Merge git://git./linux/kernel/git/sfrench/cifs-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:
  [CIFS] fix sparse warning
  cifs: fix sb->s_maxbytes so that it casts properly to a signed value
  cifs: disable serverino if server doesn't support it

15 years agomm: Pass virtual address to [__]p{te,ud,md}_free_tlb()
Benjamin Herrenschmidt [Wed, 22 Jul 2009 05:44:28 +0000 (15:44 +1000)]
mm: Pass virtual address to [__]p{te,ud,md}_free_tlb()

mm: Pass virtual address to [__]p{te,ud,md}_free_tlb()

Upcoming paches to support the new 64-bit "BookE" powerpc architecture
will need to have the virtual address corresponding to PTE page when
freeing it, due to the way the HW table walker works.

Basically, the TLB can be loaded with "large" pages that cover the whole
virtual space (well, sort-of, half of it actually) represented by a PTE
page, and which contain an "indirect" bit indicating that this TLB entry
RPN points to an array of PTEs from which the TLB can then create direct
entries. Thus, in order to invalidate those when PTE pages are deleted,
we need the virtual address to pass to tlbilx or tlbivax instructions.

The old trick of sticking it somewhere in the PTE page struct page sucks
too much, the address is almost readily available in all call sites and
almost everybody implemets these as macros, so we may as well add the
argument everywhere. I added it to the pmd and pud variants for consistency.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Acked-by: David Howells <dhowells@redhat.com> [MN10300 & FRV]
Acked-by: Nick Piggin <npiggin@suse.de>
Acked-by: Martin Schwidefsky <schwidefsky@de.ibm.com> [s390]
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
15 years agocnic: Fix ISCSI_KEVENT_IF_DOWN message handling.
Michael Chan [Mon, 27 Jul 2009 18:25:58 +0000 (11:25 -0700)]
cnic: Fix ISCSI_KEVENT_IF_DOWN message handling.

When a net device goes down or when the bnx2i driver is unloaded,
the code was not generating the ISCSI_KEVENT_IF_DOWN message
properly and this could cause the userspace driver to crash.

This is fixed by sending the message properly in the shutdown path.
cnic_uio_stop() is also added to send the message when bnx2i is
unregistering.

Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agonet: irda: init spinlock after memcpy
Deepak Saxena [Mon, 27 Jul 2009 17:49:44 +0000 (10:49 -0700)]
net: irda: init spinlock after memcpy

irttp_dup() copies a tsap_cb struct, but does not initialize the
spinlock in the new structure, which confuses lockdep.

Signed-off-by: Deepak Saxena <dsaxena@mvista.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoamd64_edac: read the right F2 maskoffset reg
Wan Wei [Mon, 27 Jul 2009 12:34:15 +0000 (14:34 +0200)]
amd64_edac: read the right F2 maskoffset reg

Signed-off-by: Wan Wei <onewayforever@gmail.com>
Signed-off-by: Borislav Petkov <borislav.petkov@amd.com>
15 years agomicroblaze: Makefile cleanup
Sam Ravnborg [Fri, 24 Jul 2009 07:04:49 +0000 (09:04 +0200)]
microblaze: Makefile cleanup

Reviewed the Makefile on request by Michal and this is the resulting changes.

o Use ':=' for assignmnet so we do not re-evaluate for each use
o Use $(shell echo xxx) to remove ""
o Replaced CFLAGS_KERNEL with KBUILD_CFLAGS
  The settings are equally relevant for modules and the linked kernel
o Dropped LDFLAGS_BLOB - it is no longer used
o Refactored assignmnets to libs-y and core-y
o Use MMU for the MMU specific extension. "MMUEXT" was hurting my eyes
  and I did not wanted it spread to m68k

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Michal Simek <monstr@monstr.eu>
15 years agomicroblaze: Typo fix for cpu param inconsistency
Michal Simek [Fri, 24 Jul 2009 06:11:23 +0000 (08:11 +0200)]
microblaze: Typo fix for cpu param inconsistency

Signed-off-by: Michal Simek <monstr@monstr.eu>
15 years agomicroblaze: Add support for R_MICROBLAZE_64_NONE
Michal Simek [Thu, 23 Jul 2009 06:24:47 +0000 (08:24 +0200)]
microblaze: Add support for R_MICROBLAZE_64_NONE

For example reiserfs use this relocation type.

Signed-off-by: Michal Simek <monstr@monstr.eu>
15 years agomicroblaze: Get module loading working
John Williams [Thu, 23 Jul 2009 04:56:49 +0000 (14:56 +1000)]
microblaze: Get module loading working

New reloc type R_MICROBLAZE_32_PCREL_LO requires a null handler (no work to do).

Remove legacy hack for broken linker pre gcc-4.1.1, that required us to extract
an offset from the code, add it to the addend, then rewrite the instruction.

Fixup the invalid reloc type error output.

Boot tested with the xilinx_emaclite ethernet driver.

Signed-off-by: John Williams <john.williams@petalogix.com>
Signed-off-by: Michal Simek <monstr@monstr.eu>
15 years agomicroblaze: remove sys_ipc
Arnd Bergmann [Thu, 18 Jun 2009 17:55:35 +0000 (19:55 +0200)]
microblaze: remove sys_ipc

The ipc system call is now unused in microblaze,
as the system call table points directly to the
indidual system calls for IPC.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Michal Simek <monstr@monstr.eu>
15 years agomicroblaze: Support unaligned address for put/get_user macros
Michal Simek [Tue, 21 Jul 2009 10:48:01 +0000 (12:48 +0200)]
microblaze: Support unaligned address for put/get_user macros

This patch add support for cases where load/store instruction
in put/get_user macro gets unaligned pointer to data and this
address is not valid. I prevent all cases which can failed.
I had to disable first stage of unaligned handler which is used
only for noMMU kernel and the whole work is done when interrupt
is enabled.
You have enable HW support for detect unaligned access in Microblaze.

This patch fixed three LTP tests:
getpeername01, getsockname01, socketpair01

Signed-off-by: Michal Simek <monstr@monstr.eu>
15 years agomicroblaze: Detect new Microblaze 7.20 versions
Michal Simek [Tue, 21 Jul 2009 10:47:04 +0000 (12:47 +0200)]
microblaze: Detect new Microblaze 7.20 versions

Signed-off-by: Michal Simek <monstr@monstr.eu>
15 years agomicroblaze: Fix do_page_fault for no context
Michal Simek [Thu, 16 Jul 2009 14:00:49 +0000 (16:00 +0200)]
microblaze: Fix do_page_fault for no context

Calling fixup when we are in kernel mode. This
prevent fault for copy_to/from_user. This fault
was find thanks to writev01/03/04 LTP tests.

Signed-off-by: Michal Simek <monstr@monstr.eu>
15 years agomicroblaze: Add _PAGE_FILE macros to pgtable.h
Michal Simek [Wed, 15 Jul 2009 11:39:35 +0000 (13:39 +0200)]
microblaze: Add _PAGE_FILE macros to pgtable.h

We need to define _PAGE_FILE macro and change pte
functions. Microblaze use the same MMU as PowerPC
that's why we define _PAGE_FILE in the same style.
This change fixed remap_file_pages01 LTP test.

Signed-off-by: Michal Simek <monstr@monstr.eu>
15 years agomicroblaze: Fix put_user macro for 64bits arguments
Michal Simek [Mon, 13 Jul 2009 14:46:54 +0000 (16:46 +0200)]
microblaze: Fix put_user macro for 64bits arguments

For 64bits arguments gcc caused that put_user macro
works with wrong value because of optimalization.
Adding volatile caused that gcc not optimized it.

It is possible to use (as Blackfin do) two put_user
macros with 32bits arguments but there is one more
instruction which is due to duplication zero return
value which is called put_user_asm macro.

Signed-off-by: Michal Simek <monstr@monstr.eu>
15 years agomicroblaze: Clear print messages for DTB passing via r7
Michal Simek [Mon, 22 Jun 2009 10:31:55 +0000 (12:31 +0200)]
microblaze: Clear print messages for DTB passing via r7

It is necessary to zeroed r7 when r7 points to bad
dtb - this caused that we have correct messages
about compiled-in dtb or passing via r7

Signed-off-by: Michal Simek <monstr@monstr.eu>
15 years agomicroblaze: Not to clear r7 after copying DTB to kernel
Michal Simek [Mon, 22 Jun 2009 08:55:40 +0000 (10:55 +0200)]
microblaze: Not to clear r7 after copying DTB to kernel

I can't clear r7 because if I do it I lose information
where DTB come from.

Signed-off-by: Michal Simek <monstr@monstr.eu>
15 years agomicroblaze: Add messages about FDT blob
Michal Simek [Mon, 22 Jun 2009 08:28:40 +0000 (10:28 +0200)]
microblaze: Add messages about FDT blob

Print accurate message about place where FDT blob is.

Signed-off-by: Michal Simek <monstr@monstr.eu>
15 years agomicroblaze: Final support for statically linked DTB
John Williams [Mon, 22 Jun 2009 04:02:09 +0000 (14:02 +1000)]
microblaze: Final support for statically linked DTB

If r7 is zero at kernel boot, or does not point to a valid DTB, then
we fall back to a DTB (assumed to be) linked statically in the kernel, instead
of blindly copying bogus cruft into the kernel DTB memory region

Signed-off-by: John Williams <john.williams@petalogix.com>
Signed-off-by: Michal Simek <monstr@monstr.eu>
15 years agomicroblaze: remove duplicated #include
Huang Weiyi [Sat, 11 Jul 2009 01:32:08 +0000 (09:32 +0800)]
microblaze: remove duplicated #include

Remove duplicated #include('s) in
  arch/microblaze/include/asm/io.h

Signed-off-by: Huang Weiyi <weiyi.huang@gmail.com>
Signed-off-by: Michal Simek <monstr@monstr.eu>
15 years agomicroblaze: Define tlb_flush macro
Michal Simek [Thu, 9 Jul 2009 09:33:39 +0000 (11:33 +0200)]
microblaze: Define tlb_flush macro

This fix remove bug which we had till now in all
Microblaze MMU code. Primary tested on mmap01 LTP test.
We forget to flush invalid tlb which were changed - we
used them and there were wrong old data which wasn't correct.

Signed-off-by: Michal Simek <monstr@monstr.eu>
15 years agoixgbe: fix for 82599 errata marking UDP checksum errors
Don Skidmore [Thu, 23 Jul 2009 18:00:39 +0000 (18:00 +0000)]
ixgbe: fix for 82599 errata marking UDP checksum errors

There is an 82599 errata that UDP frames with a zero checksum are
incorrectly marked as checksum invalid by the hardware.  This was
leading to misleading hw_csum_rx_error counts. This patch adds a
test around this counter increase for this condition.

Signed-off-by: Don Skidmore <donald.c.skidmore@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agor8169: WakeOnLan fix for the 8168
françois romieu [Fri, 24 Jul 2009 12:34:19 +0000 (12:34 +0000)]
r8169: WakeOnLan fix for the 8168

More stuff for http://bugzilla.kernel.org/show_bug.cgi?id=9512

Some 8168 are unable to WoL when receiving is not enabled (plain
old 8169 do not seem to care).

It is not exactly pretty to leave the receiver enabled but we
should now enable DMA late enough for it to be safe. Some late
stage boot failure due to pxe and friends may benefit from the
delayed enabling of bus-mastering as well.

Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Tested-by: Jaromír Cápík <tavvva@volny.cz>
Cc: Edward Hsu <edward_hsu@realtek.com.tw>
15 years agonetxen: reset ring consumer during cleanup
Dhananjay Phadke [Mon, 27 Jul 2009 03:17:21 +0000 (20:17 -0700)]
netxen: reset ring consumer during cleanup

Reset consumer of status rings to 0 when cleaning
up sw resources. Status rings are not deleted
during suspend since they have napi objects.

This ensures correct rx processing across suspen-resume.

Signed-off-by: Dhananjay Phadke <dhananjay@netxen.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agonet/bridge: use kobject_put to release kobject in br_add_if error path
Xiaotian Feng [Thu, 23 Jul 2009 23:06:32 +0000 (23:06 +0000)]
net/bridge: use kobject_put to release kobject in br_add_if error path

kobject_init_and_add will alloc memory for kobj->name, so in br_add_if
error path, simply use kobject_del will not free memory for kobj->name.
Fix by using kobject_put instead, kobject_put will internally calls
kobject_del and frees memory for kobj->name.

Signed-off-by: Xiaotian Feng <dfeng@redhat.com>
Acked-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agosmc91x.h: add config for Nomadik evaluation kit
Alessandro Rubini [Wed, 22 Jul 2009 12:49:08 +0000 (12:49 +0000)]
smc91x.h: add config for Nomadik evaluation kit

Signed-off-by: Alessandro Rubini <rubini@unipv.it>
Acked-by: Andrea Gallo <andrea.gallo@stericsson.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoNET: ROSE: Don't use static buffer.
Ralf Baechle [Mon, 27 Jul 2009 02:11:14 +0000 (19:11 -0700)]
NET: ROSE: Don't use static buffer.

The use of a static buffer in rose2asc() to return its result is not
threadproof and can result in corruption if multiple threads are trying
to use one of the procfs files based on rose2asc().

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoeepro: Read buffer overflow
Roel Kluin [Mon, 27 Jul 2009 01:53:17 +0000 (18:53 -0700)]
eepro: Read buffer overflow

io[i] is read before the bounds check on i, order should be reversed

Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agotokenring: Read buffer overflow
roel kluin [Sat, 25 Jul 2009 12:38:33 +0000 (12:38 +0000)]
tokenring: Read buffer overflow

io[i] is read before the bounds check on i, order should be reversed

Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoat1700: Read buffer overflow
roel kluin [Sat, 25 Jul 2009 12:01:50 +0000 (12:01 +0000)]
at1700: Read buffer overflow

loop bound looks to be wrong, for an array of length 8

Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agofealnx: Write outside array bounds
roel kluin [Sat, 25 Jul 2009 07:41:12 +0000 (07:41 +0000)]
fealnx: Write outside array bounds

phy_idx is checked to be < 4, but np->phys[] is 2 elements long

Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoMerge branch 'fix/usb-audio' into for-linus
Takashi Iwai [Sun, 26 Jul 2009 09:07:08 +0000 (11:07 +0200)]
Merge branch 'fix/usb-audio' into for-linus

* fix/usb-audio:
  ALSA: usb-audio - Volume control quirk for QuickCam E 3500

15 years agoMerge branch 'fix/pcm-hwptr' into for-linus
Takashi Iwai [Sun, 26 Jul 2009 09:07:07 +0000 (11:07 +0200)]
Merge branch 'fix/pcm-hwptr' into for-linus

* fix/pcm-hwptr:
  ALSA: pcm - Fix hwptr buffer-size overlap bug
  ALSA: pcm - Fix warnings in debug loggings
  ALSA: pcm - Add logging of hwptr updates and interrupt updates
  ALSA: pcm - Fix regressions with VMware

15 years agoMerge branch 'fix/hda' into for-linus
Takashi Iwai [Sun, 26 Jul 2009 09:07:06 +0000 (11:07 +0200)]
Merge branch 'fix/hda' into for-linus

* fix/hda:
  ALSA: hda - Fix mute control with some ALC262 models
  ALSA: hda - Restore GPIO1 properly at resume with AD1984A
  ALSA: hda - Use snprintf() to be safer

15 years agoMerge branch 'fix/ctxfi' into for-linus
Takashi Iwai [Sun, 26 Jul 2009 09:07:05 +0000 (11:07 +0200)]
Merge branch 'fix/ctxfi' into for-linus

* fix/ctxfi:
  ALSA: ctxfi - Fix uninitialized error checks

15 years agoMerge branch 'fix/caiaq' into for-linus
Takashi Iwai [Sun, 26 Jul 2009 09:07:04 +0000 (11:07 +0200)]
Merge branch 'fix/caiaq' into for-linus

* fix/caiaq:
  ALSA: snd_usb_caiaq: add support for Audio2DJ

15 years agoMerge branch 'fix/asoc' into for-linus
Takashi Iwai [Sun, 26 Jul 2009 09:07:03 +0000 (11:07 +0200)]
Merge branch 'fix/asoc' into for-linus

* fix/asoc:
  ASoC: tlv320aic3x: Enable PLL when not bypassed

15 years agotrace: stop tracer in oops_enter()
Thomas Gleixner [Fri, 24 Jul 2009 19:30:45 +0000 (15:30 -0400)]
trace: stop tracer in oops_enter()

If trace_printk_on_oops is set we lose interesting trace information
when the tracer is enabled across oops handling and printing. We want
the trace which might give us information _WHY_ we oopsed.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
15 years agoV4L/DVB (12303): cx23885: check pointers before dereferencing in dprintk macro
Michael Krufky [Sun, 19 Jul 2009 20:55:35 +0000 (17:55 -0300)]
V4L/DVB (12303): cx23885: check pointers before dereferencing in dprintk macro

When enabling debug with v4l_debug set to 2 or greater, the driver
OOPS's on startup.  Checks dev pointer before dereferencing, in
order to prevent this OOPS.

Signed-off-by: Michael Krufky <mkrufky@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
15 years agoV4L/DVB (12302): cx23885-417: fix broken IOCTL handling
Michael Krufky [Sun, 19 Jul 2009 21:19:18 +0000 (18:19 -0300)]
V4L/DVB (12302): cx23885-417: fix broken IOCTL handling

IOCTLS will never get handled if we dont connect
video_ioctl2 to mpeg_fops.ioctl

Signed-off-by: Michael Krufky <mkrufky@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
15 years agoV4L/DVB (12300): bttv: fix regression: tvaudio must be loaded before tuner
Hans Verkuil [Mon, 20 Jul 2009 11:14:17 +0000 (08:14 -0300)]
V4L/DVB (12300): bttv: fix regression: tvaudio must be loaded before tuner

Both tvaudio and the tuner share i2c address 0x42. The tvaudio module can
check whether it really is a tda9840, but the tuner can't. So the tvaudio
module must be loaded before the tuner module. This was also the case for
2.6.29, but the order was swapped in 2.6.30.

Thanks to Krzysztof Grygiencz for reporting and testing this.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
15 years agoV4L/DVB (12291): b2c2: fix frontends compiled into kernel
Trent Piepho [Thu, 11 Jun 2009 22:31:22 +0000 (19:31 -0300)]
V4L/DVB (12291): b2c2: fix frontends compiled into kernel

A recent patch didn't take into account that frontends can be compiled into
the kernel.  Or that frontends compiled as modules can't be used by the
b2c2 driver if it is not a module itself.

Some frontends require multiple drivers, e.g. a demod driver and a tuner
driver.  The code for the frontend support was getting added if the demod
driver was available.  Change this to also require any needed tuner or SEC
drivers as well.

Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
15 years agoV4L/DVB (12286): sn9c20x: reorder includes to be like other drivers
Mauro Carvalho Chehab [Sun, 19 Jul 2009 21:03:23 +0000 (18:03 -0300)]
V4L/DVB (12286): sn9c20x: reorder includes to be like other drivers

This is not just pure cosmetic, since the order affects the out-of-tree
module build at the -hg development tree.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
15 years agoV4L/DVB (12284): gspca - jpeg subdrivers: Check the result of kmalloc(jpeg header).
Julia Lawall [Sun, 19 Jul 2009 10:09:32 +0000 (07:09 -0300)]
V4L/DVB (12284): gspca - jpeg subdrivers: Check the result of kmalloc(jpeg header).

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Jean-Francois Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
15 years agoV4L/DVB (12283): gspca - sn9c20x: New subdriver for sn9c201 and sn9c202 bridges.
Brian Johnson [Sun, 19 Jul 2009 08:52:58 +0000 (05:52 -0300)]
V4L/DVB (12283): gspca - sn9c20x: New subdriver for sn9c201 and sn9c202 bridges.

Signed-off-by: Brian Johnson <brijohn@gmail.com>
Signed-off-by: Jean-Francois Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
15 years agoV4L/DVB (12282): gspca - main: Support for vidioc_g_chip_ident and vidioc_g/s_register.
Brian Johnson [Sun, 19 Jul 2009 08:29:20 +0000 (05:29 -0300)]
V4L/DVB (12282): gspca - main: Support for vidioc_g_chip_ident and vidioc_g/s_register.

Signed-off-by: Brian Johnson <brijohn@gmail.com>
Signed-off-by: Jean-Francois Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
15 years agoV4L/DVB (12269): af9013: auto-detect parameters in case of garbage given by app
Antti Palosaari [Fri, 10 Jul 2009 23:03:43 +0000 (20:03 -0300)]
V4L/DVB (12269): af9013: auto-detect parameters in case of garbage given by app

Request demodulator auto-detect transmission parameters in case of
garbage parameters provided by application for compatibility.
That's needed at least for MPlayer compatibility currently.

Thanks to Jelle de Jong for reporting issue and providing SSH access to
Devin for debugging.

Thanks to Devin Heitmueller for hard debug work he did to find that bug.

Cc: Devin Heitmueller <dheitmueller@kernellabs.com>
Cc: Jelle de Jong <jelledejong@powercraft.nl>
Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
15 years agoV4L/DVB (12267): gspca - sonixj: Bad sensor init of non ov76xx sensors.
Jean-Francois Moine [Wed, 8 Jul 2009 08:21:50 +0000 (05:21 -0300)]
V4L/DVB (12267): gspca - sonixj: Bad sensor init of non ov76xx sensors.

The bug was introduced when adding the light frequency control

Signed-off-by: Jean-Francois Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
15 years agoV4L/DVB (12265): em28xx: fix tuning problem in HVR-900 (R1)
Devin Heitmueller [Sun, 12 Jul 2009 20:05:02 +0000 (17:05 -0300)]
V4L/DVB (12265): em28xx: fix tuning problem in HVR-900 (R1)

When the change was introduced in the zl10353 for the i2c gate behavior, this
broke the HVR-900 which was not behind a gate.  Use a version of the zl10353
config profile that indicates the tuner is not behind such a gate.

Without this patch the first tune succeeds, but subsequent tuning attempts
will fail.

The change also renames the terratec zl10353 profile I wrote to be more
generic, since it is shared by the non-terratec device.

Thanks to Michael Krufky for providing a HVR-900 and DVB-T environment to test
with.

Cc: Michael Krufky <mkrufky@kernellabs.com>
Signed-off-by: Devin Heitmueller <dheitmueller@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
15 years agoV4L/DVB (12263): em28xx: set demod profile for Pinnacle Hybrid Pro 320e
Devin Heitmueller [Wed, 15 Jul 2009 03:37:22 +0000 (00:37 -0300)]
V4L/DVB (12263): em28xx: set demod profile for Pinnacle Hybrid Pro 320e

The Pinnacle Hybrid Pro 320e was missing a demod config for the xc3028, which
is required for digital tuning to work properly.  Add the missing profile.

Thanks to Andreas Lunderhage for testing patches and providing a remote debug
environment.

Cc: Andreas Lunderhage <lunderhage@home.se>
Signed-off-by: Devin Heitmueller <dheitmueller@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
15 years agoV4L/DVB (12262): em28xx: Make sure the tuner is initialized if generic empia USB...
Devin Heitmueller [Wed, 15 Jul 2009 03:35:47 +0000 (00:35 -0300)]
V4L/DVB (12262): em28xx: Make sure the tuner is initialized if generic empia USB id was used

In cases where the device has a generic Empia USB ID, the call in the
precard setup phase did not set the tuner GPIO.  As a result, the tuner may
not be taken out of reset before attempting initialization in the analog
driver.

This problem was not seen before with the EVGA inDtube, since that particular
board has the analog GPIO setup to include taking the tuner out of reset.

Thanks to Andreas Lunderhage for testing patches and providing a remote debug
environment for the Pinnacle 320e.

Cc: Andreas Lunderhage <lunderhage@home.se>
Signed-off-by: Devin Heitmueller <dheitmueller@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
15 years agoV4L/DVB (12261): em28xx: set GPIO properly for Pinnacle Hybrid Pro analog support
Devin Heitmueller [Thu, 9 Jul 2009 01:18:15 +0000 (22:18 -0300)]
V4L/DVB (12261): em28xx: set GPIO properly for Pinnacle Hybrid Pro analog support

Set the GPIO properly for the analog side of the Pinnacle Hybrid Pro, or else
the emp202 doesn't get detected properly.

Signed-off-by: Devin Heitmueller <dheitmueller@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
15 years agoV4L/DVB (12260): em28xx: make support work for the Pinnacle Hybrid Pro (eb1a:2881)
Devin Heitmueller [Thu, 9 Jul 2009 00:51:35 +0000 (21:51 -0300)]
V4L/DVB (12260): em28xx: make support work for the Pinnacle Hybrid Pro (eb1a:2881)

Setup the GPIOs properly and enable support for the DVB side of the Pinnacle
Hybrid Pro USB stick.

Thanks to Andreas Lunderhage for testing patches and providing a remote debug
environment.

Cc: Andreas Lunderhage <lunderhage@home.se>
Signed-off-by: Devin Heitmueller <dheitmueller@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
15 years agoV4L/DVB (12258): em28xx: fix typo in mt352 init sequence for Terratec Cinergy T XS USB
Devin Heitmueller [Sun, 12 Jul 2009 21:44:19 +0000 (18:44 -0300)]
V4L/DVB (12258): em28xx: fix typo in mt352 init sequence for Terratec Cinergy T XS USB

Andy walls pointed out that we were passing 0x5d to the TUNER_GO register,
instead of 0x01.  Set the register properly (note the code did still work with
the incorrect value, so this does not address a regression).

Thanks to Andy Walls for noticing the issue.

Cc: Andy Walls <awalls@radix.net>
Signed-off-by: Devin Heitmueller <dheitmueller@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
15 years agoV4L/DVB (12257): em28xx: make tuning work for Terratec Cinergy T XS USB (mt352 variant)
Devin Heitmueller [Sun, 12 Jul 2009 20:51:12 +0000 (17:51 -0300)]
V4L/DVB (12257): em28xx: make tuning work for Terratec Cinergy T XS USB (mt352 variant)

The Terratec Cinergy T XS USB can have either a zl10353 or an mt352.  Add
support for the MT352 variant.

Thanks to Jelle de Jong for providing a unit to test/debug with.

Cc: Jelle de Jong <jelledejong@powercraft.nl>
Signed-off-by: Devin Heitmueller <dheitmueller@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
15 years agoV4L/DVB (12245): em28xx: add support for mt9m001 webcams
Mauro Carvalho Chehab [Wed, 15 Jul 2009 00:08:22 +0000 (21:08 -0300)]
V4L/DVB (12245): em28xx: add support for mt9m001 webcams

Thanks to Wally <wally@voosen.eu> for bringing the issue and helping
with the tests.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
15 years agoV4L/DVB (12244): em28xx: adjust vinmode/vinctl based on the stream input format
Mauro Carvalho Chehab [Tue, 14 Jul 2009 15:33:25 +0000 (12:33 -0300)]
V4L/DVB (12244): em28xx: adjust vinmode/vinctl based on the stream input format

Depending on the video input format, vinmode/vinctl needs adjustments.
For TV, this is not relevant, since the supported decoders output data
at the same format. However, webcam sensors may have different formats,
so, this needs to be adjusted based on the device.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
15 years agoV4L/DVB (12243): em28xx: allow specifying sensor xtal frequency
Mauro Carvalho Chehab [Tue, 14 Jul 2009 06:18:39 +0000 (03:18 -0300)]
V4L/DVB (12243): em28xx: allow specifying sensor xtal frequency

In order to properly estimate fps, mt9v011 sensor driver needs to know
what is the used frequency on the sensor cristal. Adds the proper fields
and initialization code for specifying the cristal frequency.

Also, based on experimentation, it was noticed that the Silvercrest is
outputing data at 7 fps. This means that it should be using a 6.3 MHz
cristal. This information needs to be double checked later, by opening
the device. Anyway, by using this value for xtal, at least now we have
the correct fps report.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
15 years agoV4L/DVB (12242): mt9v011: implement core->s_config to allow adjusting xtal frequency
Mauro Carvalho Chehab [Tue, 14 Jul 2009 06:14:21 +0000 (03:14 -0300)]
V4L/DVB (12242): mt9v011: implement core->s_config to allow adjusting xtal frequency

Since frames per second is a function of cristal frequency, and this is
device-specific, add a function that allows adjusting it, via
subdev->core->s_config callback.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
15 years agoV4L/DVB (12241): mt9v011: Fix vstart
Mauro Carvalho Chehab [Tue, 14 Jul 2009 05:39:19 +0000 (02:39 -0300)]
V4L/DVB (12241): mt9v011: Fix vstart

vstart calculus were wrong. Fix it.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
15 years agoV4L/DVB (12240): mt9v011: add a function to calculate frames per second rate
Mauro Carvalho Chehab [Tue, 14 Jul 2009 05:38:18 +0000 (02:38 -0300)]
V4L/DVB (12240): mt9v011: add a function to calculate frames per second rate

It is possible to adjust the fps rate by changing some register values.
This is function of the connected Xtal at the camera sensor, being a 27
MHz cristal needed, in order to support 640x480 at 30 fps.

For now, it will only calculate the values for fps. Later patches may
introduce V4L2 ioctls, to allow frequency rate adjustments.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
15 years agoV4L/DVB (12239): em28xx: fix webcam scaling
Mauro Carvalho Chehab [Mon, 13 Jul 2009 23:15:02 +0000 (20:15 -0300)]
V4L/DVB (12239): em28xx: fix webcam scaling

While trying to fix an mt9v001 webcam, I noticed that HSCALE/VSCALE do
work with em28xx + webcam. The issue is that the scaling setup depends
on the number of visible rows/cols of the input image.

With mt9v011 (Silvercrest), the resolution is 640x480. So, the scaling
is different from a normal TV image (720x480 on NTSC). This were causing
a wrong scaling and a previous patch disabled scaling.

As each sensor have their different resolution setting, the xres/yres
should be adjusted accordingly with the input sensor.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
15 years agoV4L/DVB (12238): em28xx: call sensor detection code for all webcam entries
Mauro Carvalho Chehab [Mon, 13 Jul 2009 04:28:21 +0000 (01:28 -0300)]
V4L/DVB (12238): em28xx: call sensor detection code for all webcam entries

With the previous approach, autodetection were working only for the two
generic entries (em275x and em2820 unknown ones). So, if someone would
try to force probing an specific device, the code would not properly run
the autodetection code.

With the new approach, the sensor autodetection will be run not only for
the two generic entries, but also do webcam specific ones.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
15 years agoV4L/DVB (12237): mt9v011: implement VIDIOC_QUERYCTRL
Mauro Carvalho Chehab [Mon, 13 Jul 2009 04:03:37 +0000 (01:03 -0300)]
V4L/DVB (12237): mt9v011: implement VIDIOC_QUERYCTRL

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
15 years agoV4L/DVB (12236): em28xx: stop abusing of board->decoder for sensor information
Mauro Carvalho Chehab [Sun, 12 Jul 2009 14:04:15 +0000 (11:04 -0300)]
V4L/DVB (12236): em28xx: stop abusing of board->decoder for sensor information

Instead of using em28xx board decoder field for storing sensor information,
let's use instead a separate field for it.

Also, as sensors are currently autodetected, there's no need of having
it at the boards description. So, move it to the main em28xx struct.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
15 years agoV4L/DVB (12235): em28xx: detects sensors also with the generic em2750/2750 entry
Mauro Carvalho Chehab [Sun, 12 Jul 2009 13:56:21 +0000 (10:56 -0300)]
V4L/DVB (12235): em28xx: detects sensors also with the generic em2750/2750 entry

Webcams in general don't have eeprom. So, the sensor hint code should be
called to properly detect what sensor is inside.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
15 years agoV4L/DVB (12234): em28xx-cards: use is_webcam flag for devices that are known to be...
Mauro Carvalho Chehab [Sun, 12 Jul 2009 13:26:36 +0000 (10:26 -0300)]
V4L/DVB (12234): em28xx-cards: use is_webcam flag for devices that are known to be webcams

By having the webcam devices marked as such, it will help the em28xx
driver to do the right thing on those devices.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
15 years agoV4L/DVB (12233): em28xx: rename is_27xx to is_webcam
Mauro Carvalho Chehab [Sun, 12 Jul 2009 13:23:23 +0000 (10:23 -0300)]
V4L/DVB (12233): em28xx: rename is_27xx to is_webcam

Just renames the flag, to use a clearer name. Later patches will use
this flag to properly set some drivers behaviors for webcams.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
15 years agoV4L/DVB (12224): gspca - m5602-s5k4aa: Remove erroneous register writes
Erik Andrén [Wed, 8 Jul 2009 17:47:16 +0000 (14:47 -0300)]
V4L/DVB (12224): gspca - m5602-s5k4aa: Remove erroneous register writes

A couple of erroneous register writes snuck in that made the image go haywire. Remove these.
Many thanks to Grégory Lardière for finding this out

Signed-off-by: Erik Andrén <erik.andren@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
15 years agoV4L/DVB (12223): gspca - stv06xx-hdcs: Correct the pixelformat
Erik Andrén [Wed, 1 Jul 2009 05:56:44 +0000 (02:56 -0300)]
V4L/DVB (12223): gspca - stv06xx-hdcs: Correct the pixelformat

Signed-off-by: Erik Andrén <erik.andren@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
15 years agoV4L/DVB (12222): gspca - stv06xx-hdcs: Fix sensor sequence bug
Erik Andrén [Wed, 24 Jun 2009 07:30:56 +0000 (04:30 -0300)]
V4L/DVB (12222): gspca - stv06xx-hdcs: Fix sensor sequence bug

All hdcs registers use bit 0 as a read/write flag and needs to be shifted one bit to the left. This wasn't accounted for when doing a sequence of writes.

Signed-off-by: Erik Andrén <erik.andren@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
15 years agoV4L/DVB (12221): gspca - stv06xx-hdcs: Actually update the sensor state
Erik Andrén [Tue, 23 Jun 2009 15:22:48 +0000 (12:22 -0300)]
V4L/DVB (12221): gspca - stv06xx-hdcs: Actually update the sensor state

Signed-off-by: Erik Andrén <erik.andren@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
15 years agoALSA: hda - Fix mute control with some ALC262 models
Takashi Iwai [Fri, 24 Jul 2009 14:51:47 +0000 (16:51 +0200)]
ALSA: hda - Fix mute control with some ALC262 models

The master mute switch is wrongly implemented as checking the pointer
instead of its value, thus it can be never muted.  This patch fixes
the issue.

Reference: Novell bnc#404873
https://bugzilla.novell.com/show_bug.cgi?id=404873

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Cc: <stable@kernel.org>
15 years ago[S390] zcrypt: fix scheduling of hrtimer ap_poll_timer
Felix Beck [Fri, 24 Jul 2009 10:39:53 +0000 (12:39 +0200)]
[S390] zcrypt: fix scheduling of hrtimer ap_poll_timer

Every time a request is enqueued or there is some work outstanding
from the ap_tasklet, the ap_poll_timer is scheduled again.
Unfortunately it was permanently called. It looked as if it was
started in the past and thus imediately expired.
This has been changed. First it is checked if the hrtimer is already
expired. Then the expiring time is forwarded and the timer restarted.

Signed-off-by: Felix Beck <felix.beck@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
15 years ago[S390] vdso: clock_gettime of CLOCK_THREAD_CPUTIME_ID with noexec=on
Martin Schwidefsky [Fri, 24 Jul 2009 10:39:52 +0000 (12:39 +0200)]
[S390] vdso: clock_gettime of CLOCK_THREAD_CPUTIME_ID with noexec=on

The combination of noexec=on and a clock_gettime call with clock id
CLOCK_THREAD_CPUTIME_ID is broken. The vdso code switches to the
access register mode to get access to the per-cpu data structure to
execute the magic ectg instruction. After the ectg instruction the
code always switches back to the primary mode but for noexec=on the
correct mode is the secondary mode. The effect of the bug is that the
user space program looses the access to all mappings without PROT_EXEC,
e.g. the stack. The problem is fixed by restoring the mode that has
been active before the switch to the access register mode.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
15 years ago[S390] vdso: fix per cpu area allocation
Heiko Carstens [Fri, 24 Jul 2009 10:39:51 +0000 (12:39 +0200)]
[S390] vdso: fix per cpu area allocation

vdso per cpu area allocation in smp_prepare_cpus() happens with GFP_KERNEL
but irqs disabled. Triggers this one:

Badness at kernel/lockdep.c:2280
Modules linked in:
CPU: 0 Not tainted 2.6.30 #2
Process swapper (pid: 1, task: 000000003fe88000, ksp: 000000003fe87eb8)
Krnl PSW : 0400c00180000000 0000000000083360 (lockdep_trace_alloc+0xec/0xf8)
[...]
Call Trace:
([<00000000000832b6>] lockdep_trace_alloc+0x42/0xf8)
 [<00000000000b1880>] __alloc_pages_internal+0x3e8/0x5c4
 [<00000000000b1b4a>] __get_free_pages+0x3a/0xb0
 [<0000000000026546>] vdso_alloc_per_cpu+0x6a/0x18c
 [<00000000005eff82>] smp_prepare_cpus+0x322/0x594
 [<00000000005e8232>] kernel_init+0x76/0x398
 [<000000000001bb1e>] kernel_thread_starter+0x6/0xc
 [<000000000001bb18>] kernel_thread_starter+0x0/0xc

Fix this by moving the allocation out of the irqs disabled section.

Reported-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>