Commit Graph

211328 Commits

Author SHA1 Message Date
Arve Hjønnevåg
36c83de718 Input: Use monotonic time for event time stamps.
Since wall time can jump backwards, it cannot be used to determine if one
event occured before another or for how long a key was pressed.

Signed-off-by: Arve Hjønnevåg <arve@android.com>
2010-09-29 17:49:09 -07:00
Arve Hjønnevåg
7a1d4b001f Input: Hold wake lock while event queue is not empty.
Allows userspace code to process input events while
the device appears to be asleep.

Signed-off-by: Arve Hjønnevåg <arve@android.com>
2010-09-29 17:49:09 -07:00
Arve Hjønnevåg
9ad323ee45 ledtrig-sleep: Add led trigger for sleep debugging.
Signed-off-by: Brian Swetland <swetland@google.com>
2010-09-29 17:49:08 -07:00
Arve Hjønnevåg
c7b52dfe8a rtc: Try to prevent RTC errors from accumulating.
When we resume we only know how many whole seconds has elapsed.
These errors would accumulate in delta. We now only set the delta
if it would change by more than two seconds. If we drift back by
by more than a second add one in resume.

Signed-off-by: Arve Hjønnevåg <arve@android.com>
2010-09-29 17:49:08 -07:00
Arve Hjønnevåg
c4606c1208 rtc: alarm: Add in-kernel alarm interface
Drivers can now create alarms that will use an hrtimer while the
system is running and the rtc to wake up from suspend.

Signed-off-by: Arve Hjønnevåg <arve@android.com>
2010-09-29 17:49:08 -07:00
Arve Hjønnevåg
e5642795c4 rtc: Add android alarm driver. 2010-09-29 17:49:08 -07:00
Rebecca Schultz
229b3e82d7 PM: earlysuspend: Removing dependence on console.
Rather than signaling a full update of the display from userspace via a
console switch, this patch introduces 2 files int /sys/power,
wait_for_fb_sleep and wait_for_fb_wake.  Reading these files will block
until the requested state has been entered.  When a read from
wait_for_fb_sleep returns userspace should stop drawing.  When
wait_for_fb_wake returns, it should do a full update.  If either are called
when the fb driver is already in the requested state, they will return
immediately.

Signed-off-by: Rebecca Schultz <rschultz@google.com>
Signed-off-by: Arve Hjønnevåg <arve@android.com>
2010-09-29 17:49:08 -07:00
Arve Hjønnevåg
e1310abde5 consoleearlysuspend: Fix for 2.6.32
vt_waitactive now needs a 1 based console number

Change-Id: I07ab9a3773c93d67c09d928c8d5494ce823ffa2e
2010-09-29 17:49:08 -07:00
Arve Hjønnevåg
8dcec0d65d PM: earlysuspend: Add console switch when user requested sleep state changes.
Signed-off-by: Arve Hjønnevåg <arve@android.com>
2010-09-29 17:49:07 -07:00
Arve Hjønnevåg
a0902564d1 PM: wakelock: Don't dump unfrozen task list when aborting try_to_freeze_tasks after less than one second
Change-Id: Ib2976e5b97a5ee4ec9abd4d4443584d9257d0941
Signed-off-by: Arve Hjønnevåg <arve@android.com>
2010-09-29 17:49:07 -07:00
Arve Hjønnevåg
003cfdd042 PM: wakelock: Abort task freezing if a wake lock is held.
Avoids a problem where the device sometimes hangs for 20 seconds
before the screen is turned on.
2010-09-29 17:49:07 -07:00
Arve Hjønnevåg
507fedc715 PM: Add user-space wake lock api.
This adds /sys/power/wake_lock and /sys/power/wake_unlock.
Writing a string to wake_lock creates a wake lock the
first time is sees a string and locks it. Optionally, the
string can be followed by a timeout.
To unlock the wake lock, write the same string to wake_unlock.

Change-Id: I66c6e3fe6487d17f9c2fafde1174042e57d15cd7
2010-09-29 17:49:07 -07:00
Arve Hjønnevåg
f104aa02b8 PM: Enable early suspend through /sys/power/state
If EARLYSUSPEND is enabled then writes to /sys/power/state no longer
blocks, and the kernel will try to enter the requested state every
time no wakelocks are held. Write "on" to resume normal operation.
2010-09-29 17:49:07 -07:00
Arve Hjønnevåg
adc899ef78 PM: Implement early suspend api 2010-09-29 17:49:07 -07:00
Arve Hjønnevåg
501a7506d8 PM: wakelocks: Use seq_file for /proc/wakelocks so we can get more than 3K of stats.
Change-Id: I42ed8bea639684f7a8a95b2057516764075c6b01
Signed-off-by: Arve Hjønnevåg <arve@android.com>
2010-09-29 17:49:06 -07:00
Erik Gilling
b19163eeb4 power: wakelocks: fix buffer overflow in print_wake_locks
Change-Id: Ic944e3b3d3bc53eddc6fd0963565fd072cac373c
Signed-off-by: Erik Gilling <konkers@android.com>
2010-09-29 17:49:06 -07:00
Mike Chan
5e8c1e9c6b power: Prevent spinlock recursion when wake_unlock() is called
Signed-off-by: Mike Chan <mike@android.com>
2010-09-29 17:49:06 -07:00
Arve Hjønnevåg
dcb48436a5 PM: Implement wakelock api.
PM: wakelock: Replace expire work with a timer

The expire work function did not work in the normal case.

Signed-off-by: Arve Hjønnevåg <arve@android.com>
2010-09-29 17:49:06 -07:00
Arve Hjønnevåg
f102331ba4 PM: Add early suspend api. 2010-09-29 17:49:06 -07:00
Arve Hjønnevåg
b782b78390 PM: Add wake lock api. 2010-09-29 17:49:06 -07:00
Mike Chan
ff03c1a77a [docs] android: Add android config documentation to boot framework.
Signed-off-by: Mike Chan <mike@android.com>
2010-09-29 17:49:05 -07:00
Brian Swetland
a2ff915ea6 w1: don't allow arbitrary users to remove w1 devices
The search/pullup/add/remove device attributes were 0666 which would
allow arbitrary users to affect the 1 wire bus.  Change to 0664 to
prevent that.

Signed-off-by: Brian Swetland <swetland@google.com>
2010-09-29 17:49:05 -07:00
Robert Love
1cc8f1e3f4 Make /dev/mem configurable, as we don't want it.
Signed-off-by: Brian Swetland <swetland@google.com>
2010-09-29 17:49:05 -07:00
Erik Gilling
003788db89 sched: make task dump print all 15 chars of proc comm
Change-Id: I1a5c9676baa06c9f9b4424bbcab01b9b2fbfcd99
Signed-off-by: Erik Gilling <konkers@android.com>
2010-09-29 17:49:05 -07:00
Arve Hjønnevåg
a69de5bf21 sched: Enable might_sleep before initializing drivers.
This allows detection of init bugs in built-in drivers.

Signed-off-by: Arve Hjønnevåg <arve@android.com>
2010-09-29 17:49:05 -07:00
Arve Hjønnevåg
37eb616c13 Add build option to to set the default panic timeout. 2010-09-29 17:49:05 -07:00
Arve Hjønnevåg
a1643c545a [ARM] Optionally flush entire dcache from v6_dma_flush_range
If CACHE_FLUSH_RANGE_LIMIT is defined, then the entire dcache will
be flushed if the requested range is larger than this limit.

Change-Id: I29277d645a9d6716b1952cf3b870c78496261dd0
Signed-off-by: Arve Hjønnevåg <arve@android.com>
2010-09-29 17:49:04 -07:00
Arve Hjønnevåg
cb93471ed5 futex: Restore one of the fast paths eliminated by 38d47c1b70
This improves futex performance until our user-space code is fixed to use
FUTEX_PRIVATE_FLAG for non-shared futexes.

Signed-off-by: Arve Hjønnevåg <arve@android.com>
2010-09-29 17:49:04 -07:00
Arve Hjønnevåg
85a450f980 mm: Check if any page in a pageblock is reserved before marking it MIGRATE_RESERVE
This fixes a problem where the first pageblock got marked MIGRATE_RESERVE even
though it only had a few free pages. This in turn caused no contiguous memory
to be reserved and frequent kswapd wakeups that emptied the caches to get more
contiguous memory.
2010-09-29 17:49:04 -07:00
Arve Hjønnevåg
8fa2a8933d mm: Add min_free_order_shift tunable.
By default the kernel tries to keep half as much memory free at each
order as it does for one order below. This can be too agressive when
running without swap.

Change-Id: I5efc1a0b50f41ff3ac71e92d2efd175dedd54ead
Signed-off-by: Arve Hjønnevåg <arve@android.com>
2010-09-29 17:49:04 -07:00
Brian Swetland
49483c5c9e [ARM] avoid mis-detecting some V7 cores in the decompressor
This allows kernel decompress to happen nearly instantly instead
of taking over 20 seconds.

Signed-off-by: Brian Swetland <swetland@google.com>
2010-09-29 17:49:04 -07:00
Brian Swetland
89af241e82 [ARM] Allow ICEDCC to work with CPU_V7 as well as CPU_V6.
The mechanism is the same -- just need to adjust some ifdefs.

Signed-off-by: Brian Swetland <swetland@google.com>
2010-09-29 17:49:04 -07:00
Arve Hjønnevåg
439743f094 [ARM] armv6 dcc tty driver
Signed-off-by: Brian Swetland <swetland@google.com>
Signed-off-by: Arve Hjønnevåg <arve@android.com>
2010-09-29 17:49:03 -07:00
Arve Hjønnevåg
acf6f51ba7 [ARM] Add code to prevent system calls from being restarted muliple times before returning from the kernel.
Fixes crashes with thumb syscalls.
2010-09-29 17:49:03 -07:00
Tony Lindgren
a5602d8cf2 ARM: Make low-level printk work
Makes low-level printk work.

Signed-off-by: Tony Lindgren <tony@atomide.com>
2010-09-29 17:49:03 -07:00
Arve Hjønnevåg
e3bc4de9e0 Revert "Staging: android: mark subsystem as broken"
This reverts commit 2cdf99ce2b.
2010-09-29 17:49:03 -07:00
Corentin Chary
d90e943df7 staging/android: fix build issues
Signed-off-by: Corentin Chary <corentincj@iksaif.net>
2010-09-29 17:49:03 -07:00
Arve Hjønnevåg
4867dff9fb Revert "Staging: android: delete android drivers"
This reverts commit b0a0ccfad8.
2010-09-29 17:49:03 -07:00
Linus Torvalds
899611ee7d Linux 2.6.36-rc6 v2.6.36-rc6 2010-09-28 18:01:22 -07:00
David Howells
62bdb288bf MN10300: Handle missing sys_cacheflush() when caching disabled
When caching is disabled on the MN10300 arch, the sys_cacheflush()
function is removed by conditional stuff in the makefiles, but is still
referred to by the syscall table.

Provide a null version that just returns 0 when caching is disabled (or
-EINVAL if the arguments are silly).

Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2010-09-28 18:01:14 -07:00
Linus Torvalds
0f44fbd297 alpha: fix compile problem in arch/alpha/kernel/signal.c
Tssk.  Apparently Al hadn't checked commit c52c2ddc1d ("alpha: switch
osf_sigprocmask() to use of sigprocmask()") at all. It doesn't compile.

Fixed as per suggestions from Michael Cree.

Reported-by: Michael Cree <mcree@orcon.net.nz>
Cc: Al Viro <viro@ftp.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2010-09-28 13:26:57 -07:00
Linus Torvalds
7268e3c4b5 Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev
* 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:
  ahci: fix module refcount breakage introduced by libahci split
2010-09-28 12:38:52 -07:00
Tejun Heo
fad16e7a7f ahci: fix module refcount breakage introduced by libahci split
libata depends on scsi_host_template for module reference counting and
sht's should be owned by each low level driver.  During libahci split,
the sht was left with libahci.ko leaving the actual low level drivers
not reference counted.  This made ahci and ahci_platform always
unloadable even while they're being actively used.

Fix it by defining AHCI_SHT() macro in ahci.h and defining a sht for
each low level ahci driver.

stable: only applicable to 2.6.35.

Signed-off-by: Tejun Heo <tj@kernel.org>
Reported-by: Pedro Francisco <pedrogfrancisco@gmail.com>
Tested-by: Michael Tokarev <mjt@tls.msk.ru>
Cc: stable@kernel.org
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2010-09-28 15:14:51 -04:00
Linus Torvalds
b4d32648c1 Merge branch 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/staging
* 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/staging:
  hwmon (coretemp): Fix build breakage if SMP is undefined
2010-09-28 12:13:13 -07:00
Linus Torvalds
0d70397bc7 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6:
  PCI: fix pci_resource_alignment prototype
2010-09-28 12:02:22 -07:00
Linus Torvalds
a2724f28d9 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (47 commits)
  tcp: Fix >4GB writes on 64-bit.
  net/9p: Mount only matching virtio channels
  de2104x: fix ethtool
  tproxy: check for transparent flag in ip_route_newports
  ipv6: add IPv6 to neighbour table overflow warning
  tcp: fix TSO FACK loss marking in tcp_mark_head_lost
  3c59x: fix regression from patch "Add ethtool WOL support"
  ipv6: add a missing unregister_pernet_subsys call
  s390: use free_netdev(netdev) instead of kfree()
  sgiseeq: use free_netdev(netdev) instead of kfree()
  rionet: use free_netdev(netdev) instead of kfree()
  ibm_newemac: use free_netdev(netdev) instead of kfree()
  smsc911x: Add MODULE_ALIAS()
  net: reset skb queue mapping when rx'ing over tunnel
  br2684: fix scheduling while atomic
  de2104x: fix TP link detection
  de2104x: fix power management
  de2104x: disable autonegotiation on broken hardware
  net: fix a lockdep splat
  e1000e: 82579 do not gate auto config of PHY by hardware during nominal use
  ...
2010-09-28 12:01:26 -07:00
Guenter Roeck
fff2017354 hwmon (coretemp): Fix build breakage if SMP is undefined
Commit e40cc4bdfd introduced
a build breakage if CONFIG_SMP is undefined. This commit
fixes the problem.

This fix is only a workaround. For a real fix, cpu_sibling_mask() should
be defined in UP include code, eg in linux/smp.h, and asm/smp.h should not be
included directly. This fix is currently not possible because asm/smp.h defines
cpu_sibling_mask() unconditionally and is included directly from many source
files.

Reported-by: Ingo Molnar <mingo@elte.hu>
Tested-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Guenter Roeck <guenter.roeck@ericsson.com>
Cc: Fenghua Yu <fenghua.yu@intel.com>
2010-09-28 04:18:51 -07:00
Linus Torvalds
050026feae Merge branch 'x86/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'x86/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  x86: Avoid 'constant_test_bit()' misoptimization due to cast to non-volatile
2010-09-27 21:19:27 -07:00
David S. Miller
01db403cf9 tcp: Fix >4GB writes on 64-bit.
Fixes kernel bugzilla #16603

tcp_sendmsg() truncates iov_len to an 'int' which a 4GB write to write
zero bytes, for example.

There is also the problem higher up of how verify_iovec() works.  It
wants to prevent the total length from looking like an error return
value.

However it does this using 'int', but syscalls return 'long' (and
thus signed 64-bit on 64-bit machines).  So it could trigger
false-positives on 64-bit as written.  So fix it to use 'long'.

Reported-by: Olaf Bonorden <bono@onlinehome.de>
Reported-by: Daniel Büse <dbuese@gmx.de>
Reported-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2010-09-27 20:24:54 -07:00
Dan Rosenberg
252a52aa4f Fix pktcdvd ioctl dev_minor range check
The PKT_CTRL_CMD_STATUS device ioctl retrieves a pointer to a
pktcdvd_device from the global pkt_devs array.  The index into this
array is provided directly by the user and is a signed integer, so the
comparison to ensure that it falls within the bounds of this array will
fail when provided with a negative index.

This can be used to read arbitrary kernel memory or cause a crash due to
an invalid pointer dereference.  This can be exploited by users with
permission to open /dev/pktcdvd/control (on many distributions, this is
readable by group "cdrom").

Signed-off-by: Dan Rosenberg <dan.j.rosenberg@gmail.com>
[ Rather than add a cast, just make the function take the right type -Linus ]
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2010-09-27 16:29:06 -07:00