Skip to content

Commit a9f852e

Browse files
author
Jakub Kicinski
committed
Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Minor conflict in drivers/s390/net/qeth_l2_main.c, kept the lock from commit c8183f5 ("s390/qeth: fix potential deadlock on workqueue flush"), removed the code which was removed by commit 9897d58 ("s390/qeth: consolidate some duplicated HW cmd code"). Signed-off-by: Jakub Kicinski <[email protected]>
2 parents 3243e04 + 34c36f4 commit a9f852e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

93 files changed

+714
-302
lines changed

MAINTAINERS

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -643,7 +643,7 @@ F: drivers/net/ethernet/alacritech/*
643643

644644
FORCEDETH GIGABIT ETHERNET DRIVER
645645
M: Rain River <[email protected]>
646-
M: Zhu Yanjun <yanjun.zhu@oracle.com>
646+
M: Zhu Yanjun <zyjzyj2000@gmail.com>
647647
648648
S: Maintained
649649
F: drivers/net/ethernet/nvidia/*
@@ -8311,11 +8311,14 @@ F: drivers/hid/intel-ish-hid/
83118311

83128312
INTEL IOMMU (VT-d)
83138313
M: David Woodhouse <[email protected]>
8314+
M: Lu Baolu <[email protected]>
83148315
8315-
T: git git://git.infradead.org/iommu-2.6.git
8316+
T: git git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git
83168317
S: Supported
8317-
F: drivers/iommu/intel-iommu.c
8318+
F: drivers/iommu/dmar.c
8319+
F: drivers/iommu/intel*.[ch]
83188320
F: include/linux/intel-iommu.h
8321+
F: include/linux/intel-svm.h
83198322

83208323
INTEL IOP-ADMA DMA DRIVER
83218324
R: Dan Williams <[email protected]>
@@ -17227,6 +17230,7 @@ F: virt/lib/
1722717230

1722817231
VIRTIO AND VHOST VSOCK DRIVER
1722917232
M: Stefan Hajnoczi <[email protected]>
17233+
M: Stefano Garzarella <[email protected]>
1723017234
1723117235
1723217236

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
VERSION = 5
33
PATCHLEVEL = 4
44
SUBLEVEL = 0
5-
EXTRAVERSION = -rc7
5+
EXTRAVERSION = -rc8
66
NAME = Kleptomaniac Octopus
77

88
# *DOCUMENTATION*

arch/arm64/include/asm/asm-uaccess.h

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -58,23 +58,6 @@ alternative_else_nop_endif
5858
.endm
5959
#endif
6060

61-
/*
62-
* These macros are no-ops when UAO is present.
63-
*/
64-
.macro uaccess_disable_not_uao, tmp1, tmp2
65-
uaccess_ttbr0_disable \tmp1, \tmp2
66-
alternative_if ARM64_ALT_PAN_NOT_UAO
67-
SET_PSTATE_PAN(1)
68-
alternative_else_nop_endif
69-
.endm
70-
71-
.macro uaccess_enable_not_uao, tmp1, tmp2, tmp3
72-
uaccess_ttbr0_enable \tmp1, \tmp2, \tmp3
73-
alternative_if ARM64_ALT_PAN_NOT_UAO
74-
SET_PSTATE_PAN(0)
75-
alternative_else_nop_endif
76-
.endm
77-
7861
/*
7962
* Remove the address tag from a virtual address, if present.
8063
*/

arch/arm64/include/asm/uaccess.h

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -378,20 +378,34 @@ do { \
378378
extern unsigned long __must_check __arch_copy_from_user(void *to, const void __user *from, unsigned long n);
379379
#define raw_copy_from_user(to, from, n) \
380380
({ \
381-
__arch_copy_from_user((to), __uaccess_mask_ptr(from), (n)); \
381+
unsigned long __acfu_ret; \
382+
uaccess_enable_not_uao(); \
383+
__acfu_ret = __arch_copy_from_user((to), \
384+
__uaccess_mask_ptr(from), (n)); \
385+
uaccess_disable_not_uao(); \
386+
__acfu_ret; \
382387
})
383388

384389
extern unsigned long __must_check __arch_copy_to_user(void __user *to, const void *from, unsigned long n);
385390
#define raw_copy_to_user(to, from, n) \
386391
({ \
387-
__arch_copy_to_user(__uaccess_mask_ptr(to), (from), (n)); \
392+
unsigned long __actu_ret; \
393+
uaccess_enable_not_uao(); \
394+
__actu_ret = __arch_copy_to_user(__uaccess_mask_ptr(to), \
395+
(from), (n)); \
396+
uaccess_disable_not_uao(); \
397+
__actu_ret; \
388398
})
389399

390400
extern unsigned long __must_check __arch_copy_in_user(void __user *to, const void __user *from, unsigned long n);
391401
#define raw_copy_in_user(to, from, n) \
392402
({ \
393-
__arch_copy_in_user(__uaccess_mask_ptr(to), \
394-
__uaccess_mask_ptr(from), (n)); \
403+
unsigned long __aciu_ret; \
404+
uaccess_enable_not_uao(); \
405+
__aciu_ret = __arch_copy_in_user(__uaccess_mask_ptr(to), \
406+
__uaccess_mask_ptr(from), (n)); \
407+
uaccess_disable_not_uao(); \
408+
__aciu_ret; \
395409
})
396410

397411
#define INLINE_COPY_TO_USER
@@ -400,8 +414,11 @@ extern unsigned long __must_check __arch_copy_in_user(void __user *to, const voi
400414
extern unsigned long __must_check __arch_clear_user(void __user *to, unsigned long n);
401415
static inline unsigned long __must_check __clear_user(void __user *to, unsigned long n)
402416
{
403-
if (access_ok(to, n))
417+
if (access_ok(to, n)) {
418+
uaccess_enable_not_uao();
404419
n = __arch_clear_user(__uaccess_mask_ptr(to), n);
420+
uaccess_disable_not_uao();
421+
}
405422
return n;
406423
}
407424
#define clear_user __clear_user

arch/arm64/lib/clear_user.S

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
* Alignment fixed up by hardware.
2121
*/
2222
ENTRY(__arch_clear_user)
23-
uaccess_enable_not_uao x2, x3, x4
2423
mov x2, x1 // save the size for fixup return
2524
subs x1, x1, #8
2625
b.mi 2f
@@ -40,7 +39,6 @@ uao_user_alternative 9f, strh, sttrh, wzr, x0, 2
4039
b.mi 5f
4140
uao_user_alternative 9f, strb, sttrb, wzr, x0, 0
4241
5: mov x0, #0
43-
uaccess_disable_not_uao x2, x3
4442
ret
4543
ENDPROC(__arch_clear_user)
4644
EXPORT_SYMBOL(__arch_clear_user)

arch/arm64/lib/copy_from_user.S

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,8 @@
5454

5555
end .req x5
5656
ENTRY(__arch_copy_from_user)
57-
uaccess_enable_not_uao x3, x4, x5
5857
add end, x0, x2
5958
#include "copy_template.S"
60-
uaccess_disable_not_uao x3, x4
6159
mov x0, #0 // Nothing to copy
6260
ret
6361
ENDPROC(__arch_copy_from_user)

arch/arm64/lib/copy_in_user.S

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,10 +56,8 @@
5656
end .req x5
5757

5858
ENTRY(__arch_copy_in_user)
59-
uaccess_enable_not_uao x3, x4, x5
6059
add end, x0, x2
6160
#include "copy_template.S"
62-
uaccess_disable_not_uao x3, x4
6361
mov x0, #0
6462
ret
6563
ENDPROC(__arch_copy_in_user)

arch/arm64/lib/copy_to_user.S

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,8 @@
5353

5454
end .req x5
5555
ENTRY(__arch_copy_to_user)
56-
uaccess_enable_not_uao x3, x4, x5
5756
add end, x0, x2
5857
#include "copy_template.S"
59-
uaccess_disable_not_uao x3, x4
6058
mov x0, #0
6159
ret
6260
ENDPROC(__arch_copy_to_user)

arch/arm64/lib/uaccess_flushcache.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,11 @@ void memcpy_page_flushcache(char *to, struct page *page, size_t offset,
2828
unsigned long __copy_user_flushcache(void *to, const void __user *from,
2929
unsigned long n)
3030
{
31-
unsigned long rc = __arch_copy_from_user(to, from, n);
31+
unsigned long rc;
32+
33+
uaccess_enable_not_uao();
34+
rc = __arch_copy_from_user(to, from, n);
35+
uaccess_disable_not_uao();
3236

3337
/* See above */
3438
__clean_dcache_area_pop(to, n - rc);

drivers/block/nbd.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -993,6 +993,7 @@ static struct socket *nbd_get_socket(struct nbd_device *nbd, unsigned long fd,
993993
if (sock->ops->shutdown == sock_no_shutdown) {
994994
dev_err(disk_to_dev(nbd->disk), "Unsupported socket: shutdown callout must be supported.\n");
995995
*err = -EINVAL;
996+
sockfd_put(sock);
996997
return NULL;
997998
}
998999

drivers/gpio/gpio-bd70528.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,13 @@ static int bd70528_set_debounce(struct bd70528_gpio *bdgpio,
2525
case 0:
2626
val = BD70528_DEBOUNCE_DISABLE;
2727
break;
28-
case 1 ... 15:
28+
case 1 ... 15000:
2929
val = BD70528_DEBOUNCE_15MS;
3030
break;
31-
case 16 ... 30:
31+
case 15001 ... 30000:
3232
val = BD70528_DEBOUNCE_30MS;
3333
break;
34-
case 31 ... 50:
34+
case 30001 ... 50000:
3535
val = BD70528_DEBOUNCE_50MS;
3636
break;
3737
default:

drivers/gpio/gpio-max77620.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -192,13 +192,13 @@ static int max77620_gpio_set_debounce(struct max77620_gpio *mgpio,
192192
case 0:
193193
val = MAX77620_CNFG_GPIO_DBNC_None;
194194
break;
195-
case 1000 ... 8000:
195+
case 1 ... 8000:
196196
val = MAX77620_CNFG_GPIO_DBNC_8ms;
197197
break;
198-
case 9000 ... 16000:
198+
case 8001 ... 16000:
199199
val = MAX77620_CNFG_GPIO_DBNC_16ms;
200200
break;
201-
case 17000 ... 32000:
201+
case 16001 ... 32000:
202202
val = MAX77620_CNFG_GPIO_DBNC_32ms;
203203
break;
204204
default:

drivers/gpio/gpiolib-acpi.c

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1304,11 +1304,28 @@ late_initcall_sync(acpi_gpio_handle_deferred_request_irqs);
13041304

13051305
static const struct dmi_system_id run_edge_events_on_boot_blacklist[] = {
13061306
{
1307+
/*
1308+
* The Minix Neo Z83-4 has a micro-USB-B id-pin handler for
1309+
* a non existing micro-USB-B connector which puts the HDMI
1310+
* DDC pins in GPIO mode, breaking HDMI support.
1311+
*/
13071312
.matches = {
13081313
DMI_MATCH(DMI_SYS_VENDOR, "MINIX"),
13091314
DMI_MATCH(DMI_PRODUCT_NAME, "Z83-4"),
13101315
}
13111316
},
1317+
{
1318+
/*
1319+
* The Terra Pad 1061 has a micro-USB-B id-pin handler, which
1320+
* instead of controlling the actual micro-USB-B turns the 5V
1321+
* boost for its USB-A connector off. The actual micro-USB-B
1322+
* connector is wired for charging only.
1323+
*/
1324+
.matches = {
1325+
DMI_MATCH(DMI_SYS_VENDOR, "Wortmann_AG"),
1326+
DMI_MATCH(DMI_PRODUCT_NAME, "TERRA_PAD_1061"),
1327+
}
1328+
},
13121329
{} /* Terminating entry */
13131330
};
13141331

drivers/gpu/drm/amd/amdgpu/amdgpu_display.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -511,7 +511,7 @@ uint32_t amdgpu_display_supported_domains(struct amdgpu_device *adev,
511511
* Also, don't allow GTT domain if the BO doens't have USWC falg set.
512512
*/
513513
if (adev->asic_type >= CHIP_CARRIZO &&
514-
adev->asic_type <= CHIP_RAVEN &&
514+
adev->asic_type < CHIP_RAVEN &&
515515
(adev->flags & AMD_IS_APU) &&
516516
(bo_flags & AMDGPU_GEM_CREATE_CPU_GTT_USWC) &&
517517
amdgpu_bo_support_uswc(bo_flags) &&

drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1013,10 +1013,10 @@ static const struct pci_device_id pciidlist[] = {
10131013
{0x1002, 0x731B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_NAVI10},
10141014
{0x1002, 0x731F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_NAVI10},
10151015
/* Navi14 */
1016-
{0x1002, 0x7340, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_NAVI14|AMD_EXP_HW_SUPPORT},
1017-
{0x1002, 0x7341, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_NAVI14|AMD_EXP_HW_SUPPORT},
1018-
{0x1002, 0x7347, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_NAVI14|AMD_EXP_HW_SUPPORT},
1019-
{0x1002, 0x734F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_NAVI14|AMD_EXP_HW_SUPPORT},
1016+
{0x1002, 0x7340, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_NAVI14},
1017+
{0x1002, 0x7341, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_NAVI14},
1018+
{0x1002, 0x7347, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_NAVI14},
1019+
{0x1002, 0x734F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_NAVI14},
10201020

10211021
/* Renoir */
10221022
{0x1002, 0x1636, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RENOIR|AMD_IS_APU|AMD_EXP_HW_SUPPORT},

drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -649,15 +649,19 @@ static int amdgpu_info_ioctl(struct drm_device *dev, void *data, struct drm_file
649649
return -ENOMEM;
650650
alloc_size = info->read_mmr_reg.count * sizeof(*regs);
651651

652-
for (i = 0; i < info->read_mmr_reg.count; i++)
652+
amdgpu_gfx_off_ctrl(adev, false);
653+
for (i = 0; i < info->read_mmr_reg.count; i++) {
653654
if (amdgpu_asic_read_register(adev, se_num, sh_num,
654655
info->read_mmr_reg.dword_offset + i,
655656
&regs[i])) {
656657
DRM_DEBUG_KMS("unallowed offset %#x\n",
657658
info->read_mmr_reg.dword_offset + i);
658659
kfree(regs);
660+
amdgpu_gfx_off_ctrl(adev, true);
659661
return -EFAULT;
660662
}
663+
}
664+
amdgpu_gfx_off_ctrl(adev, true);
661665
n = copy_to_user(out, regs, min(size, alloc_size));
662666
kfree(regs);
663667
return n ? -EFAULT : 0;

drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1038,8 +1038,13 @@ static void gfx_v9_0_check_if_need_gfxoff(struct amdgpu_device *adev)
10381038
case CHIP_VEGA20:
10391039
break;
10401040
case CHIP_RAVEN:
1041-
if (!(adev->rev_id >= 0x8 || adev->pdev->device == 0x15d8)
1042-
&&((adev->gfx.rlc_fw_version != 106 &&
1041+
/* Disable GFXOFF on original raven. There are combinations
1042+
* of sbios and platforms that are not stable.
1043+
*/
1044+
if (!(adev->rev_id >= 0x8 || adev->pdev->device == 0x15d8))
1045+
adev->pm.pp_feature &= ~PP_GFXOFF_MASK;
1046+
else if (!(adev->rev_id >= 0x8 || adev->pdev->device == 0x15d8)
1047+
&&((adev->gfx.rlc_fw_version != 106 &&
10431048
adev->gfx.rlc_fw_version < 531) ||
10441049
(adev->gfx.rlc_fw_version == 53815) ||
10451050
(adev->gfx.rlc_feature_version < 1) ||

drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -688,7 +688,7 @@ static int amdgpu_dm_init(struct amdgpu_device *adev)
688688
*/
689689
if (adev->flags & AMD_IS_APU &&
690690
adev->asic_type >= CHIP_CARRIZO &&
691-
adev->asic_type <= CHIP_RAVEN)
691+
adev->asic_type < CHIP_RAVEN)
692692
init_data.flags.gpu_vm_support = true;
693693

694694
if (amdgpu_dc_feature_mask & DC_FBC_MASK)

drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3478,18 +3478,31 @@ static int smu7_get_pp_table_entry(struct pp_hwmgr *hwmgr,
34783478

34793479
static int smu7_get_gpu_power(struct pp_hwmgr *hwmgr, u32 *query)
34803480
{
3481+
struct amdgpu_device *adev = hwmgr->adev;
34813482
int i;
34823483
u32 tmp = 0;
34833484

34843485
if (!query)
34853486
return -EINVAL;
34863487

3487-
smum_send_msg_to_smc_with_parameter(hwmgr, PPSMC_MSG_GetCurrPkgPwr, 0);
3488-
tmp = cgs_read_register(hwmgr->device, mmSMC_MSG_ARG_0);
3489-
*query = tmp;
3488+
/*
3489+
* PPSMC_MSG_GetCurrPkgPwr is not supported on:
3490+
* - Hawaii
3491+
* - Bonaire
3492+
* - Fiji
3493+
* - Tonga
3494+
*/
3495+
if ((adev->asic_type != CHIP_HAWAII) &&
3496+
(adev->asic_type != CHIP_BONAIRE) &&
3497+
(adev->asic_type != CHIP_FIJI) &&
3498+
(adev->asic_type != CHIP_TONGA)) {
3499+
smum_send_msg_to_smc_with_parameter(hwmgr, PPSMC_MSG_GetCurrPkgPwr, 0);
3500+
tmp = cgs_read_register(hwmgr->device, mmSMC_MSG_ARG_0);
3501+
*query = tmp;
34903502

3491-
if (tmp != 0)
3492-
return 0;
3503+
if (tmp != 0)
3504+
return 0;
3505+
}
34933506

34943507
smum_send_msg_to_smc(hwmgr, PPSMC_MSG_PmStatusLogStart);
34953508
cgs_write_ind_register(hwmgr->device, CGS_IND_REG__SMC,

drivers/gpu/drm/amd/powerplay/navi10_ppt.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -759,6 +759,12 @@ static int navi10_force_clk_levels(struct smu_context *smu,
759759
case SMU_UCLK:
760760
case SMU_DCEFCLK:
761761
case SMU_FCLK:
762+
/* There is only 2 levels for fine grained DPM */
763+
if (navi10_is_support_fine_grained_dpm(smu, clk_type)) {
764+
soft_max_level = (soft_max_level >= 1 ? 1 : 0);
765+
soft_min_level = (soft_min_level >= 1 ? 1 : 0);
766+
}
767+
762768
ret = smu_get_dpm_freq_by_index(smu, clk_type, soft_min_level, &min_freq);
763769
if (ret)
764770
return size;

drivers/gpu/drm/i915/display/intel_atomic.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,7 @@ intel_crtc_duplicate_state(struct drm_crtc *crtc)
201201
crtc_state->update_wm_post = false;
202202
crtc_state->fb_changed = false;
203203
crtc_state->fifo_changed = false;
204+
crtc_state->preload_luts = false;
204205
crtc_state->wm.need_postvbl_update = false;
205206
crtc_state->fb_bits = 0;
206207
crtc_state->update_planes = 0;

0 commit comments

Comments
 (0)