Commit Graph

211300 Commits

Author SHA1 Message Date
San Mehat
fdcec72817 lowmemorykiller: Don't try to kill the same pid over and over
Under certain circumstances, a process can take awhile to
handle a sig-kill (especially if it's in a scheduler group with
a very low share ratio). When this occurs, lowmemkiller returns
to vmscan indicating the process memory has been freed - even
though the process is still waiting to die. Since the memory
hasn't actually freed, lowmemkiller is called again shortly after,
and picks the same process to die; regardless of the fact that
it has already been 'scheduled' to die and the memory has already
been reported to vmscan as having been freed.

  Solution is to check fatal_signal_pending() on the selected
task, and if it's already pending destruction return; indicating
to vmscan that no resources were freed on this pass.

Signed-off-by: San Mehat <san@google.com>
2010-09-29 17:49:33 -07:00
Arve Hjønnevåg
3c455b7767 Staging: android: binder: Create dedicated workqueue for binder deferred work
Some drivers flush the global workqueue when closed. This would deadlock if
the last reference to the file was released from the binder.

Change-Id: Ifdabc0b383fecb20836d1bbb9786c632402a14e1
Signed-off-by: Arve Hjønnevåg <arve@android.com>
2010-09-29 17:49:33 -07:00
Mike Lockwood
8ae1b091c3 Staging: android: timed_gpio: Properly discard invalid timeout values.
The timed output device never previously checked the return value of sscanf,
resulting in an uninitialized int being passed to enable() if input value
was invalid.

Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-09-29 17:49:33 -07:00
Mike Lockwood
e2dd99e8e2 USB: gadget: f_mass_storage: Defer handling interface changes until it is safe.
Pulling in some code from file_storage.c, we now handle interface changes
in do_set_config(), which is now not called until any pending requests have
been successfully completed or cancelled.

This fixes a race condition that resulted in usb_ep_free_request() being called
while the request is still busy.

Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-09-29 17:49:33 -07:00
Arve Hjønnevåg
0274cdc300 android-common: include linux/slab.h
Change-Id: Ib9655177bfaf00bd5682e1ac0d7e813e16a47eea
2010-09-29 17:49:32 -07:00
Colin Cross
8db6b353ae android-common: Fix slab.h includes for 2.6.34-rc4 2010-09-29 17:49:32 -07:00
Arve Hjønnevåg
cf23783c7a rtc: alarm: Don't use save_time_delta.
Change-Id: Iaefeca497de02fe36b7f5d79075912f6e349ec53
Signed-off-by: Arve Hjønnevåg <arve@android.com>
2010-09-29 17:49:32 -07:00
Arve Hjønnevåg
bcb0d01510 binder: Move debugging information from procfs to debugfs
Change-Id: Ia0f9c8cec68054c6600a799ef864ebf1185c93ab
Signed-off-by: Arve Hjønnevåg <arve@android.com>
2010-09-29 17:49:32 -07:00
Arve Hjønnevåg
a0cc646e7e binder: Use seq_file for debug interface.
Change-Id: I6e9c064ba024329099cb833b2ae9ab43c2ad8c6d
Signed-off-by: Arve Hjønnevåg <arve@android.com>
2010-09-29 17:49:32 -07:00
Colin Cross
0f1d4d7437 fs: partitions: Fix warnings in fs/partitions/check.c
Change-Id: I4398ace0c55d4833b1fcbb7a4e71ab8f0b1b044a
Signed-off-by: Colin Cross <ccross@android.com>
2010-09-29 17:49:32 -07:00
Nick Pelly
a43d3f835f Bluetooth: Hack: Don't dereference null pointer.
This avoids the S305 panic during incoming connection.

S305 sends PSM 25 L2CAP connection request before the L2CAP info response.
When we receive that info response we crash on null pointer here.

Bug: 2127637
Change-Id: Ib637516251f46fa9a9c87ac015dc2f27df5a27fd
Signed-off-by: Nick Pelly <npelly@google.com>
2010-09-29 17:49:31 -07:00
Arve Hjønnevåg
372a94c2ed USB: gadget: android: mass_storage: Use spin_lock_irqsave/spin_unlock_irqrestore
The old code did not allways disable interrupts when called from thread
context, but tried to lock the same spinlock from interrupt context.

This was merged from a change to drivers/usb/function/mass_storage.c
in the android-msm-2.6.29 branch.

Signed-off-by: Arve Hjønnevåg <arve@android.com>
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-09-29 17:49:31 -07:00
Dmitry Shmidt
2673694e6e wlan: Extract generic wlan platform data from tiwlan specific header
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2010-09-29 17:49:31 -07:00
Mike Lockwood
437ae6a946 USB: gadget: android: check for null _android_dev in android_register_function()
This fixes a load ordering issue that occurred if a function driver loads before
the android gadget driver is initialized.

Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-09-29 17:49:31 -07:00
Iliyan Malchev
fcf1d6043f apanic: make APANIC_LABEL depend on APANIC
Signed-off-by: Iliyan Malchev <malchev@google.com>
2010-09-29 17:49:31 -07:00
Mike Lockwood
b0d8ef8a45 USB: gadget: f_mass_storage: Flush writes after every 4 MB.
This avoids excessive caching at the block level layer when copying large
files to the storage device.

Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-09-29 17:49:31 -07:00
Mike Lockwood
82c7dd9e74 USB: gadget: f_rndis: Add platform data for RNDIS vendor ID and MAC address.
This fixes a kernel panic in rndis.c when receiving the
OID_GEN_VENDOR_DESCRIPTION command.

Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-09-29 17:49:30 -07:00
Nick Pelly
e4772bff4a Bluetooth: Use non-flushable pb flag by default for ACL data on capable chipsets.
With Bluetooth 2.1 ACL packets can be flushable or non-flushable. This commit
makes ACL data packets non-flushable by default on compatible chipsets, and
adds the L2CAP_LM_FLUSHABLE socket option to explicitly request flushable ACL
data packets for a given L2CAP socket. This is useful for A2DP data which can
be safely discarded if it can not be delivered within a short time (while
other ACL data should not be discarded).

Note that making ACL data flushable has no effect unless the automatic flush
timeout for that ACL link is changed from its default of 0 (infinite).

Change-Id: Ie3d4befdeaefb8c979de7ae603ff5ec462b3483c
Signed-off-by: Nick Pelly <npelly@google.com>
2010-09-29 17:49:30 -07:00
Nick Pelly
a573f82deb Revert "Bluetooth: Introduce L2CAP_LM_FLUSHABLE to allow flushing of ACL packets."
This reverts commit d7897fd1e9.

Change-Id: I3401550b6dc97b683104e9fdac30a617a2db8c8e
Signed-off-by: Nick Pelly <npelly@google.com>
2010-09-29 17:49:30 -07:00
Dima Zavin
d5fb3c725b pmem: Add cache flush ioctl for pmem buffers
Change-Id: I9156bad829e8c65087f122b48cc57638902fab12
Signed-off-by: Dima Zavin <dima@android.com>
2010-09-29 17:49:30 -07:00
Mike Lockwood
d3d0cbff72 USB: gadget: composite: Don't increment interface number for alt settings.
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-09-29 17:49:30 -07:00
Mike Lockwood
af1f674f09 USB: gadget: composite: Don't call set_alt() on functions that are hidden.
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-09-29 17:49:30 -07:00
Nick Pelly
6982729abe Bluetooth: Allow SCO/eSCO packet type selection for outgoing SCO connections.
__u16 sco_pkt_type is introduced to struct sockaddr_sco. It allows bitwise
selection of SCO/eSCO packet types. Currently those bits are:

0x0001 HV1 may be used.
0x0002 HV2 may be used.
0x0004 HV3 may be used.
0x0008 EV3 may be used.
0x0010 EV4 may be used.
0x0020 EV5 may be used.
0x0040 2-EV3 may be used.
0x0080 3-EV3 may be used.
0x0100 2-EV5 may be used.
0x0200 3-EV5 may be used.

This is similar to the Packet Type parameter in the HCI Setup Synchronous
Connection Command, except that we are not reversing the logic on the EDR bits.
This makes the use of sco_pkt_tpye forward portable for the use case of
white-listing packet types, which we expect will be the primary use case.

If sco_pkt_type is zero, or userspace uses the old struct sockaddr_sco,
then the default behavior is to allow all packet types.

Packet type selection is just a request made to the Bluetooth chipset, and
it is up to the link manager on the chipset to negiotiate and decide on the
actual packet types used. Furthermore, when a SCO/eSCO connection is eventually
made there is no way for the host stack to determine which packet type was used
(however it is possible to get the link type of SCO or eSCO).

sco_pkt_type is ignored for incoming SCO connections. It is possible
to add this in the future as a parameter to the Accept Synchronous Connection
Command, however its a little trickier because the kernel does not
currently preserve sockaddr_sco data between userspace calls to accept().

The most common use for sco_pkt_type will be to white-list only SCO packets,
which can be done with the hci.h constant SCO_ESCO_MASK.

This patch is motivated by broken Bluetooth carkits such as the Motorolo
HF850 (it claims to support eSCO, but will actually reject eSCO connections
after 5 seconds) and the 2007/2008 Infiniti G35/37 (fails to route audio
if a 2-EV5 packet type is negiotiated). With this patch userspace can maintain
a list of compatible packet types to workaround remote devices such as these.

Based on a patch by Marcel Holtmann.

Change-Id: I304d8fda5b4145254820a3003820163bf53de5a5
Signed-off-by: Nick Pelly <npelly@google.com>
2010-09-29 17:49:29 -07:00
Nick Pelly
702c14e404 Revert "Bluetooth: Change RFCOMM to use BT_CONNECT2 for BT_DEFER_SETUP"
This reverts commit 8bf4794174.

Change-Id: Ieaeed6866996446e0392e387b77b446361f23d46
Signed-off-by: Nick Pelly <npelly@google.com>
2010-09-29 17:49:29 -07:00
Nick Pelly
b297a5aab0 Revert "Bluetooth: Fix removing of RFCOMM DLC timer with DEFER_SETUP"
This reverts commit e2139b3272.

Change-Id: Id948d5860840aaf85eca7d8894a7bb3192f0bb47
Signed-off-by: Nick Pelly <npelly@google.com>
2010-09-29 17:49:29 -07:00
Mike Lockwood
e8e9925629 USB: gadget: android: Disable UMS when RNDIS ethernet is active.
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-09-29 17:49:29 -07:00
San Mehat
7bb5d8d73a android: logger: Add new system log for framework/system log messages
Signed-off-by: San Mehat <san@google.com>
2010-09-29 17:49:29 -07:00
Mike Chan
4006c25811 power: wakelock: Print active wakelocks when has_wake_lock() is called
When DEBUG_SUSPEND is enabled print active wakelocks when we check
if there are any active wakelocks.

In print_active_locks(), print expired wakelocks if DEBUG_EXPIRE is enabled

Change-Id: Ib1cb795555e71ff23143a2bac7c8a58cbce16547
Signed-off-by: Mike Chan <mike@android.com>
2010-09-29 17:49:28 -07:00
Mike Lockwood
20098313ba usb: gadget: u_ether: Remove warning from gether_disconnect()
gether_disconnect() is always called before gether_connect() by the different
USB ethernet functions, so this warning was firing during normal operation.

Change-Id: I178cc7d1f67e9e87ac2e99c6674c4db8fcddf4a0
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-09-29 17:49:28 -07:00
Nick Pelly
07c478e4d5 Revert "Bluetooth: Fix rejected connection not disconnecting ACL link"
This reverts commit 9e726b1742.

Change-Id: I3bc2e4caa2a0e0c36b9c7de4a09b03276adae4e1
Signed-off-by: Nick Pelly <npelly@google.com>
2010-09-29 17:49:28 -07:00
Steve Kondik
565e9273ae Add USB_ANDROID_RNDIS_WCEIS option.
Change-Id: I85973ebfcbfae6b401fb8b402842309c72655149
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-09-29 17:49:28 -07:00
Dima Zavin
f14c2ef5f1 mtd: nand: Allow NAND chip ids to be included standalone.
Lets non-standard NAND drivers take advantage of known NAND
chip information.

Change-Id: I87e2fcb40b07b2ec91e102f1fa7f419a4b4af0a3
Signed-off-by: Dima Zavin <dima@android.com>
2010-09-29 17:49:28 -07:00
Mike Lockwood
875ca01936 USB: gadget: android: Fix special case for RNDIS ethernet function
Only set device descriptor bDeviceClass field to USB_CLASS_COMM when
the RNDIS function is actually enabled.

Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-09-29 17:49:28 -07:00
Mike Lockwood
07daf77545 USB: composite: Compute interface numbers correctly when functions are hidden.
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-09-29 17:49:27 -07:00
Mike Lockwood
70b4a7eed9 USB: gadget: android: Specify USB_CLASS_COMM in device descriptor if using RNDIS
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-09-29 17:49:27 -07:00
Mike Lockwood
892533d3ee USB: gadget: Disable RNDIS function by default if CONFIG_USB_ANDROID_RNDIS is set
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-09-29 17:49:27 -07:00
Mike Lockwood
5466a81f1d USB: android: Use composite class driver for enabling and disabling functions
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-09-29 17:49:27 -07:00
Mike Lockwood
2db5cd8271 USB: composite: Add class driver for enabling and disabling USB functions.
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-09-29 17:49:27 -07:00
San Mehat
ef148753e8 mmc: core: Release delayed mmc work wakelock after deep disable
Signed-off-by: San Mehat <san@google.com>
2010-09-29 17:49:27 -07:00
Brian Swetland
f00c8f71da HACK stay compatible with the emulated TLS register HACK
Change-Id: I06453a7ce78a3d201f3cd5145d3000b0d9ba11fe
2010-09-29 17:49:26 -07:00
San Mehat
20287c3c89 block: genhd: Add disk/partition specific uevent callbacks for partition info
For disk devices, a new uevent parameter 'NPARTS' specifies the number
of partitions detected by the kernel. Partition devices get 'PARTN' which
specifies the partitions index in the table.

Signed-off-by: San Mehat <san@google.com>
2010-09-29 17:49:26 -07:00
Arve Hjønnevåg
56fbe31b1e Staging: android: timed_gpio: Request gpios.
Change-Id: I9e98250a04e5505ce2db2edd355e8fdf8391cabd
Signed-off-by: Arve Hjønnevåg <arve@android.com>
2010-09-29 17:49:26 -07:00
Arve Hjønnevåg
0da060925c Staging: android: ram_console: Start ram console earlier
Change-Id: I15d809d8c3002e5bf397a2b154e3803ea0e73642
Signed-off-by: Arve Hjønnevåg <arve@android.com>
2010-09-29 17:49:26 -07:00
Tom Zhu
6accfdda28 misc: apanic: erase kpanic when no data
erase kpanic partition when there is no data(console and thread)

Signed-off-by: Tom Zhu <a2289c@android-hal-04.(none)>
Signed-off-by: San Mehat <san@google.com>
2010-09-29 17:49:26 -07:00
Tom Zhu
9b945ab642 misc: apanic: bad block handling
Add bad block handling in apanic

Signed-off-by: Tom Zhu <ling.zhu@motorola.com>
Signed-off-by: San Mehat <san@google.com>

misc: apanic: Improved bad-block / watchdog handling

1. handle cases that there is no more good blocks
2. touch softlockup watchdog at the start of apanic
3. change unsigned char get_bb() to unsigned int get_bb()
4. return idx instead of rc2, to keep the previous written pages.

Signed-off-by: Tom Zhu <ling.zhu@motorola.com>
Signed-off-by: San Mehat <san@google.com>
2010-09-29 17:49:26 -07:00
San Mehat
5212055c49 ramconsole/apanic: Ensure ramconsole does not get cluttered by apanic threads
Signed-off-by: San Mehat <san@google.com>
2010-09-29 17:49:26 -07:00
San Mehat
f75e972683 drivers: apanic: Android kernel panic handler.
This driver triggers when the kernel panics and attempts to
write critical debug data to the flash.

Signed-off-by: San Mehat <san@google.com>

drivers: apanic: checkpatch fixes

Signed-off-by: San Mehat <san@google.com>

apanic: Fix a few cases of calling non-atomic things from atomic

We need to pay special care to not enrage cond_resched(), and the
base nand bb stuff calls schedule() so thats out.

Signed-off-by: San Mehat <san@google.com>
2010-09-29 17:49:25 -07:00
San Mehat
ed6c5eceb8 proc: smaps: Allow smaps access for CAP_SYS_RESOURCE
Signed-off-by: San Mehat <san@google.com>
2010-09-29 17:49:24 -07:00
San Mehat
755d3f1c9b kernel: printk: Add non exported function for clearing the log ring buffer
Signed-off-by: San Mehat <san@google.com>
2010-09-29 17:49:24 -07:00
San Mehat
d8858c010b [ARM] process: Add display of memory around registers when displaying regs.
This is extremely useful in diagnosing remote crashes, and is based heavily
on original work by <md@google.com>.

Signed-off-by: San Mehat <san@google.com>
Cc: Michael Davidson <md@google.com>

[ARM] process: Use uber-safe probe_kernel_address() to read mem when dumping.

This prevents the dump from taking pagefaults / external aborts.

Signed-off-by: San Mehat <san@google.com>
2010-09-29 17:49:24 -07:00