L: linux-alpha@vger.kernel.org
F: arch/alpha/
++++++ ALPS PS/2 TOUCHPAD DRIVER
++++++ R: Pali Rohár <pali.rohar@gmail.com>
++++++ F: drivers/input/mouse/alps.*
++++++
ALTERA MAILBOX DRIVER
M: Ley Foon Tan <lftan@altera.com>
L: nios2-dev@lists.rocketboards.org (moderated for non-subscribers)
ARM/FREESCALE IMX / MXC ARM ARCHITECTURE
M: Shawn Guo <shawnguo@kernel.org>
M: Sascha Hauer <kernel@pengutronix.de>
++++ R: Fabio Estevam <fabio.estevam@nxp.com>
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
S: Maintained
T: git git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux.git
F: drivers/edac/altera_edac.
ARM/STI ARCHITECTURE
--------M: Srinivas Kandagatla <srinivas.kandagatla@gmail.com>
--------M: Maxime Coquelin <maxime.coquelin@st.com>
M: Patrice Chotard <patrice.chotard@st.com>
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
L: kernel@stlinux.com
ARM/STM32 ARCHITECTURE
M: Maxime Coquelin <mcoquelin.stm32@gmail.com>
++++++++M: Alexandre Torgue <alexandre.torgue@st.com>
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
S: Maintained
T: git git://git.kernel.org/pub/scm/linux/kernel/git/mcoquelin/stm32.git
F: net/ax25/
AZ6007 DVB DRIVER
---- M: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
++++ M: Mauro Carvalho Chehab <mchehab@s-opensource.com>
++++ M: Mauro Carvalho Chehab <mchehab@kernel.org>
L: linux-media@vger.kernel.org
W: https://linuxtv.org
T: git git://linuxtv.org/media_tree.git
F: fs/btrfs/
BTTV VIDEO4LINUX DRIVER
---- M: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
++++ M: Mauro Carvalho Chehab <mchehab@s-opensource.com>
++++ M: Mauro Carvalho Chehab <mchehab@kernel.org>
L: linux-media@vger.kernel.org
W: https://linuxtv.org
T: git git://linuxtv.org/media_tree.git
F: net/caif/
CALGARY x86-64 IOMMU
----- M: Muli Ben-Yehuda <muli@il.ibm.com>
----- M: "Jon D. Mason" <jdmason@kudzu.us>
----- L: discuss@x86-64.org
+++++ M: Muli Ben-Yehuda <mulix@mulix.org>
+++++ M: Jon Mason <jdmason@kudzu.us>
+++++ L: iommu@lists.linux-foundation.org
S: Maintained
F: arch/x86/kernel/pci-calgary_64.c
F: arch/x86/kernel/tce_64.c
F: drivers/media/dvb-frontends/cx24120*
CX88 VIDEO4LINUX DRIVER
---- M: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
++++ M: Mauro Carvalho Chehab <mchehab@s-opensource.com>
++++ M: Mauro Carvalho Chehab <mchehab@kernel.org>
L: linux-media@vger.kernel.org
W: https://linuxtv.org
T: git git://linuxtv.org/media_tree.git
S: Maintained
F: drivers/dma/
F: include/linux/dmaengine.h
++++ F: Documentation/devicetree/bindings/dma/
F: Documentation/dmaengine/
T: git git://git.infradead.org/users/vkoul/slave-dma.git
EDAC-CORE
M: Doug Thompson <dougthompson@xmission.com>
M: Borislav Petkov <bp@alien8.de>
---- M: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
++++ M: Mauro Carvalho Chehab <mchehab@s-opensource.com>
++++ M: Mauro Carvalho Chehab <mchehab@kernel.org>
L: linux-edac@vger.kernel.org
T: git git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp.git for-next
T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-edac.git linux_next
F: drivers/edac/e7xxx_edac.c
EDAC-GHES
---- M: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
++++ M: Mauro Carvalho Chehab <mchehab@s-opensource.com>
++++ M: Mauro Carvalho Chehab <mchehab@kernel.org>
L: linux-edac@vger.kernel.org
S: Maintained
F: drivers/edac/ghes_edac.c
F: drivers/edac/i5000_edac.c
EDAC-I5400
---- M: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
++++ M: Mauro Carvalho Chehab <mchehab@s-opensource.com>
++++ M: Mauro Carvalho Chehab <mchehab@kernel.org>
L: linux-edac@vger.kernel.org
S: Maintained
F: drivers/edac/i5400_edac.c
EDAC-I7300
---- M: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
++++ M: Mauro Carvalho Chehab <mchehab@s-opensource.com>
++++ M: Mauro Carvalho Chehab <mchehab@kernel.org>
L: linux-edac@vger.kernel.org
S: Maintained
F: drivers/edac/i7300_edac.c
EDAC-I7CORE
---- M: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
++++ M: Mauro Carvalho Chehab <mchehab@s-opensource.com>
++++ M: Mauro Carvalho Chehab <mchehab@kernel.org>
L: linux-edac@vger.kernel.org
S: Maintained
F: drivers/edac/i7core_edac.c
F: drivers/edac/r82600_edac.c
EDAC-SBRIDGE
---- M: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
++++ M: Mauro Carvalho Chehab <mchehab@s-opensource.com>
++++ M: Mauro Carvalho Chehab <mchehab@kernel.org>
L: linux-edac@vger.kernel.org
S: Maintained
F: drivers/edac/sb_edac.c
F: fs/efs/
EHEA (IBM pSeries eHEA 10Gb ethernet adapter) DRIVER
--------M: Thadeu Lima de Souza Cascardo <cascardo@linux.vnet.ibm.com>
++++++++M: Douglas Miller <dougmill@linux.vnet.ibm.com>
L: netdev@vger.kernel.org
S: Maintained
F: drivers/net/ethernet/ibm/ehea/
EM28XX VIDEO4LINUX DRIVER
---- M: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
++++ M: Mauro Carvalho Chehab <mchehab@s-opensource.com>
++++ M: Mauro Carvalho Chehab <mchehab@kernel.org>
L: linux-media@vger.kernel.org
W: https://linuxtv.org
T: git git://linuxtv.org/media_tree.git
L: iommu@lists.linux-foundation.org
T: git git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git
S: Maintained
++++++++ F: Documentation/devicetree/bindings/iommu/
F: drivers/iommu/
IP MASQUERADING
KERNEL SELFTEST FRAMEWORK
M: Shuah Khan <shuahkh@osg.samsung.com>
++++ M: Shuah Khan <shuah@kernel.org>
L: linux-kselftest@vger.kernel.org
T: git git://git.kernel.org/pub/scm/shuah/linux-kselftest
S: Maintained
F: drivers/media/pci/netup_unidvb/*
MEDIA INPUT INFRASTRUCTURE (V4L/DVB)
---- M: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
++++ M: Mauro Carvalho Chehab <mchehab@s-opensource.com>
++++ M: Mauro Carvalho Chehab <mchehab@kernel.org>
P: LinuxTV.org Project
L: linux-media@vger.kernel.org
W: https://linuxtv.org
F: drivers/scsi/megaraid/
MELLANOX ETHERNET DRIVER (mlx4_en)
------ M: Eugenia Emantayev <eugenia@mellanox.com>
++++++ M: Tariq Toukan <tariqt@mellanox.com>
L: netdev@vger.kernel.org
S: Supported
W: http://www.mellanox.com
T: git git://git.infradead.org/linux-mtd.git
T: git git://git.infradead.org/l2-mtd.git
S: Maintained
++++++++F: Documentation/devicetree/bindings/mtd/
F: drivers/mtd/
F: include/linux/mtd/
F: include/uapi/mtd/
T: git git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl.git
S: Maintained
F: Documentation/devicetree/bindings/pinctrl/
++++++ F: Documentation/pinctrl.txt
F: drivers/pinctrl/
F: include/linux/pinctrl/
F: drivers/media/i2c/saa6588*
SAA7134 VIDEO4LINUX DRIVER
---- M: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
++++ M: Mauro Carvalho Chehab <mchehab@s-opensource.com>
++++ M: Mauro Carvalho Chehab <mchehab@kernel.org>
L: linux-media@vger.kernel.org
W: https://linuxtv.org
T: git git://linuxtv.org/media_tree.git
F: drivers/media/radio/si4713/radio-usb-si4713.c
SIANO DVB DRIVER
---- M: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
++++ M: Mauro Carvalho Chehab <mchehab@s-opensource.com>
++++ M: Mauro Carvalho Chehab <mchehab@kernel.org>
L: linux-media@vger.kernel.org
W: https://linuxtv.org
T: git git://linuxtv.org/media_tree.git
F: drivers/media/i2c/tda9840*
TEA5761 TUNER DRIVER
---- M: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
++++ M: Mauro Carvalho Chehab <mchehab@s-opensource.com>
++++ M: Mauro Carvalho Chehab <mchehab@kernel.org>
L: linux-media@vger.kernel.org
W: https://linuxtv.org
T: git git://linuxtv.org/media_tree.git
F: drivers/media/tuners/tea5761.*
TEA5767 TUNER DRIVER
---- M: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
++++ M: Mauro Carvalho Chehab <mchehab@s-opensource.com>
++++ M: Mauro Carvalho Chehab <mchehab@kernel.org>
L: linux-media@vger.kernel.org
W: https://linuxtv.org
T: git git://linuxtv.org/media_tree.git
F: mm/shmem.c
TM6000 VIDEO4LINUX DRIVER
---- M: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
++++ M: Mauro Carvalho Chehab <mchehab@s-opensource.com>
++++ M: Mauro Carvalho Chehab <mchehab@kernel.org>
L: linux-media@vger.kernel.org
W: https://linuxtv.org
T: git git://linuxtv.org/media_tree.git
USB OVER IP DRIVER
M: Valentina Manea <valentina.manea.m@gmail.com>
---- M: Shuah Khan <shuah.kh@samsung.com>
++++ M: Shuah Khan <shuahkh@osg.samsung.com>
++++ M: Shuah Khan <shuah@kernel.org>
L: linux-usb@vger.kernel.org
S: Maintained
F: Documentation/usb/usbip_protocol.txt
W: http://www.linux-usb.org
T: git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git
S: Supported
++++ F: Documentation/devicetree/bindings/usb/
F: Documentation/usb/
F: drivers/usb/
F: include/linux/usb.h
M: "Michael S. Tsirkin" <mst@redhat.com>
L: virtualization@lists.linux-foundation.org
S: Maintained
++++ F: Documentation/devicetree/bindings/virtio/
F: drivers/virtio/
F: tools/virtio/
F: drivers/net/virtio_net.c
F: arch/x86/entry/vdso/
XC2028/3028 TUNER DRIVER
---- M: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
++++ M: Mauro Carvalho Chehab <mchehab@s-opensource.com>
++++ M: Mauro Carvalho Chehab <mchehab@kernel.org>
L: linux-media@vger.kernel.org
W: https://linuxtv.org
T: git git://linuxtv.org/media_tree.git
return -ENOMEM;
}
-- ------ size = ((ndomains >> 8) + 1) * sizeof(struct dmar_domain **);
++ ++++++ size = (ALIGN(ndomains, 256) >> 8) * sizeof(struct dmar_domain **);
iommu->domains = kzalloc(size, GFP_KERNEL);
if (iommu->domains) {
static void free_dmar_iommu(struct intel_iommu *iommu)
{
if ((iommu->domains) && (iommu->domain_ids)) {
-- ------ int elems = (cap_ndoms(iommu->cap) >> 8) + 1;
++ ++++++ int elems = ALIGN(cap_ndoms(iommu->cap), 256) >> 8;
int i;
for (i = 0; i < elems; i++)
spin_unlock(&iommu->lock);
spin_unlock_irqrestore(&device_domain_lock, flags);
-- ------ return 0;
++ ++++++ return ret;
}
struct domain_context_mapping_data {
}
}
---- iommu_flush_write_buffer(iommu);
---- iommu_set_root_entry(iommu);
---- iommu->flush.flush_context(iommu, 0, 0, 0, DMA_CCMD_GLOBAL_INVL);
---- iommu->flush.flush_iotlb(iommu, 0, 0, 0, DMA_TLB_GLOBAL_FLUSH);
----
if (!ecap_pass_through(iommu->ecap))
hw_pass_through = 0;
#ifdef CONFIG_INTEL_IOMMU_SVM
#endif
}
++++ /*
++++ * Now that qi is enabled on all iommus, set the root entry and flush
++++ * caches. This is required on some Intel X58 chipsets, otherwise the
++++ * flush_context function will loop forever and the boot hangs.
++++ */
++++ for_each_active_iommu(iommu, drhd) {
++++ iommu_flush_write_buffer(iommu);
++++ iommu_set_root_entry(iommu);
++++ iommu->flush.flush_context(iommu, 0, 0, 0, DMA_CCMD_GLOBAL_INVL);
++++ iommu->flush.flush_iotlb(iommu, 0, 0, 0, DMA_TLB_GLOBAL_FLUSH);
++++ }
++++
if (iommu_pass_through)
iommu_identity_mapping |= IDENTMAP_ALL;
for (i = 0; i < g_num_of_iommus; i++) {
struct intel_iommu *iommu = g_iommus[i];
struct dmar_domain *domain;
------ - u16 did;
++++++ + int did;
if (!iommu)
continue;
------ for (did = 0; did < 0xffff; did++) {
------ domain = get_iommu_domain(iommu, did);
++++++ for (did = 0; did < cap_ndoms(iommu->cap); did++) {
- domain = get_iommu_domain(iommu, did);
++++++ + domain = get_iommu_domain(iommu, (u16)did);
if (!domain)
continue;
#include <trace/events/iommu.h>
static struct kset *iommu_group_kset;
-------- static struct ida iommu_group_ida;
-------- static struct mutex iommu_group_mutex;
++++++++ static DEFINE_IDA(iommu_group_ida);
struct iommu_callback_data {
const struct iommu_ops *ops;
if (group->iommu_data_release)
group->iommu_data_release(group->iommu_data);
-------- mutex_lock(&iommu_group_mutex);
-------- ida_remove(&iommu_group_ida, group->id);
-------- mutex_unlock(&iommu_group_mutex);
++++++++ ida_simple_remove(&iommu_group_ida, group->id);
if (group->default_domain)
iommu_domain_free(group->default_domain);
INIT_LIST_HEAD(&group->devices);
BLOCKING_INIT_NOTIFIER_HEAD(&group->notifier);
-------- mutex_lock(&iommu_group_mutex);
--------
-------- again:
-------- if (unlikely(0 == ida_pre_get(&iommu_group_ida, GFP_KERNEL))) {
++++++++ ret = ida_simple_get(&iommu_group_ida, 0, 0, GFP_KERNEL);
++++++++ if (ret < 0) {
kfree(group);
-------- mutex_unlock(&iommu_group_mutex);
-------- return ERR_PTR(-ENOMEM);
++++++++ return ERR_PTR(ret);
}
--------
-------- if (-EAGAIN == ida_get_new(&iommu_group_ida, &group->id))
-------- goto again;
--------
-------- mutex_unlock(&iommu_group_mutex);
++++++++ group->id = ret;
ret = kobject_init_and_add(&group->kobj, &iommu_group_ktype,
NULL, "%d", group->id);
if (ret) {
-------- mutex_lock(&iommu_group_mutex);
-------- ida_remove(&iommu_group_ida, group->id);
-------- mutex_unlock(&iommu_group_mutex);
++++++++ ida_simple_remove(&iommu_group_ida, group->id);
kfree(group);
return ERR_PTR(ret);
}
list_for_each_entry(entry, &mappings, list) {
dma_addr_t start, end, addr;
+ +++++++ if (domain->ops->apply_dm_region)
+ +++++++ domain->ops->apply_dm_region(dev, domain, entry);
+ +++++++
start = ALIGN(entry->start, pg_size);
end = ALIGN(entry->start + entry->length, pg_size);
{
iommu_group_kset = kset_create_and_add("iommu_groups",
NULL, kernel_kobj);
-------- ida_init(&iommu_group_ida);
-------- mutex_init(&iommu_group_mutex);
--------
BUG_ON(!iommu_group_kset);
return 0;