Skip to content

Commit 75dd1c2

Browse files
author
Alex Shi
committed
Merge tag 'v4.4.43' into linux-linaro-lsk-v4.4
This is the 4.4.43 stable release
2 parents 99d4c5f + d9ea51a commit 75dd1c2

24 files changed

Lines changed: 236 additions & 89 deletions

File tree

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
VERSION = 4
22
PATCHLEVEL = 4
3-
SUBLEVEL = 42
3+
SUBLEVEL = 43
44
EXTRAVERSION =
55
NAME = Blurry Fish Butt
66

arch/arm/mach-omap2/omap-mpuss-lowpower.c

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -243,10 +243,9 @@ int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state)
243243
save_state = 1;
244244
break;
245245
case PWRDM_POWER_RET:
246-
if (IS_PM44XX_ERRATUM(PM_OMAP4_CPU_OSWR_DISABLE)) {
246+
if (IS_PM44XX_ERRATUM(PM_OMAP4_CPU_OSWR_DISABLE))
247247
save_state = 0;
248-
break;
249-
}
248+
break;
250249
default:
251250
/*
252251
* CPUx CSWR is invalid hardware state. Also CPUx OSWR

arch/arm/mach-zynq/common.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ void __iomem *zynq_scu_base;
5959
static void __init zynq_memory_init(void)
6060
{
6161
if (!__pa(PAGE_OFFSET))
62-
memblock_reserve(__pa(PAGE_OFFSET), __pa(swapper_pg_dir));
62+
memblock_reserve(__pa(PAGE_OFFSET), 0x80000);
6363
}
6464

6565
static struct platform_device zynq_cpuidle_device = {

arch/powerpc/kernel/misc_32.S

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,7 @@ _GLOBAL(flush_instruction_cache)
313313
lis r3, KERNELBASE@h
314314
iccci 0,r3
315315
#endif
316-
#elif CONFIG_FSL_BOOKE
316+
#elif defined(CONFIG_FSL_BOOKE)
317317
BEGIN_FTR_SECTION
318318
mfspr r3,SPRN_L1CSR0
319319
ori r3,r3,L1CSR0_CFI|L1CSR0_CLFC

drivers/hid/hid-cypress.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,9 @@ static __u8 *cp_report_fixup(struct hid_device *hdev, __u8 *rdesc,
3939
if (!(quirks & CP_RDESC_SWAPPED_MIN_MAX))
4040
return rdesc;
4141

42+
if (*rsize < 4)
43+
return rdesc;
44+
4245
for (i = 0; i < *rsize - 4; i++)
4346
if (rdesc[i] == 0x29 && rdesc[i + 2] == 0x19) {
4447
rdesc[i] = 0x19;

drivers/isdn/gigaset/ser-gigaset.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -762,8 +762,10 @@ static int __init ser_gigaset_init(void)
762762
driver = gigaset_initdriver(GIGASET_MINOR, GIGASET_MINORS,
763763
GIGASET_MODULENAME, GIGASET_DEVNAME,
764764
&ops, THIS_MODULE);
765-
if (!driver)
765+
if (!driver) {
766+
rc = -ENOMEM;
766767
goto error;
768+
}
767769

768770
rc = tty_register_ldisc(N_GIGASET_M101, &gigaset_ldisc);
769771
if (rc != 0) {

drivers/net/ethernet/mellanox/mlx5/core/main.c

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -432,6 +432,13 @@ static int handle_hca_cap(struct mlx5_core_dev *dev)
432432
MLX5_SET(cmd_hca_cap, set_hca_cap, pkey_table_size,
433433
to_fw_pkey_sz(128));
434434

435+
/* Check log_max_qp from HCA caps to set in current profile */
436+
if (MLX5_CAP_GEN_MAX(dev, log_max_qp) < profile[prof_sel].log_max_qp) {
437+
mlx5_core_warn(dev, "log_max_qp value in current profile is %d, changing it to HCA capability limit (%d)\n",
438+
profile[prof_sel].log_max_qp,
439+
MLX5_CAP_GEN_MAX(dev, log_max_qp));
440+
profile[prof_sel].log_max_qp = MLX5_CAP_GEN_MAX(dev, log_max_qp);
441+
}
435442
if (prof->mask & MLX5_PROF_MASK_QP_SIZE)
436443
MLX5_SET(cmd_hca_cap, set_hca_cap, log_max_qp,
437444
prof->log_max_qp);
@@ -505,15 +512,14 @@ static int mlx5_irq_set_affinity_hint(struct mlx5_core_dev *mdev, int i)
505512
struct mlx5_priv *priv = &mdev->priv;
506513
struct msix_entry *msix = priv->msix_arr;
507514
int irq = msix[i + MLX5_EQ_VEC_COMP_BASE].vector;
508-
int numa_node = priv->numa_node;
509515
int err;
510516

511517
if (!zalloc_cpumask_var(&priv->irq_info[i].mask, GFP_KERNEL)) {
512518
mlx5_core_warn(mdev, "zalloc_cpumask_var failed");
513519
return -ENOMEM;
514520
}
515521

516-
cpumask_set_cpu(cpumask_local_spread(i, numa_node),
522+
cpumask_set_cpu(cpumask_local_spread(i, priv->numa_node),
517523
priv->irq_info[i].mask);
518524

519525
err = irq_set_affinity_hint(irq, priv->irq_info[i].mask);

drivers/net/ethernet/stmicro/stmmac/stmmac_main.c

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2939,12 +2939,6 @@ int stmmac_dvr_probe(struct device *device,
29392939
spin_lock_init(&priv->lock);
29402940
spin_lock_init(&priv->tx_lock);
29412941

2942-
ret = register_netdev(ndev);
2943-
if (ret) {
2944-
pr_err("%s: ERROR %i registering the device\n", __func__, ret);
2945-
goto error_netdev_register;
2946-
}
2947-
29482942
/* If a specific clk_csr value is passed from the platform
29492943
* this means that the CSR Clock Range selection cannot be
29502944
* changed at run-time and it is fixed. Viceversa the driver'll try to
@@ -2969,11 +2963,21 @@ int stmmac_dvr_probe(struct device *device,
29692963
}
29702964
}
29712965

2972-
return 0;
2966+
ret = register_netdev(ndev);
2967+
if (ret) {
2968+
netdev_err(priv->dev, "%s: ERROR %i registering the device\n",
2969+
__func__, ret);
2970+
goto error_netdev_register;
2971+
}
2972+
2973+
return ret;
29732974

2974-
error_mdio_register:
2975-
unregister_netdev(ndev);
29762975
error_netdev_register:
2976+
if (priv->pcs != STMMAC_PCS_RGMII &&
2977+
priv->pcs != STMMAC_PCS_TBI &&
2978+
priv->pcs != STMMAC_PCS_RTBI)
2979+
stmmac_mdio_unregister(ndev);
2980+
error_mdio_register:
29772981
netif_napi_del(&priv->napi);
29782982
error_hw_init:
29792983
clk_disable_unprepare(priv->pclk);

drivers/net/hyperv/netvsc_drv.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@
4040

4141
#include "hyperv_net.h"
4242

43+
/* Restrict GSO size to account for NVGRE */
44+
#define NETVSC_GSO_MAX_SIZE 62768
4345

4446
#define RING_SIZE_MIN 64
4547
static int ring_size = 128;
@@ -852,6 +854,7 @@ static int netvsc_set_channels(struct net_device *net,
852854
}
853855
goto recover;
854856
}
857+
netif_set_gso_max_size(net, NETVSC_GSO_MAX_SIZE);
855858

856859
out:
857860
netvsc_open(net);

drivers/net/usb/r8152.c

Lines changed: 64 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3446,39 +3446,87 @@ static bool delay_autosuspend(struct r8152 *tp)
34463446
return false;
34473447
}
34483448

3449-
static int rtl8152_suspend(struct usb_interface *intf, pm_message_t message)
3449+
static int rtl8152_rumtime_suspend(struct r8152 *tp)
34503450
{
3451-
struct r8152 *tp = usb_get_intfdata(intf);
34523451
struct net_device *netdev = tp->netdev;
34533452
int ret = 0;
34543453

3455-
mutex_lock(&tp->control);
3454+
if (netif_running(netdev) && test_bit(WORK_ENABLE, &tp->flags)) {
3455+
u32 rcr = 0;
34563456

3457-
if (PMSG_IS_AUTO(message)) {
3458-
if (netif_running(netdev) && delay_autosuspend(tp)) {
3457+
if (delay_autosuspend(tp)) {
34593458
ret = -EBUSY;
34603459
goto out1;
34613460
}
34623461

3463-
set_bit(SELECTIVE_SUSPEND, &tp->flags);
3464-
} else {
3465-
netif_device_detach(netdev);
3462+
if (netif_carrier_ok(netdev)) {
3463+
u32 ocp_data;
3464+
3465+
rcr = ocp_read_dword(tp, MCU_TYPE_PLA, PLA_RCR);
3466+
ocp_data = rcr & ~RCR_ACPT_ALL;
3467+
ocp_write_dword(tp, MCU_TYPE_PLA, PLA_RCR, ocp_data);
3468+
rxdy_gated_en(tp, true);
3469+
ocp_data = ocp_read_byte(tp, MCU_TYPE_PLA,
3470+
PLA_OOB_CTRL);
3471+
if (!(ocp_data & RXFIFO_EMPTY)) {
3472+
rxdy_gated_en(tp, false);
3473+
ocp_write_dword(tp, MCU_TYPE_PLA, PLA_RCR, rcr);
3474+
ret = -EBUSY;
3475+
goto out1;
3476+
}
3477+
}
3478+
3479+
clear_bit(WORK_ENABLE, &tp->flags);
3480+
usb_kill_urb(tp->intr_urb);
3481+
3482+
rtl_runtime_suspend_enable(tp, true);
3483+
3484+
if (netif_carrier_ok(netdev)) {
3485+
napi_disable(&tp->napi);
3486+
rtl_stop_rx(tp);
3487+
rxdy_gated_en(tp, false);
3488+
ocp_write_dword(tp, MCU_TYPE_PLA, PLA_RCR, rcr);
3489+
napi_enable(&tp->napi);
3490+
}
34663491
}
34673492

3493+
set_bit(SELECTIVE_SUSPEND, &tp->flags);
3494+
3495+
out1:
3496+
return ret;
3497+
}
3498+
3499+
static int rtl8152_system_suspend(struct r8152 *tp)
3500+
{
3501+
struct net_device *netdev = tp->netdev;
3502+
int ret = 0;
3503+
3504+
netif_device_detach(netdev);
3505+
34683506
if (netif_running(netdev) && test_bit(WORK_ENABLE, &tp->flags)) {
34693507
clear_bit(WORK_ENABLE, &tp->flags);
34703508
usb_kill_urb(tp->intr_urb);
34713509
napi_disable(&tp->napi);
3472-
if (test_bit(SELECTIVE_SUSPEND, &tp->flags)) {
3473-
rtl_stop_rx(tp);
3474-
rtl_runtime_suspend_enable(tp, true);
3475-
} else {
3476-
cancel_delayed_work_sync(&tp->schedule);
3477-
tp->rtl_ops.down(tp);
3478-
}
3510+
cancel_delayed_work_sync(&tp->schedule);
3511+
tp->rtl_ops.down(tp);
34793512
napi_enable(&tp->napi);
34803513
}
3481-
out1:
3514+
3515+
return ret;
3516+
}
3517+
3518+
static int rtl8152_suspend(struct usb_interface *intf, pm_message_t message)
3519+
{
3520+
struct r8152 *tp = usb_get_intfdata(intf);
3521+
int ret;
3522+
3523+
mutex_lock(&tp->control);
3524+
3525+
if (PMSG_IS_AUTO(message))
3526+
ret = rtl8152_rumtime_suspend(tp);
3527+
else
3528+
ret = rtl8152_system_suspend(tp);
3529+
34823530
mutex_unlock(&tp->control);
34833531

34843532
return ret;

0 commit comments

Comments
 (0)