From: Colin Cross Date: Wed, 29 Jun 2011 20:54:42 +0000 (-0700) Subject: Merge commit 'v3.0-rc5' into android-3.0 X-Git-Tag: firefly_0821_release~7613^2~573 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=e55d4fa96762fd767a3b6d842c904e994db6bb2e;p=firefly-linux-kernel-4.4.55.git Merge commit 'v3.0-rc5' into android-3.0 --- e55d4fa96762fd767a3b6d842c904e994db6bb2e diff --cc drivers/base/power/main.c index 06e43912a973,06f09bf89cb2..4282d442d352 --- a/drivers/base/power/main.c +++ b/drivers/base/power/main.c @@@ -919,11 -888,10 +930,14 @@@ static int __device_suspend(struct devi } End: + dev->power.is_suspended = !error; + + Unlock: device_unlock(dev); + + del_timer_sync(&timer); + destroy_timer_on_stack(&timer); + complete_all(&dev->power.completion); if (error) diff --cc drivers/mmc/card/block.c index ac13768e83c3,f85e42224559..c779503e7578 --- a/drivers/mmc/card/block.c +++ b/drivers/mmc/card/block.c @@@ -1309,11 -1297,11 +1309,14 @@@ static void mmc_blk_remove(struct mmc_c struct mmc_blk_data *md = mmc_get_drvdata(card); mmc_blk_remove_parts(card, md); + mmc_claim_host(card->host); + mmc_blk_part_switch(card, md); + mmc_release_host(card->host); mmc_blk_remove_req(md); mmc_set_drvdata(card, NULL); +#ifdef CONFIG_MMC_BLOCK_DEFERRED_RESUME + mmc_set_bus_resume_policy(card->host, 0); +#endif } #ifdef CONFIG_PM diff --cc mm/shmem.c index 966e2b31fc60,fcedf5464eb7..883e98f78ca9 --- a/mm/shmem.c +++ b/mm/shmem.c @@@ -3030,6 -3028,33 +3037,29 @@@ int shmem_zero_setup(struct vm_area_str if (IS_ERR(file)) return PTR_ERR(file); - if (vma->vm_file) - fput(vma->vm_file); - vma->vm_file = file; - vma->vm_ops = &shmem_vm_ops; - vma->vm_flags |= VM_CAN_NONLINEAR; + shmem_set_file(vma, file); return 0; } + + /** + * shmem_read_mapping_page_gfp - read into page cache, using specified page allocation flags. + * @mapping: the page's address_space + * @index: the page index + * @gfp: the page allocator flags to use if allocating + * + * This behaves as a tmpfs "read_cache_page_gfp(mapping, index, gfp)", + * with any new page allocations done using the specified allocation flags. + * But read_cache_page_gfp() uses the ->readpage() method: which does not + * suit tmpfs, since it may have pages in swapcache, and needs to find those + * for itself; although drivers/gpu/drm i915 and ttm rely upon this support. + * + * Provide a stub for those callers to start using now, then later + * flesh it out to call shmem_getpage() with additional gfp mask, when + * shmem_file_splice_read() is added and shmem_readpage() is removed. + */ + struct page *shmem_read_mapping_page_gfp(struct address_space *mapping, + pgoff_t index, gfp_t gfp) + { + return read_cache_page_gfp(mapping, index, gfp); + } + EXPORT_SYMBOL_GPL(shmem_read_mapping_page_gfp);