Skip to content

Commit d834293

Browse files
authored
Merge pull request torvalds#188 from zandrey/5.4-2.2.x-imx
Update 5.4-2.2.x-imx to v5.4.82
2 parents 21f93f1 + b261580 commit d834293

File tree

48 files changed

+303
-131
lines changed

Some content is hidden

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

48 files changed

+303
-131
lines changed

Documentation/devicetree/bindings/net/can/tcan4x5x.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ tcan4x5x: tcan4x5x@0 {
3333
spi-max-frequency = <10000000>;
3434
bosch,mram-cfg = <0x0 0 0 32 0 0 1 1>;
3535
interrupt-parent = <&gpio1>;
36-
interrupts = <14 GPIO_ACTIVE_LOW>;
36+
interrupts = <14 IRQ_TYPE_LEVEL_LOW>;
3737
device-state-gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
3838
device-wake-gpios = <&gpio1 15 GPIO_ACTIVE_HIGH>;
3939
reset-gpios = <&gpio1 27 GPIO_ACTIVE_LOW>;

Documentation/devicetree/bindings/net/nfc/nxp-nci.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ Example (for ARM-based BeagleBone with NPC100 NFC controller on I2C2):
2525
clock-frequency = <100000>;
2626

2727
interrupt-parent = <&gpio1>;
28-
interrupts = <29 GPIO_ACTIVE_HIGH>;
28+
interrupts = <29 IRQ_TYPE_LEVEL_HIGH>;
2929

3030
enable-gpios = <&gpio0 30 GPIO_ACTIVE_HIGH>;
3131
firmware-gpios = <&gpio0 31 GPIO_ACTIVE_HIGH>;

Documentation/devicetree/bindings/net/nfc/pn544.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ Example (for ARM-based BeagleBone with PN544 on I2C2):
2525
clock-frequency = <400000>;
2626

2727
interrupt-parent = <&gpio1>;
28-
interrupts = <17 GPIO_ACTIVE_HIGH>;
28+
interrupts = <17 IRQ_TYPE_LEVEL_HIGH>;
2929

3030
enable-gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
3131
firmware-gpios = <&gpio3 19 GPIO_ACTIVE_HIGH>;

Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# SPDX-License-Identifier: GPL-2.0
22
VERSION = 5
33
PATCHLEVEL = 4
4-
SUBLEVEL = 81
4+
SUBLEVEL = 82
55
EXTRAVERSION =
66
NAME = Kleptomaniac Octopus
77

drivers/crypto/chelsio/chtls/chtls_cm.c

+1
Original file line numberDiff line numberDiff line change
@@ -1077,6 +1077,7 @@ static struct sock *chtls_recv_sock(struct sock *lsk,
10771077
sk_setup_caps(newsk, dst);
10781078
ctx = tls_get_ctx(lsk);
10791079
newsk->sk_destruct = ctx->sk_destruct;
1080+
newsk->sk_prot_creator = lsk->sk_prot_creator;
10801081
csk->sk = newsk;
10811082
csk->passive_reap_next = oreq;
10821083
csk->tx_chan = cxgb4_port_chan(ndev);

drivers/crypto/chelsio/chtls/chtls_hw.c

+1
Original file line numberDiff line numberDiff line change
@@ -365,6 +365,7 @@ int chtls_setkey(struct chtls_sock *csk, u32 keylen, u32 optname)
365365
csk->wr_unacked += DIV_ROUND_UP(len, 16);
366366
enqueue_wr(csk, skb);
367367
cxgb4_ofld_send(csk->egress_dev, skb);
368+
skb = NULL;
368369

369370
chtls_set_scmd(csk);
370371
/* Clear quiesce for Rx key */

drivers/infiniband/hw/i40iw/i40iw_main.c

-5
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,6 @@
5454
#define DRV_VERSION __stringify(DRV_VERSION_MAJOR) "." \
5555
__stringify(DRV_VERSION_MINOR) "." __stringify(DRV_VERSION_BUILD)
5656

57-
static int push_mode;
58-
module_param(push_mode, int, 0644);
59-
MODULE_PARM_DESC(push_mode, "Low latency mode: 0=disabled (default), 1=enabled)");
60-
6157
static int debug;
6258
module_param(debug, int, 0644);
6359
MODULE_PARM_DESC(debug, "debug flags: 0=disabled (default), 0x7fffffff=all");
@@ -1588,7 +1584,6 @@ static enum i40iw_status_code i40iw_setup_init_state(struct i40iw_handler *hdl,
15881584
if (status)
15891585
goto exit;
15901586
iwdev->obj_next = iwdev->obj_mem;
1591-
iwdev->push_mode = push_mode;
15921587

15931588
init_waitqueue_head(&iwdev->vchnl_waitq);
15941589
init_waitqueue_head(&dev->vf_reqs);

drivers/infiniband/hw/i40iw/i40iw_verbs.c

+7-29
Original file line numberDiff line numberDiff line change
@@ -168,38 +168,16 @@ static void i40iw_dealloc_ucontext(struct ib_ucontext *context)
168168
*/
169169
static int i40iw_mmap(struct ib_ucontext *context, struct vm_area_struct *vma)
170170
{
171-
struct i40iw_ucontext *ucontext;
172-
u64 db_addr_offset;
173-
u64 push_offset;
174-
175-
ucontext = to_ucontext(context);
176-
if (ucontext->iwdev->sc_dev.is_pf) {
177-
db_addr_offset = I40IW_DB_ADDR_OFFSET;
178-
push_offset = I40IW_PUSH_OFFSET;
179-
if (vma->vm_pgoff)
180-
vma->vm_pgoff += I40IW_PF_FIRST_PUSH_PAGE_INDEX - 1;
181-
} else {
182-
db_addr_offset = I40IW_VF_DB_ADDR_OFFSET;
183-
push_offset = I40IW_VF_PUSH_OFFSET;
184-
if (vma->vm_pgoff)
185-
vma->vm_pgoff += I40IW_VF_FIRST_PUSH_PAGE_INDEX - 1;
186-
}
171+
struct i40iw_ucontext *ucontext = to_ucontext(context);
172+
u64 dbaddr;
187173

188-
vma->vm_pgoff += db_addr_offset >> PAGE_SHIFT;
174+
if (vma->vm_pgoff || vma->vm_end - vma->vm_start != PAGE_SIZE)
175+
return -EINVAL;
189176

190-
if (vma->vm_pgoff == (db_addr_offset >> PAGE_SHIFT)) {
191-
vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
192-
vma->vm_private_data = ucontext;
193-
} else {
194-
if ((vma->vm_pgoff - (push_offset >> PAGE_SHIFT)) % 2)
195-
vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
196-
else
197-
vma->vm_page_prot = pgprot_writecombine(vma->vm_page_prot);
198-
}
177+
dbaddr = I40IW_DB_ADDR_OFFSET + pci_resource_start(ucontext->iwdev->ldev->pcidev, 0);
199178

200-
if (io_remap_pfn_range(vma, vma->vm_start,
201-
vma->vm_pgoff + (pci_resource_start(ucontext->iwdev->ldev->pcidev, 0) >> PAGE_SHIFT),
202-
PAGE_SIZE, vma->vm_page_prot))
179+
if (io_remap_pfn_range(vma, vma->vm_start, dbaddr >> PAGE_SHIFT, PAGE_SIZE,
180+
pgprot_noncached(vma->vm_page_prot)))
203181
return -EAGAIN;
204182

205183
return 0;

drivers/input/joystick/xpad.c

+2
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,7 @@ static const struct xpad_device {
241241
{ 0x1038, 0x1430, "SteelSeries Stratus Duo", 0, XTYPE_XBOX360 },
242242
{ 0x1038, 0x1431, "SteelSeries Stratus Duo", 0, XTYPE_XBOX360 },
243243
{ 0x11c9, 0x55f0, "Nacon GC-100XF", 0, XTYPE_XBOX360 },
244+
{ 0x1209, 0x2882, "Ardwiino Controller", 0, XTYPE_XBOX360 },
244245
{ 0x12ab, 0x0004, "Honey Bee Xbox360 dancepad", MAP_DPAD_TO_BUTTONS, XTYPE_XBOX360 },
245246
{ 0x12ab, 0x0301, "PDP AFTERGLOW AX.1", 0, XTYPE_XBOX360 },
246247
{ 0x12ab, 0x0303, "Mortal Kombat Klassic FightStick", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 },
@@ -418,6 +419,7 @@ static const struct usb_device_id xpad_table[] = {
418419
XPAD_XBOXONE_VENDOR(0x0f0d), /* Hori Controllers */
419420
XPAD_XBOX360_VENDOR(0x1038), /* SteelSeries Controllers */
420421
XPAD_XBOX360_VENDOR(0x11c9), /* Nacon GC100XF */
422+
XPAD_XBOX360_VENDOR(0x1209), /* Ardwiino Controllers */
421423
XPAD_XBOX360_VENDOR(0x12ab), /* X-Box 360 dance pads */
422424
XPAD_XBOX360_VENDOR(0x1430), /* RedOctane X-Box 360 controllers */
423425
XPAD_XBOX360_VENDOR(0x146b), /* BigBen Interactive Controllers */

drivers/input/serio/i8042-x86ia64io.h

+4
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,10 @@ static const struct dmi_system_id __initconst i8042_dmi_noloop_table[] = {
219219
DMI_MATCH(DMI_SYS_VENDOR, "PEGATRON CORPORATION"),
220220
DMI_MATCH(DMI_PRODUCT_NAME, "C15B"),
221221
},
222+
.matches = {
223+
DMI_MATCH(DMI_SYS_VENDOR, "ByteSpeed LLC"),
224+
DMI_MATCH(DMI_PRODUCT_NAME, "ByteSpeed Laptop C15B"),
225+
},
222226
},
223227
{ }
224228
};

drivers/net/bonding/bond_main.c

+43-18
Original file line numberDiff line numberDiff line change
@@ -1293,19 +1293,57 @@ static void bond_upper_dev_unlink(struct bonding *bond, struct slave *slave)
12931293
slave->dev->flags &= ~IFF_SLAVE;
12941294
}
12951295

1296-
static struct slave *bond_alloc_slave(struct bonding *bond)
1296+
static void slave_kobj_release(struct kobject *kobj)
1297+
{
1298+
struct slave *slave = to_slave(kobj);
1299+
struct bonding *bond = bond_get_bond_by_slave(slave);
1300+
1301+
cancel_delayed_work_sync(&slave->notify_work);
1302+
if (BOND_MODE(bond) == BOND_MODE_8023AD)
1303+
kfree(SLAVE_AD_INFO(slave));
1304+
1305+
kfree(slave);
1306+
}
1307+
1308+
static struct kobj_type slave_ktype = {
1309+
.release = slave_kobj_release,
1310+
#ifdef CONFIG_SYSFS
1311+
.sysfs_ops = &slave_sysfs_ops,
1312+
#endif
1313+
};
1314+
1315+
static int bond_kobj_init(struct slave *slave)
1316+
{
1317+
int err;
1318+
1319+
err = kobject_init_and_add(&slave->kobj, &slave_ktype,
1320+
&(slave->dev->dev.kobj), "bonding_slave");
1321+
if (err)
1322+
kobject_put(&slave->kobj);
1323+
1324+
return err;
1325+
}
1326+
1327+
static struct slave *bond_alloc_slave(struct bonding *bond,
1328+
struct net_device *slave_dev)
12971329
{
12981330
struct slave *slave = NULL;
12991331

13001332
slave = kzalloc(sizeof(*slave), GFP_KERNEL);
13011333
if (!slave)
13021334
return NULL;
13031335

1336+
slave->bond = bond;
1337+
slave->dev = slave_dev;
1338+
1339+
if (bond_kobj_init(slave))
1340+
return NULL;
1341+
13041342
if (BOND_MODE(bond) == BOND_MODE_8023AD) {
13051343
SLAVE_AD_INFO(slave) = kzalloc(sizeof(struct ad_slave_info),
13061344
GFP_KERNEL);
13071345
if (!SLAVE_AD_INFO(slave)) {
1308-
kfree(slave);
1346+
kobject_put(&slave->kobj);
13091347
return NULL;
13101348
}
13111349
}
@@ -1314,17 +1352,6 @@ static struct slave *bond_alloc_slave(struct bonding *bond)
13141352
return slave;
13151353
}
13161354

1317-
static void bond_free_slave(struct slave *slave)
1318-
{
1319-
struct bonding *bond = bond_get_bond_by_slave(slave);
1320-
1321-
cancel_delayed_work_sync(&slave->notify_work);
1322-
if (BOND_MODE(bond) == BOND_MODE_8023AD)
1323-
kfree(SLAVE_AD_INFO(slave));
1324-
1325-
kfree(slave);
1326-
}
1327-
13281355
static void bond_fill_ifbond(struct bonding *bond, struct ifbond *info)
13291356
{
13301357
info->bond_mode = BOND_MODE(bond);
@@ -1508,14 +1535,12 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev,
15081535
goto err_undo_flags;
15091536
}
15101537

1511-
new_slave = bond_alloc_slave(bond);
1538+
new_slave = bond_alloc_slave(bond, slave_dev);
15121539
if (!new_slave) {
15131540
res = -ENOMEM;
15141541
goto err_undo_flags;
15151542
}
15161543

1517-
new_slave->bond = bond;
1518-
new_slave->dev = slave_dev;
15191544
/* Set the new_slave's queue_id to be zero. Queue ID mapping
15201545
* is set via sysfs or module option if desired.
15211546
*/
@@ -1837,7 +1862,7 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev,
18371862
dev_set_mtu(slave_dev, new_slave->original_mtu);
18381863

18391864
err_free:
1840-
bond_free_slave(new_slave);
1865+
kobject_put(&new_slave->kobj);
18411866

18421867
err_undo_flags:
18431868
/* Enslave of first slave has failed and we need to fix master's mac */
@@ -2017,7 +2042,7 @@ static int __bond_release_one(struct net_device *bond_dev,
20172042
if (!netif_is_bond_master(slave_dev))
20182043
slave_dev->priv_flags &= ~IFF_BONDING;
20192044

2020-
bond_free_slave(slave);
2045+
kobject_put(&slave->kobj);
20212046

20222047
return 0;
20232048
}

drivers/net/bonding/bond_sysfs_slave.c

+1-17
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,6 @@ static const struct slave_attribute *slave_attrs[] = {
121121
};
122122

123123
#define to_slave_attr(_at) container_of(_at, struct slave_attribute, attr)
124-
#define to_slave(obj) container_of(obj, struct slave, kobj)
125124

126125
static ssize_t slave_show(struct kobject *kobj,
127126
struct attribute *attr, char *buf)
@@ -132,28 +131,15 @@ static ssize_t slave_show(struct kobject *kobj,
132131
return slave_attr->show(slave, buf);
133132
}
134133

135-
static const struct sysfs_ops slave_sysfs_ops = {
134+
const struct sysfs_ops slave_sysfs_ops = {
136135
.show = slave_show,
137136
};
138137

139-
static struct kobj_type slave_ktype = {
140-
#ifdef CONFIG_SYSFS
141-
.sysfs_ops = &slave_sysfs_ops,
142-
#endif
143-
};
144-
145138
int bond_sysfs_slave_add(struct slave *slave)
146139
{
147140
const struct slave_attribute **a;
148141
int err;
149142

150-
err = kobject_init_and_add(&slave->kobj, &slave_ktype,
151-
&(slave->dev->dev.kobj), "bonding_slave");
152-
if (err) {
153-
kobject_put(&slave->kobj);
154-
return err;
155-
}
156-
157143
for (a = slave_attrs; *a; ++a) {
158144
err = sysfs_create_file(&slave->kobj, &((*a)->attr));
159145
if (err) {
@@ -171,6 +157,4 @@ void bond_sysfs_slave_del(struct slave *slave)
171157

172158
for (a = slave_attrs; *a; ++a)
173159
sysfs_remove_file(&slave->kobj, &((*a)->attr));
174-
175-
kobject_put(&slave->kobj);
176160
}

drivers/net/ethernet/chelsio/cxgb3/sge.c

+1
Original file line numberDiff line numberDiff line change
@@ -3176,6 +3176,7 @@ int t3_sge_alloc_qset(struct adapter *adapter, unsigned int id, int nports,
31763176
GFP_KERNEL | __GFP_COMP);
31773177
if (!avail) {
31783178
CH_ALERT(adapter, "free list queue 0 initialization failed\n");
3179+
ret = -ENOMEM;
31793180
goto err;
31803181
}
31813182
if (avail < q->fl[0].size)

drivers/net/ethernet/ibm/ibmvnic.c

+19-3
Original file line numberDiff line numberDiff line change
@@ -2307,6 +2307,12 @@ static int ibmvnic_poll(struct napi_struct *napi, int budget)
23072307

23082308
if (!pending_scrq(adapter, adapter->rx_scrq[scrq_num]))
23092309
break;
2310+
/* The queue entry at the current index is peeked at above
2311+
* to determine that there is a valid descriptor awaiting
2312+
* processing. We want to be sure that the current slot
2313+
* holds a valid descriptor before reading its contents.
2314+
*/
2315+
dma_rmb();
23102316
next = ibmvnic_next_scrq(adapter, adapter->rx_scrq[scrq_num]);
23112317
rx_buff =
23122318
(struct ibmvnic_rx_buff *)be64_to_cpu(next->
@@ -2988,13 +2994,18 @@ static int ibmvnic_complete_tx(struct ibmvnic_adapter *adapter,
29882994
unsigned int pool = scrq->pool_index;
29892995
int num_entries = 0;
29902996

2997+
/* The queue entry at the current index is peeked at above
2998+
* to determine that there is a valid descriptor awaiting
2999+
* processing. We want to be sure that the current slot
3000+
* holds a valid descriptor before reading its contents.
3001+
*/
3002+
dma_rmb();
3003+
29913004
next = ibmvnic_next_scrq(adapter, scrq);
29923005
for (i = 0; i < next->tx_comp.num_comps; i++) {
2993-
if (next->tx_comp.rcs[i]) {
3006+
if (next->tx_comp.rcs[i])
29943007
dev_err(dev, "tx error %x\n",
29953008
next->tx_comp.rcs[i]);
2996-
continue;
2997-
}
29983009
index = be32_to_cpu(next->tx_comp.correlators[i]);
29993010
if (index & IBMVNIC_TSO_POOL_MASK) {
30003011
tx_pool = &adapter->tso_pool[pool];
@@ -3388,6 +3399,11 @@ static union sub_crq *ibmvnic_next_scrq(struct ibmvnic_adapter *adapter,
33883399
}
33893400
spin_unlock_irqrestore(&scrq->lock, flags);
33903401

3402+
/* Ensure that the entire buffer descriptor has been
3403+
* loaded before reading its contents
3404+
*/
3405+
dma_rmb();
3406+
33913407
return entry;
33923408
}
33933409

drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c

+1
Original file line numberDiff line numberDiff line change
@@ -3696,6 +3696,7 @@ static int mvpp2_open(struct net_device *dev)
36963696
if (!valid) {
36973697
netdev_err(port->dev,
36983698
"invalid configuration: no dt or link IRQ");
3699+
err = -ENOENT;
36993700
goto err_free_irq;
37003701
}
37013702

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

+19-2
Original file line numberDiff line numberDiff line change
@@ -339,6 +339,24 @@ static int give_pages(struct mlx5_core_dev *dev, u16 func_id, int npages,
339339
return err;
340340
}
341341

342+
static u32 fwp_fill_manage_pages_out(struct fw_page *fwp, u32 *out, u32 index,
343+
u32 npages)
344+
{
345+
u32 pages_set = 0;
346+
unsigned int n;
347+
348+
for_each_clear_bit(n, &fwp->bitmask, MLX5_NUM_4K_IN_PAGE) {
349+
MLX5_ARRAY_SET64(manage_pages_out, out, pas, index + pages_set,
350+
fwp->addr + (n * MLX5_ADAPTER_PAGE_SIZE));
351+
pages_set++;
352+
353+
if (!--npages)
354+
break;
355+
}
356+
357+
return pages_set;
358+
}
359+
342360
static int reclaim_pages_cmd(struct mlx5_core_dev *dev,
343361
u32 *in, int in_size, u32 *out, int out_size)
344362
{
@@ -362,8 +380,7 @@ static int reclaim_pages_cmd(struct mlx5_core_dev *dev,
362380
if (fwp->func_id != func_id)
363381
continue;
364382

365-
MLX5_ARRAY_SET64(manage_pages_out, out, pas, i, fwp->addr);
366-
i++;
383+
i += fwp_fill_manage_pages_out(fwp, out, i, npages - i);
367384
}
368385

369386
MLX5_SET(manage_pages_out, out, output_num_entries, i);

0 commit comments

Comments
 (0)