From: Joerg Roedel Date: Mon, 2 Nov 2015 11:03:34 +0000 (+0900) Subject: Merge branches 'x86/vt-d', 'arm/omap', 'arm/smmu', 's390', 'core' and 'x86/amd' into... X-Git-Tag: v4.4-rc1~104^2 X-Git-Url: http://git.cascardo.eti.br/?a=commitdiff_plain;h=b67ad2f7c7514f94fe6bbd0cd86add445eb4e64a;p=cascardo%2Flinux.git Merge branches 'x86/vt-d', 'arm/omap', 'arm/smmu', 's390', 'core' and 'x86/amd' into next Conflicts: drivers/iommu/amd_iommu_types.h --- b67ad2f7c7514f94fe6bbd0cd86add445eb4e64a diff --cc MAINTAINERS index 747c65316167,9f6685f6c5a9,5f467845ef72,5f467845ef72,8dfe79589681,5f467845ef72,274f85405584..4a63bebf9e0f --- a/MAINTAINERS +++ b/MAINTAINERS @@@@@@@@ -11409,10 -11378,19 -11377,10 -11377,10 -11385,19 -11377,10 -11364,21 +11416,10 @@@@@@@@ W: http://oops.ghostprotocols.net:81/bl S: Maintained F: drivers/net/wireless/wl3501* - - -WM97XX TOUCHSCREEN DRIVERS - - -M: Mark Brown - - -M: Liam Girdwood - - -L: linux-input@vger.kernel.org - - W: https://github.com/CirrusLogic/linux-drivers/wiki -T: git git://opensource.wolfsonmicro.com/linux-2.6-touch -W: http://opensource.wolfsonmicro.com/node/7 - - -S: Supported - - -F: drivers/input/touchscreen/*wm97* - - -F: include/linux/wm97xx.h - - - WOLFSON MICROELECTRONICS DRIVERS L: patches@opensource.wolfsonmicro.com -T: git git://opensource.wolfsonmicro.com/linux-2.6-asoc -T: git git://opensource.wolfsonmicro.com/linux-2.6-audioplus -W: http://opensource.wolfsonmicro.com/content/linux-drivers-wolfson-devices +T: git https://github.com/CirrusLogic/linux-drivers.git +W: https://github.com/CirrusLogic/linux-drivers/wiki S: Supported F: Documentation/hwmon/wm83?? F: arch/arm/mach-s3c64xx/mach-crag6410* diff --cc drivers/iommu/amd_iommu.c index 532e2a211fe1,f82060e778a2,f82060e778a2,f82060e778a2,f82060e778a2,8d74e38914dd,02b8ad761600..0d533bba4ad1 --- a/drivers/iommu/amd_iommu.c +++ b/drivers/iommu/amd_iommu.c @@@@@@@@ -2005,17 -2005,8 -2005,8 -2005,8 -2005,8 -2005,8 -1913,10 +1913,19 @@@@@@@@ static void do_attach(struct iommu_dev_ static void do_detach(struct iommu_dev_data *dev_data) { struct amd_iommu *iommu; ++++++ u16 alias; +++++ ++++++ /* ++++++ * First check if the device is still attached. It might already ++++++ * be detached from its domain because the generic ++++++ * iommu_detach_group code detached it and we try again here in ++++++ * our alias handling. ++++++ */ ++++++ if (!dev_data->domain) ++++++ return; + iommu = amd_iommu_rlookup_table[dev_data->devid]; ++++++ alias = amd_iommu_alias_table[dev_data->devid]; /* decrease reference counters */ dev_data->domain->dev_iommu[iommu->index] -= 1; diff --cc drivers/iommu/amd_iommu_init.c index 1b066e7d144d,5ef347a13cb5,5ef347a13cb5,5ef347a13cb5,5ef347a13cb5,5ef347a13cb5,dd92a8d8f0ca..a7cc3996d3b6 --- a/drivers/iommu/amd_iommu_init.c +++ b/drivers/iommu/amd_iommu_init.c @@@@@@@@ -604,15 -604,15 -604,15 -604,15 -604,15 -604,15 -577,12 +577,12 @@@@@@@@ static void __init free_event_buffer(st } /* allocates the memory where the IOMMU will log its events to */ ------ static u8 * __init alloc_ppr_log(struct amd_iommu *iommu) ++++++ static int __init alloc_ppr_log(struct amd_iommu *iommu) { ------ iommu->ppr_log = (u8 *)__get_free_pages(GFP_KERNEL | __GFP_ZERO, ------ get_order(PPR_LOG_SIZE)); ----- ----- if (iommu->ppr_log == NULL) ----- return NULL; ++++++ iommu->ppr_log = (void *)__get_free_pages(GFP_KERNEL | __GFP_ZERO, ++++++ get_order(PPR_LOG_SIZE)); - if (iommu->ppr_log == NULL) - return NULL; - ------ return iommu->ppr_log; ++++++ return iommu->ppr_log ? 0 : -ENOMEM; } static void iommu_enable_ppr_log(struct amd_iommu *iommu) diff --cc drivers/iommu/amd_iommu_types.h index c9b64722f623,f65908841be0,f65908841be0,f65908841be0,f65908841be0,f65908841be0,fc9501dc7067..08166ae3b6a4 --- a/drivers/iommu/amd_iommu_types.h +++ b/drivers/iommu/amd_iommu_types.h @@@@@@@@ -295,9 -295,8 -295,8 -295,8 -295,8 -295,8 -295,8 +295,9 @@@@@@@@ #define IOMMU_PTE_IR (1ULL << 61) #define IOMMU_PTE_IW (1ULL << 62) ----- #define DTE_FLAG_IOTLB (0x01UL << 32) ----- #define DTE_FLAG_GV (0x01ULL << 55) ++++++ #define DTE_FLAG_IOTLB (1ULL << 32) ++++++ #define DTE_FLAG_GV (1ULL << 55) ++++++#define DTE_FLAG_MASK (0x3ffULL << 32) - #define DTE_FLAG_IOTLB (0x01UL << 32) - #define DTE_FLAG_GV (0x01ULL << 55) #define DTE_GLX_SHIFT (56) #define DTE_GLX_MASK (3) diff --cc drivers/iommu/arm-smmu.c index 48a39dfa9777,48a39dfa9777,48a39dfa9777,7c20a68b5a95,48a39dfa9777,b4c0629d7f7d,48a39dfa9777..47dc7a793f5c --- a/drivers/iommu/arm-smmu.c +++ b/drivers/iommu/arm-smmu.c @@@@@@@@ -1363,10 -1363,10 -1363,10 -1366,10 -1363,10 -1348,13 -1363,10 +1351,13 @@@@@@@@ static int arm_smmu_init_platform_devic static int arm_smmu_add_device(struct device *dev) { ----- - if (dev_is_pci(dev)) ----- - return arm_smmu_add_pci_device(to_pci_dev(dev)); +++++ + struct iommu_group *group; +++ + + - return arm_smmu_add_platform_device(dev); +++++ + group = iommu_group_get_for_dev(dev); +++++ + if (IS_ERR(group)) +++++ + return PTR_ERR(group); + --- - - return arm_smmu_add_platform_device(dev); +++++ + return 0; } static void arm_smmu_remove_device(struct device *dev)