mirror of
https://github.com/ukui/kernel.git
synced 2026-03-09 10:07:04 -07:00
Merge branch 'akpm' (patches from Andrew Morton)
Merge misc fixes from Andrew Morton. * emailed patches from Andrew Morton akpm@linux-foundation.org>: mm: page_alloc: exempt GFP_THISNODE allocations from zone fairness mm: numa: bugfix for LAST_CPUPID_NOT_IN_PAGE_FLAGS MAINTAINERS: add and correct types of some "T:" entries MAINTAINERS: use tab for separator rapidio/tsi721: fix tasklet termination in dma channel release hfsplus: fix remount issue zram: avoid null access when fail to alloc meta sh: prefix sh-specific "CCR" and "CCR2" by "SH_" ocfs2: fix quota file corruption drivers/rtc/rtc-s3c.c: fix incorrect way of save/restore of S3C2410_TICNT for TYPE_S3C64XX kallsyms: fix absolute addresses for kASLR scripts/gen_initramfs_list.sh: fix flags for initramfs LZ4 compression mm: include VM_MIXEDMAP flag in the VM_SPECIAL list to avoid m(un)locking memcg: reparent charges of children before processing parent memcg: fix endless loop in __mem_cgroup_iter_next() lib/radix-tree.c: swapoff tmpfs radix_tree: remember to rcu_read_unlock dma debug: account for cachelines and read-only mappings in overlap tracking mm: close PageTail race MAINTAINERS: EDAC: add Mauro and Borislav as interim patch collectors
This commit is contained in:
103
MAINTAINERS
103
MAINTAINERS
@@ -73,7 +73,8 @@ Descriptions of section entries:
|
||||
L: Mailing list that is relevant to this area
|
||||
W: Web-page with status/info
|
||||
Q: Patchwork web based patch tracking system site
|
||||
T: SCM tree type and location. Type is one of: git, hg, quilt, stgit, topgit.
|
||||
T: SCM tree type and location.
|
||||
Type is one of: git, hg, quilt, stgit, topgit
|
||||
S: Status, one of the following:
|
||||
Supported: Someone is actually paid to look after this.
|
||||
Maintained: Someone actually looks after it.
|
||||
@@ -1612,11 +1613,11 @@ S: Maintained
|
||||
F: drivers/net/wireless/atmel*
|
||||
|
||||
ATTO EXPRESSSAS SAS/SATA RAID SCSI DRIVER
|
||||
M: Bradley Grove <linuxdrivers@attotech.com>
|
||||
L: linux-scsi@vger.kernel.org
|
||||
W: http://www.attotech.com
|
||||
S: Supported
|
||||
F: drivers/scsi/esas2r
|
||||
M: Bradley Grove <linuxdrivers@attotech.com>
|
||||
L: linux-scsi@vger.kernel.org
|
||||
W: http://www.attotech.com
|
||||
S: Supported
|
||||
F: drivers/scsi/esas2r
|
||||
|
||||
AUDIT SUBSYSTEM
|
||||
M: Eric Paris <eparis@redhat.com>
|
||||
@@ -2159,7 +2160,7 @@ F: Documentation/zh_CN/
|
||||
|
||||
CHIPIDEA USB HIGH SPEED DUAL ROLE CONTROLLER
|
||||
M: Peter Chen <Peter.Chen@freescale.com>
|
||||
T: git://github.com/hzpeterchen/linux-usb.git
|
||||
T: git git://github.com/hzpeterchen/linux-usb.git
|
||||
L: linux-usb@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/usb/chipidea/
|
||||
@@ -2179,9 +2180,9 @@ S: Supported
|
||||
F: drivers/net/ethernet/cisco/enic/
|
||||
|
||||
CISCO VIC LOW LATENCY NIC DRIVER
|
||||
M: Upinder Malhi <umalhi@cisco.com>
|
||||
S: Supported
|
||||
F: drivers/infiniband/hw/usnic
|
||||
M: Upinder Malhi <umalhi@cisco.com>
|
||||
S: Supported
|
||||
F: drivers/infiniband/hw/usnic
|
||||
|
||||
CIRRUS LOGIC EP93XX ETHERNET DRIVER
|
||||
M: Hartley Sweeten <hsweeten@visionengravers.com>
|
||||
@@ -2378,20 +2379,20 @@ F: drivers/cpufreq/arm_big_little.c
|
||||
F: drivers/cpufreq/arm_big_little_dt.c
|
||||
|
||||
CPUIDLE DRIVER - ARM BIG LITTLE
|
||||
M: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
|
||||
M: Daniel Lezcano <daniel.lezcano@linaro.org>
|
||||
L: linux-pm@vger.kernel.org
|
||||
L: linux-arm-kernel@lists.infradead.org
|
||||
T: git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git
|
||||
S: Maintained
|
||||
F: drivers/cpuidle/cpuidle-big_little.c
|
||||
M: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
|
||||
M: Daniel Lezcano <daniel.lezcano@linaro.org>
|
||||
L: linux-pm@vger.kernel.org
|
||||
L: linux-arm-kernel@lists.infradead.org
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git
|
||||
S: Maintained
|
||||
F: drivers/cpuidle/cpuidle-big_little.c
|
||||
|
||||
CPUIDLE DRIVERS
|
||||
M: Rafael J. Wysocki <rjw@rjwysocki.net>
|
||||
M: Daniel Lezcano <daniel.lezcano@linaro.org>
|
||||
L: linux-pm@vger.kernel.org
|
||||
S: Maintained
|
||||
T: git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git
|
||||
F: drivers/cpuidle/*
|
||||
F: include/linux/cpuidle.h
|
||||
|
||||
@@ -2458,9 +2459,9 @@ S: Maintained
|
||||
F: sound/pci/cs5535audio/
|
||||
|
||||
CW1200 WLAN driver
|
||||
M: Solomon Peachy <pizza@shaftnet.org>
|
||||
S: Maintained
|
||||
F: drivers/net/wireless/cw1200/
|
||||
M: Solomon Peachy <pizza@shaftnet.org>
|
||||
S: Maintained
|
||||
F: drivers/net/wireless/cw1200/
|
||||
|
||||
CX18 VIDEO4LINUX DRIVER
|
||||
M: Andy Walls <awalls@md.metrocast.net>
|
||||
@@ -3095,6 +3096,8 @@ F: fs/ecryptfs/
|
||||
|
||||
EDAC-CORE
|
||||
M: Doug Thompson <dougthompson@xmission.com>
|
||||
M: Borislav Petkov <bp@alien8.de>
|
||||
M: Mauro Carvalho Chehab <m.chehab@samsung.com>
|
||||
L: linux-edac@vger.kernel.org
|
||||
W: bluesmoke.sourceforge.net
|
||||
S: Supported
|
||||
@@ -4914,7 +4917,7 @@ F: drivers/staging/ktap/
|
||||
KCONFIG
|
||||
M: "Yann E. MORIN" <yann.morin.1998@free.fr>
|
||||
L: linux-kbuild@vger.kernel.org
|
||||
T: git://gitorious.org/linux-kconfig/linux-kconfig
|
||||
T: git git://gitorious.org/linux-kconfig/linux-kconfig
|
||||
S: Maintained
|
||||
F: Documentation/kbuild/kconfig-language.txt
|
||||
F: scripts/kconfig/
|
||||
@@ -5471,11 +5474,11 @@ S: Maintained
|
||||
F: drivers/media/tuners/m88ts2022*
|
||||
|
||||
MA901 MASTERKIT USB FM RADIO DRIVER
|
||||
M: Alexey Klimov <klimov.linux@gmail.com>
|
||||
L: linux-media@vger.kernel.org
|
||||
T: git git://linuxtv.org/media_tree.git
|
||||
S: Maintained
|
||||
F: drivers/media/radio/radio-ma901.c
|
||||
M: Alexey Klimov <klimov.linux@gmail.com>
|
||||
L: linux-media@vger.kernel.org
|
||||
T: git git://linuxtv.org/media_tree.git
|
||||
S: Maintained
|
||||
F: drivers/media/radio/radio-ma901.c
|
||||
|
||||
MAC80211
|
||||
M: Johannes Berg <johannes@sipsolutions.net>
|
||||
@@ -5636,7 +5639,7 @@ F: drivers/scsi/megaraid/
|
||||
|
||||
MELLANOX ETHERNET DRIVER (mlx4_en)
|
||||
M: Amir Vadai <amirv@mellanox.com>
|
||||
L: netdev@vger.kernel.org
|
||||
L: netdev@vger.kernel.org
|
||||
S: Supported
|
||||
W: http://www.mellanox.com
|
||||
Q: http://patchwork.ozlabs.org/project/netdev/list/
|
||||
@@ -5677,7 +5680,7 @@ F: include/linux/mtd/
|
||||
F: include/uapi/mtd/
|
||||
|
||||
MEN A21 WATCHDOG DRIVER
|
||||
M: Johannes Thumshirn <johannes.thumshirn@men.de>
|
||||
M: Johannes Thumshirn <johannes.thumshirn@men.de>
|
||||
L: linux-watchdog@vger.kernel.org
|
||||
S: Supported
|
||||
F: drivers/watchdog/mena21_wdt.c
|
||||
@@ -5733,20 +5736,20 @@ L: linux-rdma@vger.kernel.org
|
||||
W: http://www.mellanox.com
|
||||
Q: http://patchwork.ozlabs.org/project/netdev/list/
|
||||
Q: http://patchwork.kernel.org/project/linux-rdma/list/
|
||||
T: git://openfabrics.org/~eli/connect-ib.git
|
||||
T: git git://openfabrics.org/~eli/connect-ib.git
|
||||
S: Supported
|
||||
F: drivers/net/ethernet/mellanox/mlx5/core/
|
||||
F: include/linux/mlx5/
|
||||
|
||||
Mellanox MLX5 IB driver
|
||||
M: Eli Cohen <eli@mellanox.com>
|
||||
L: linux-rdma@vger.kernel.org
|
||||
W: http://www.mellanox.com
|
||||
Q: http://patchwork.kernel.org/project/linux-rdma/list/
|
||||
T: git://openfabrics.org/~eli/connect-ib.git
|
||||
S: Supported
|
||||
F: include/linux/mlx5/
|
||||
F: drivers/infiniband/hw/mlx5/
|
||||
M: Eli Cohen <eli@mellanox.com>
|
||||
L: linux-rdma@vger.kernel.org
|
||||
W: http://www.mellanox.com
|
||||
Q: http://patchwork.kernel.org/project/linux-rdma/list/
|
||||
T: git git://openfabrics.org/~eli/connect-ib.git
|
||||
S: Supported
|
||||
F: include/linux/mlx5/
|
||||
F: drivers/infiniband/hw/mlx5/
|
||||
|
||||
MODULE SUPPORT
|
||||
M: Rusty Russell <rusty@rustcorp.com.au>
|
||||
@@ -8700,17 +8703,17 @@ S: Maintained
|
||||
F: drivers/media/radio/radio-raremono.c
|
||||
|
||||
THERMAL
|
||||
M: Zhang Rui <rui.zhang@intel.com>
|
||||
M: Eduardo Valentin <eduardo.valentin@ti.com>
|
||||
L: linux-pm@vger.kernel.org
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux.git
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal.git
|
||||
Q: https://patchwork.kernel.org/project/linux-pm/list/
|
||||
S: Supported
|
||||
F: drivers/thermal/
|
||||
F: include/linux/thermal.h
|
||||
F: include/linux/cpu_cooling.h
|
||||
F: Documentation/devicetree/bindings/thermal/
|
||||
M: Zhang Rui <rui.zhang@intel.com>
|
||||
M: Eduardo Valentin <eduardo.valentin@ti.com>
|
||||
L: linux-pm@vger.kernel.org
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux.git
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal.git
|
||||
Q: https://patchwork.kernel.org/project/linux-pm/list/
|
||||
S: Supported
|
||||
F: drivers/thermal/
|
||||
F: include/linux/thermal.h
|
||||
F: include/linux/cpu_cooling.h
|
||||
F: Documentation/devicetree/bindings/thermal/
|
||||
|
||||
THINGM BLINK(1) USB RGB LED DRIVER
|
||||
M: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
|
||||
@@ -9812,7 +9815,7 @@ ZR36067 VIDEO FOR LINUX DRIVER
|
||||
L: mjpeg-users@lists.sourceforge.net
|
||||
L: linux-media@vger.kernel.org
|
||||
W: http://mjpeg.sourceforge.net/driver-zoran/
|
||||
T: Mercurial http://linuxtv.org/hg/v4l-dvb
|
||||
T: hg http://linuxtv.org/hg/v4l-dvb
|
||||
S: Odd Fixes
|
||||
F: drivers/media/pci/zoran/
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
#define SH_CACHE_ASSOC 8
|
||||
|
||||
#if defined(CONFIG_CPU_SUBTYPE_SH7619)
|
||||
#define CCR 0xffffffec
|
||||
#define SH_CCR 0xffffffec
|
||||
|
||||
#define CCR_CACHE_CE 0x01 /* Cache enable */
|
||||
#define CCR_CACHE_WT 0x02 /* CCR[bit1=1,bit2=1] */
|
||||
|
||||
@@ -17,8 +17,8 @@
|
||||
#define SH_CACHE_COMBINED 4
|
||||
#define SH_CACHE_ASSOC 8
|
||||
|
||||
#define CCR 0xfffc1000 /* CCR1 */
|
||||
#define CCR2 0xfffc1004
|
||||
#define SH_CCR 0xfffc1000 /* CCR1 */
|
||||
#define SH_CCR2 0xfffc1004
|
||||
|
||||
/*
|
||||
* Most of the SH-2A CCR1 definitions resemble the SH-4 ones. All others not
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
#define SH_CACHE_COMBINED 4
|
||||
#define SH_CACHE_ASSOC 8
|
||||
|
||||
#define CCR 0xffffffec /* Address of Cache Control Register */
|
||||
#define SH_CCR 0xffffffec /* Address of Cache Control Register */
|
||||
|
||||
#define CCR_CACHE_CE 0x01 /* Cache Enable */
|
||||
#define CCR_CACHE_WT 0x02 /* Write-Through (for P0,U0,P3) (else writeback) */
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
#define SH_CACHE_COMBINED 4
|
||||
#define SH_CACHE_ASSOC 8
|
||||
|
||||
#define CCR 0xff00001c /* Address of Cache Control Register */
|
||||
#define SH_CCR 0xff00001c /* Address of Cache Control Register */
|
||||
#define CCR_CACHE_OCE 0x0001 /* Operand Cache Enable */
|
||||
#define CCR_CACHE_WT 0x0002 /* Write-Through (for P0,U0,P3) (else writeback)*/
|
||||
#define CCR_CACHE_CB 0x0004 /* Copy-Back (for P1) (else writethrough) */
|
||||
|
||||
@@ -112,7 +112,7 @@ static void cache_init(void)
|
||||
unsigned long ccr, flags;
|
||||
|
||||
jump_to_uncached();
|
||||
ccr = __raw_readl(CCR);
|
||||
ccr = __raw_readl(SH_CCR);
|
||||
|
||||
/*
|
||||
* At this point we don't know whether the cache is enabled or not - a
|
||||
@@ -189,7 +189,7 @@ static void cache_init(void)
|
||||
|
||||
l2_cache_init();
|
||||
|
||||
__raw_writel(flags, CCR);
|
||||
__raw_writel(flags, SH_CCR);
|
||||
back_to_cached();
|
||||
}
|
||||
#else
|
||||
|
||||
@@ -36,7 +36,7 @@ static int cache_seq_show(struct seq_file *file, void *iter)
|
||||
*/
|
||||
jump_to_uncached();
|
||||
|
||||
ccr = __raw_readl(CCR);
|
||||
ccr = __raw_readl(SH_CCR);
|
||||
if ((ccr & CCR_CACHE_ENABLE) == 0) {
|
||||
back_to_cached();
|
||||
|
||||
|
||||
@@ -63,9 +63,9 @@ static void sh2__flush_invalidate_region(void *start, int size)
|
||||
local_irq_save(flags);
|
||||
jump_to_uncached();
|
||||
|
||||
ccr = __raw_readl(CCR);
|
||||
ccr = __raw_readl(SH_CCR);
|
||||
ccr |= CCR_CACHE_INVALIDATE;
|
||||
__raw_writel(ccr, CCR);
|
||||
__raw_writel(ccr, SH_CCR);
|
||||
|
||||
back_to_cached();
|
||||
local_irq_restore(flags);
|
||||
|
||||
@@ -134,7 +134,8 @@ static void sh2a__flush_invalidate_region(void *start, int size)
|
||||
|
||||
/* If there are too many pages then just blow the cache */
|
||||
if (((end - begin) >> PAGE_SHIFT) >= MAX_OCACHE_PAGES) {
|
||||
__raw_writel(__raw_readl(CCR) | CCR_OCACHE_INVALIDATE, CCR);
|
||||
__raw_writel(__raw_readl(SH_CCR) | CCR_OCACHE_INVALIDATE,
|
||||
SH_CCR);
|
||||
} else {
|
||||
for (v = begin; v < end; v += L1_CACHE_BYTES)
|
||||
sh2a_invalidate_line(CACHE_OC_ADDRESS_ARRAY, v);
|
||||
@@ -167,7 +168,8 @@ static void sh2a_flush_icache_range(void *args)
|
||||
/* I-Cache invalidate */
|
||||
/* If there are too many pages then just blow the cache */
|
||||
if (((end - start) >> PAGE_SHIFT) >= MAX_ICACHE_PAGES) {
|
||||
__raw_writel(__raw_readl(CCR) | CCR_ICACHE_INVALIDATE, CCR);
|
||||
__raw_writel(__raw_readl(SH_CCR) | CCR_ICACHE_INVALIDATE,
|
||||
SH_CCR);
|
||||
} else {
|
||||
for (v = start; v < end; v += L1_CACHE_BYTES)
|
||||
sh2a_invalidate_line(CACHE_IC_ADDRESS_ARRAY, v);
|
||||
|
||||
@@ -133,9 +133,9 @@ static void flush_icache_all(void)
|
||||
jump_to_uncached();
|
||||
|
||||
/* Flush I-cache */
|
||||
ccr = __raw_readl(CCR);
|
||||
ccr = __raw_readl(SH_CCR);
|
||||
ccr |= CCR_CACHE_ICI;
|
||||
__raw_writel(ccr, CCR);
|
||||
__raw_writel(ccr, SH_CCR);
|
||||
|
||||
/*
|
||||
* back_to_cached() will take care of the barrier for us, don't add
|
||||
|
||||
@@ -19,7 +19,7 @@ void __init shx3_cache_init(void)
|
||||
{
|
||||
unsigned int ccr;
|
||||
|
||||
ccr = __raw_readl(CCR);
|
||||
ccr = __raw_readl(SH_CCR);
|
||||
|
||||
/*
|
||||
* If we've got cache aliases, resolve them in hardware.
|
||||
@@ -40,5 +40,5 @@ void __init shx3_cache_init(void)
|
||||
ccr |= CCR_CACHE_IBE;
|
||||
#endif
|
||||
|
||||
writel_uncached(ccr, CCR);
|
||||
writel_uncached(ccr, SH_CCR);
|
||||
}
|
||||
|
||||
@@ -285,8 +285,8 @@ void __init cpu_cache_init(void)
|
||||
{
|
||||
unsigned int cache_disabled = 0;
|
||||
|
||||
#ifdef CCR
|
||||
cache_disabled = !(__raw_readl(CCR) & CCR_CACHE_ENABLE);
|
||||
#ifdef SH_CCR
|
||||
cache_disabled = !(__raw_readl(SH_CCR) & CCR_CACHE_ENABLE);
|
||||
#endif
|
||||
|
||||
compute_alias(&boot_cpu_data.icache);
|
||||
|
||||
@@ -874,7 +874,7 @@ bio_pageinc(struct bio *bio)
|
||||
/* Non-zero page count for non-head members of
|
||||
* compound pages is no longer allowed by the kernel.
|
||||
*/
|
||||
page = compound_trans_head(bv.bv_page);
|
||||
page = compound_head(bv.bv_page);
|
||||
atomic_inc(&page->_count);
|
||||
}
|
||||
}
|
||||
@@ -887,7 +887,7 @@ bio_pagedec(struct bio *bio)
|
||||
struct bvec_iter iter;
|
||||
|
||||
bio_for_each_segment(bv, bio, iter) {
|
||||
page = compound_trans_head(bv.bv_page);
|
||||
page = compound_head(bv.bv_page);
|
||||
atomic_dec(&page->_count);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -612,6 +612,8 @@ static ssize_t disksize_store(struct device *dev,
|
||||
|
||||
disksize = PAGE_ALIGN(disksize);
|
||||
meta = zram_meta_alloc(disksize);
|
||||
if (!meta)
|
||||
return -ENOMEM;
|
||||
down_write(&zram->init_lock);
|
||||
if (zram->init_done) {
|
||||
up_write(&zram->init_lock);
|
||||
|
||||
@@ -678,6 +678,7 @@ struct tsi721_bdma_chan {
|
||||
struct list_head free_list;
|
||||
dma_cookie_t completed_cookie;
|
||||
struct tasklet_struct tasklet;
|
||||
bool active;
|
||||
};
|
||||
|
||||
#endif /* CONFIG_RAPIDIO_DMA_ENGINE */
|
||||
|
||||
@@ -206,8 +206,8 @@ void tsi721_bdma_handler(struct tsi721_bdma_chan *bdma_chan)
|
||||
{
|
||||
/* Disable BDMA channel interrupts */
|
||||
iowrite32(0, bdma_chan->regs + TSI721_DMAC_INTE);
|
||||
|
||||
tasklet_schedule(&bdma_chan->tasklet);
|
||||
if (bdma_chan->active)
|
||||
tasklet_schedule(&bdma_chan->tasklet);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PCI_MSI
|
||||
@@ -562,7 +562,7 @@ static int tsi721_alloc_chan_resources(struct dma_chan *dchan)
|
||||
}
|
||||
#endif /* CONFIG_PCI_MSI */
|
||||
|
||||
tasklet_enable(&bdma_chan->tasklet);
|
||||
bdma_chan->active = true;
|
||||
tsi721_bdma_interrupt_enable(bdma_chan, 1);
|
||||
|
||||
return bdma_chan->bd_num - 1;
|
||||
@@ -576,9 +576,7 @@ err_out:
|
||||
static void tsi721_free_chan_resources(struct dma_chan *dchan)
|
||||
{
|
||||
struct tsi721_bdma_chan *bdma_chan = to_tsi721_chan(dchan);
|
||||
#ifdef CONFIG_PCI_MSI
|
||||
struct tsi721_device *priv = to_tsi721(dchan->device);
|
||||
#endif
|
||||
LIST_HEAD(list);
|
||||
|
||||
dev_dbg(dchan->device->dev, "%s: Entry\n", __func__);
|
||||
@@ -589,14 +587,25 @@ static void tsi721_free_chan_resources(struct dma_chan *dchan)
|
||||
BUG_ON(!list_empty(&bdma_chan->active_list));
|
||||
BUG_ON(!list_empty(&bdma_chan->queue));
|
||||
|
||||
tasklet_disable(&bdma_chan->tasklet);
|
||||
tsi721_bdma_interrupt_enable(bdma_chan, 0);
|
||||
bdma_chan->active = false;
|
||||
|
||||
#ifdef CONFIG_PCI_MSI
|
||||
if (priv->flags & TSI721_USING_MSIX) {
|
||||
synchronize_irq(priv->msix[TSI721_VECT_DMA0_DONE +
|
||||
bdma_chan->id].vector);
|
||||
synchronize_irq(priv->msix[TSI721_VECT_DMA0_INT +
|
||||
bdma_chan->id].vector);
|
||||
} else
|
||||
#endif
|
||||
synchronize_irq(priv->pdev->irq);
|
||||
|
||||
tasklet_kill(&bdma_chan->tasklet);
|
||||
|
||||
spin_lock_bh(&bdma_chan->lock);
|
||||
list_splice_init(&bdma_chan->free_list, &list);
|
||||
spin_unlock_bh(&bdma_chan->lock);
|
||||
|
||||
tsi721_bdma_interrupt_enable(bdma_chan, 0);
|
||||
|
||||
#ifdef CONFIG_PCI_MSI
|
||||
if (priv->flags & TSI721_USING_MSIX) {
|
||||
free_irq(priv->msix[TSI721_VECT_DMA0_DONE +
|
||||
@@ -790,6 +799,7 @@ int tsi721_register_dma(struct tsi721_device *priv)
|
||||
bdma_chan->dchan.cookie = 1;
|
||||
bdma_chan->dchan.chan_id = i;
|
||||
bdma_chan->id = i;
|
||||
bdma_chan->active = false;
|
||||
|
||||
spin_lock_init(&bdma_chan->lock);
|
||||
|
||||
@@ -799,7 +809,6 @@ int tsi721_register_dma(struct tsi721_device *priv)
|
||||
|
||||
tasklet_init(&bdma_chan->tasklet, tsi721_dma_tasklet,
|
||||
(unsigned long)bdma_chan);
|
||||
tasklet_disable(&bdma_chan->tasklet);
|
||||
list_add_tail(&bdma_chan->dchan.device_node,
|
||||
&mport->dma.channels);
|
||||
}
|
||||
|
||||
@@ -580,10 +580,12 @@ static int s3c_rtc_suspend(struct device *dev)
|
||||
|
||||
clk_enable(rtc_clk);
|
||||
/* save TICNT for anyone using periodic interrupts */
|
||||
ticnt_save = readb(s3c_rtc_base + S3C2410_TICNT);
|
||||
if (s3c_rtc_cpu_type == TYPE_S3C64XX) {
|
||||
ticnt_en_save = readw(s3c_rtc_base + S3C2410_RTCCON);
|
||||
ticnt_en_save &= S3C64XX_RTCCON_TICEN;
|
||||
ticnt_save = readl(s3c_rtc_base + S3C2410_TICNT);
|
||||
} else {
|
||||
ticnt_save = readb(s3c_rtc_base + S3C2410_TICNT);
|
||||
}
|
||||
s3c_rtc_enable(pdev, 0);
|
||||
|
||||
@@ -605,10 +607,15 @@ static int s3c_rtc_resume(struct device *dev)
|
||||
|
||||
clk_enable(rtc_clk);
|
||||
s3c_rtc_enable(pdev, 1);
|
||||
writeb(ticnt_save, s3c_rtc_base + S3C2410_TICNT);
|
||||
if (s3c_rtc_cpu_type == TYPE_S3C64XX && ticnt_en_save) {
|
||||
tmp = readw(s3c_rtc_base + S3C2410_RTCCON);
|
||||
writew(tmp | ticnt_en_save, s3c_rtc_base + S3C2410_RTCCON);
|
||||
if (s3c_rtc_cpu_type == TYPE_S3C64XX) {
|
||||
writel(ticnt_save, s3c_rtc_base + S3C2410_TICNT);
|
||||
if (ticnt_en_save) {
|
||||
tmp = readw(s3c_rtc_base + S3C2410_RTCCON);
|
||||
writew(tmp | ticnt_en_save,
|
||||
s3c_rtc_base + S3C2410_RTCCON);
|
||||
}
|
||||
} else {
|
||||
writeb(ticnt_save, s3c_rtc_base + S3C2410_TICNT);
|
||||
}
|
||||
|
||||
if (device_may_wakeup(dev) && wake_en) {
|
||||
|
||||
@@ -186,12 +186,12 @@ static bool is_invalid_reserved_pfn(unsigned long pfn)
|
||||
if (pfn_valid(pfn)) {
|
||||
bool reserved;
|
||||
struct page *tail = pfn_to_page(pfn);
|
||||
struct page *head = compound_trans_head(tail);
|
||||
struct page *head = compound_head(tail);
|
||||
reserved = !!(PageReserved(head));
|
||||
if (head != tail) {
|
||||
/*
|
||||
* "head" is not a dangling pointer
|
||||
* (compound_trans_head takes care of that)
|
||||
* (compound_head takes care of that)
|
||||
* but the hugepage may have been split
|
||||
* from under us (and we may not hold a
|
||||
* reference count on the head page so it can
|
||||
|
||||
@@ -75,7 +75,7 @@ int hfsplus_parse_options_remount(char *input, int *force)
|
||||
int token;
|
||||
|
||||
if (!input)
|
||||
return 0;
|
||||
return 1;
|
||||
|
||||
while ((p = strsep(&input, ",")) != NULL) {
|
||||
if (!*p)
|
||||
|
||||
@@ -717,6 +717,12 @@ static int ocfs2_release_dquot(struct dquot *dquot)
|
||||
*/
|
||||
if (status < 0)
|
||||
mlog_errno(status);
|
||||
/*
|
||||
* Clear dq_off so that we search for the structure in quota file next
|
||||
* time we acquire it. The structure might be deleted and reallocated
|
||||
* elsewhere by another node while our dquot structure is on freelist.
|
||||
*/
|
||||
dquot->dq_off = 0;
|
||||
clear_bit(DQ_ACTIVE_B, &dquot->dq_flags);
|
||||
out_trans:
|
||||
ocfs2_commit_trans(osb, handle);
|
||||
@@ -756,16 +762,17 @@ static int ocfs2_acquire_dquot(struct dquot *dquot)
|
||||
status = ocfs2_lock_global_qf(info, 1);
|
||||
if (status < 0)
|
||||
goto out;
|
||||
if (!test_bit(DQ_READ_B, &dquot->dq_flags)) {
|
||||
status = ocfs2_qinfo_lock(info, 0);
|
||||
if (status < 0)
|
||||
goto out_dq;
|
||||
status = qtree_read_dquot(&info->dqi_gi, dquot);
|
||||
ocfs2_qinfo_unlock(info, 0);
|
||||
if (status < 0)
|
||||
goto out_dq;
|
||||
}
|
||||
set_bit(DQ_READ_B, &dquot->dq_flags);
|
||||
status = ocfs2_qinfo_lock(info, 0);
|
||||
if (status < 0)
|
||||
goto out_dq;
|
||||
/*
|
||||
* We always want to read dquot structure from disk because we don't
|
||||
* know what happened with it while it was on freelist.
|
||||
*/
|
||||
status = qtree_read_dquot(&info->dqi_gi, dquot);
|
||||
ocfs2_qinfo_unlock(info, 0);
|
||||
if (status < 0)
|
||||
goto out_dq;
|
||||
|
||||
OCFS2_DQUOT(dquot)->dq_use_count++;
|
||||
OCFS2_DQUOT(dquot)->dq_origspace = dquot->dq_dqb.dqb_curspace;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user