Skip to content

Commit

Permalink
Merge tag 'v4.14.335' into 4.14-main
Browse files Browse the repository at this point in the history
This is the 4.14.335 stable release

# -----BEGIN PGP SIGNATURE-----
#
# iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAmWbzYYACgkQONu9yGCS
# aT5yuA//cfIIRarmgTer4zke1a3IvizQR8mIR8dELEimi0Zcws6ZrLa3Dr6CXhEc
# olKM5OtMypYU/VjlAb4j8PMLoGzHoUxZo1sbBwQ3JhmPU0JpKPM5R/W+GE1+++Se
# 1Wgqv1r5/DXsPEI6Tmn1a0W2B/oTe7hLdCWoCpQUmgYeIBF63Ayh5c4a1jyCJHuv
# zb4JJR2WteUiZ3A7E3UvjSNR1ydwKXH3Prb3zuhqtwo5AWy7Xzot3U34IXEUYNkL
# D1I+5JwGullBJUqHS86Fn6geAo51+H+faO9u8C8HwusnxXxpX6YymhuW49yX+DVI
# B+cEBh0itKZJPeIRYk3Gr4kJ2qP9xn3pxvF1xHYiBrQtcp5feVuth0lqyo7n1YPp
# Uca7Ap6GzLKalZA6sK3ZpJLUFSA4yj84VJzp9b3wC0QztRuSGkVeAEXSAdF/kVDM
# YCjWjIXlLj1A/vQ1HQC5wOKcrn6P04so4uRMVN7LukSdJFn9yuk4v6ZxMoKCPBJc
# Z8U0dF1hGgWjwe3ggdWOnfqOKti2EJ6+OmSsJkPoWS0zk9q3pSknQ56XgB+ejIBQ
# OLl93RKrkojO4xR1U7rPl2Qhbat2Q0NY4mj0ZxLGTX/Nxo0SyKuX+d9t+cDRbRzP
# lGNjjQlfeP2IXHLluqxNea+2sc86m7ce9gyJ3D/6SEcnE2plWi8=
# =Y9Wv
# -----END PGP SIGNATURE-----
# gpg: Signature made Mon Jan  8 11:25:10 2024 CET
# gpg:                using RSA key 647F28654894E3BD457199BE38DBBDC86092693E
# gpg: Can't check signature: No public key
  • Loading branch information
frank-w committed Jan 14, 2024
2 parents 95e3ee1 + 11fc60f commit dae697a
Show file tree
Hide file tree
Showing 18 changed files with 158 additions and 30 deletions.
2 changes: 1 addition & 1 deletion Makefile
@@ -1,7 +1,7 @@
# SPDX-License-Identifier: GPL-2.0
VERSION = 4
PATCHLEVEL = 14
SUBLEVEL = 334
SUBLEVEL = 335
EXTRAVERSION =
NAME = Petit Gorille

Expand Down
5 changes: 5 additions & 0 deletions arch/arm/mach-omap2/id.c
Expand Up @@ -784,10 +784,15 @@ void __init omap_soc_device_init(void)

soc_dev_attr->machine = soc_name;
soc_dev_attr->family = omap_get_family();
if (!soc_dev_attr->family) {
kfree(soc_dev_attr);
return;
}
soc_dev_attr->revision = soc_rev;

soc_dev = soc_device_register(soc_dev_attr);
if (IS_ERR(soc_dev)) {
kfree(soc_dev_attr->family);
kfree(soc_dev_attr);
return;
}
Expand Down
2 changes: 1 addition & 1 deletion arch/s390/include/asm/fpu/api.h
Expand Up @@ -76,7 +76,7 @@ static inline int test_fp_ctl(u32 fpc)
#define KERNEL_VXR_HIGH (KERNEL_VXR_V16V23|KERNEL_VXR_V24V31)

#define KERNEL_VXR (KERNEL_VXR_LOW|KERNEL_VXR_HIGH)
#define KERNEL_FPR (KERNEL_FPC|KERNEL_VXR_V0V7)
#define KERNEL_FPR (KERNEL_FPC|KERNEL_VXR_LOW)

struct kernel_fpu;

Expand Down
4 changes: 2 additions & 2 deletions drivers/iio/common/ms_sensors/ms_sensors_i2c.c
Expand Up @@ -16,8 +16,8 @@
/* Conversion times in us */
static const u16 ms_sensors_ht_t_conversion_time[] = { 50000, 25000,
13000, 7000 };
static const u16 ms_sensors_ht_h_conversion_time[] = { 16000, 3000,
5000, 8000 };
static const u16 ms_sensors_ht_h_conversion_time[] = { 16000, 5000,
3000, 8000 };
static const u16 ms_sensors_tp_conversion_time[] = { 500, 1100, 2100,
4100, 8220, 16440 };

Expand Down
4 changes: 2 additions & 2 deletions drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
Expand Up @@ -421,13 +421,13 @@ inv_mpu6050_read_raw(struct iio_dev *indio_dev,
ret = inv_mpu6050_sensor_show(st, st->reg->gyro_offset,
chan->channel2, val);
mutex_unlock(&st->lock);
return IIO_VAL_INT;
return ret;
case IIO_ACCEL:
mutex_lock(&st->lock);
ret = inv_mpu6050_sensor_show(st, st->reg->accl_offset,
chan->channel2, val);
mutex_unlock(&st->lock);
return IIO_VAL_INT;
return ret;

default:
return -EINVAL;
Expand Down
3 changes: 3 additions & 0 deletions drivers/input/keyboard/ipaq-micro-keys.c
Expand Up @@ -108,6 +108,9 @@ static int micro_key_probe(struct platform_device *pdev)
keys->codes = devm_kmemdup(&pdev->dev, micro_keycodes,
keys->input->keycodesize * keys->input->keycodemax,
GFP_KERNEL);
if (!keys->codes)
return -ENOMEM;

keys->input->keycode = keys->codes;

__set_bit(EV_KEY, keys->input->evbit);
Expand Down
11 changes: 6 additions & 5 deletions drivers/md/dm-integrity.c
Expand Up @@ -1257,11 +1257,12 @@ static void integrity_metadata(struct work_struct *w)
checksums = checksums_onstack;

__bio_for_each_segment(bv, bio, iter, dio->orig_bi_iter) {
struct bio_vec bv_copy = bv;
unsigned pos;
char *mem, *checksums_ptr;

again:
mem = (char *)kmap_atomic(bv.bv_page) + bv.bv_offset;
mem = (char *)kmap_atomic(bv_copy.bv_page) + bv_copy.bv_offset;
pos = 0;
checksums_ptr = checksums;
do {
Expand All @@ -1270,7 +1271,7 @@ static void integrity_metadata(struct work_struct *w)
sectors_to_process -= ic->sectors_per_block;
pos += ic->sectors_per_block << SECTOR_SHIFT;
sector += ic->sectors_per_block;
} while (pos < bv.bv_len && sectors_to_process && checksums != checksums_onstack);
} while (pos < bv_copy.bv_len && sectors_to_process && checksums != checksums_onstack);
kunmap_atomic(mem);

r = dm_integrity_rw_tag(ic, checksums, &dio->metadata_block, &dio->metadata_offset,
Expand All @@ -1290,9 +1291,9 @@ static void integrity_metadata(struct work_struct *w)
if (!sectors_to_process)
break;

if (unlikely(pos < bv.bv_len)) {
bv.bv_offset += pos;
bv.bv_len -= pos;
if (unlikely(pos < bv_copy.bv_len)) {
bv_copy.bv_offset += pos;
bv_copy.bv_len -= pos;
goto again;
}
}
Expand Down
5 changes: 4 additions & 1 deletion drivers/net/ethernet/atheros/atl1e/atl1e_main.c
Expand Up @@ -880,10 +880,13 @@ static int atl1e_setup_ring_resources(struct atl1e_adapter *adapter)
netdev_err(adapter->netdev, "offset(%d) > ring size(%d) !!\n",
offset, adapter->ring_size);
err = -1;
goto failed;
goto free_buffer;
}

return 0;
free_buffer:
kfree(tx_ring->tx_buffer);
tx_ring->tx_buffer = NULL;
failed:
if (adapter->ring_vir_addr != NULL) {
pci_free_consistent(pdev, adapter->ring_size,
Expand Down
6 changes: 3 additions & 3 deletions drivers/usb/serial/ftdi_sio.c
Expand Up @@ -1006,9 +1006,9 @@ static const struct usb_device_id id_table_combined[] = {
{ USB_DEVICE(FTDI_VID, ACTISENSE_USG_PID) },
{ USB_DEVICE(FTDI_VID, ACTISENSE_NGT_PID) },
{ USB_DEVICE(FTDI_VID, ACTISENSE_NGW_PID) },
{ USB_DEVICE(FTDI_VID, ACTISENSE_D9AC_PID) },
{ USB_DEVICE(FTDI_VID, ACTISENSE_D9AD_PID) },
{ USB_DEVICE(FTDI_VID, ACTISENSE_D9AE_PID) },
{ USB_DEVICE(FTDI_VID, ACTISENSE_UID_PID) },
{ USB_DEVICE(FTDI_VID, ACTISENSE_USA_PID) },
{ USB_DEVICE(FTDI_VID, ACTISENSE_NGX_PID) },
{ USB_DEVICE(FTDI_VID, ACTISENSE_D9AF_PID) },
{ USB_DEVICE(FTDI_VID, CHETCO_SEAGAUGE_PID) },
{ USB_DEVICE(FTDI_VID, CHETCO_SEASWITCH_PID) },
Expand Down
6 changes: 3 additions & 3 deletions drivers/usb/serial/ftdi_sio_ids.h
Expand Up @@ -1561,9 +1561,9 @@
#define ACTISENSE_USG_PID 0xD9A9 /* USG USB Serial Adapter */
#define ACTISENSE_NGT_PID 0xD9AA /* NGT NMEA2000 Interface */
#define ACTISENSE_NGW_PID 0xD9AB /* NGW NMEA2000 Gateway */
#define ACTISENSE_D9AC_PID 0xD9AC /* Actisense Reserved */
#define ACTISENSE_D9AD_PID 0xD9AD /* Actisense Reserved */
#define ACTISENSE_D9AE_PID 0xD9AE /* Actisense Reserved */
#define ACTISENSE_UID_PID 0xD9AC /* USB Isolating Device */
#define ACTISENSE_USA_PID 0xD9AD /* USB to Serial Adapter */
#define ACTISENSE_NGX_PID 0xD9AE /* NGX NMEA2000 Gateway */
#define ACTISENSE_D9AF_PID 0xD9AF /* Actisense Reserved */
#define CHETCO_SEAGAUGE_PID 0xA548 /* SeaGauge USB Adapter */
#define CHETCO_SEASWITCH_PID 0xA549 /* SeaSwitch USB Adapter */
Expand Down
5 changes: 5 additions & 0 deletions drivers/usb/serial/option.c
Expand Up @@ -275,6 +275,7 @@ static void option_instat_callback(struct urb *urb);
#define QUECTEL_PRODUCT_RM500Q 0x0800
#define QUECTEL_PRODUCT_RM520N 0x0801
#define QUECTEL_PRODUCT_EC200U 0x0901
#define QUECTEL_PRODUCT_EG912Y 0x6001
#define QUECTEL_PRODUCT_EC200S_CN 0x6002
#define QUECTEL_PRODUCT_EC200A 0x6005
#define QUECTEL_PRODUCT_EM061K_LWW 0x6008
Expand Down Expand Up @@ -1235,6 +1236,7 @@ static const struct usb_device_id option_ids[] = {
{ USB_DEVICE_INTERFACE_CLASS(QUECTEL_VENDOR_ID, 0x0700, 0xff), /* BG95 */
.driver_info = RSVD(3) | ZLP },
{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_RM500Q, 0xff, 0xff, 0x30) },
{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_RM500Q, 0xff, 0, 0x40) },
{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_RM500Q, 0xff, 0, 0) },
{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_RM500Q, 0xff, 0xff, 0x10),
.driver_info = ZLP },
Expand All @@ -1247,6 +1249,7 @@ static const struct usb_device_id option_ids[] = {
{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC200U, 0xff, 0, 0) },
{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC200S_CN, 0xff, 0, 0) },
{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC200T, 0xff, 0, 0) },
{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EG912Y, 0xff, 0, 0) },
{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_RM500K, 0xff, 0x00, 0x00) },

{ USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6001) },
Expand Down Expand Up @@ -2244,6 +2247,8 @@ static const struct usb_device_id option_ids[] = {
.driver_info = RSVD(0) | RSVD(1) | RSVD(6) },
{ USB_DEVICE(0x0489, 0xe0b5), /* Foxconn T77W968 ESIM */
.driver_info = RSVD(0) | RSVD(1) | RSVD(6) },
{ USB_DEVICE_INTERFACE_CLASS(0x0489, 0xe0da, 0xff), /* Foxconn T99W265 MBIM variant */
.driver_info = RSVD(3) | RSVD(5) },
{ USB_DEVICE_INTERFACE_CLASS(0x0489, 0xe0db, 0xff), /* Foxconn T99W265 MBIM */
.driver_info = RSVD(3) },
{ USB_DEVICE_INTERFACE_CLASS(0x0489, 0xe0ee, 0xff), /* Foxconn T99W368 MBIM */
Expand Down
9 changes: 7 additions & 2 deletions fs/block_dev.c
Expand Up @@ -2033,21 +2033,26 @@ static long blkdev_fallocate(struct file *file, int mode, loff_t start,
if ((start | len) & (bdev_logical_block_size(bdev) - 1))
return -EINVAL;

/* Invalidate the page cache, including dirty pages. */
/*
* Invalidate the page cache, including dirty pages, for valid
* de-allocate mode calls to fallocate().
*/
mapping = bdev->bd_inode->i_mapping;
truncate_inode_pages_range(mapping, start, end);

switch (mode) {
case FALLOC_FL_ZERO_RANGE:
case FALLOC_FL_ZERO_RANGE | FALLOC_FL_KEEP_SIZE:
truncate_inode_pages_range(mapping, start, end);
error = blkdev_issue_zeroout(bdev, start >> 9, len >> 9,
GFP_KERNEL, BLKDEV_ZERO_NOUNMAP);
break;
case FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE:
truncate_inode_pages_range(mapping, start, end);
error = blkdev_issue_zeroout(bdev, start >> 9, len >> 9,
GFP_KERNEL, BLKDEV_ZERO_NOFALLBACK);
break;
case FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE | FALLOC_FL_NO_HIDE_STALE:
truncate_inode_pages_range(mapping, start, end);
error = blkdev_issue_discard(bdev, start >> 9, len >> 9,
GFP_KERNEL, 0);
break;
Expand Down
17 changes: 13 additions & 4 deletions net/9p/protocol.c
Expand Up @@ -243,6 +243,8 @@ p9pdu_vreadf(struct p9_fcall *pdu, int proto_version, const char *fmt,
uint16_t *nwname = va_arg(ap, uint16_t *);
char ***wnames = va_arg(ap, char ***);

*wnames = NULL;

errcode = p9pdu_readf(pdu, proto_version,
"w", nwname);
if (!errcode) {
Expand All @@ -251,6 +253,8 @@ p9pdu_vreadf(struct p9_fcall *pdu, int proto_version, const char *fmt,
GFP_NOFS);
if (!*wnames)
errcode = -ENOMEM;
else
(*wnames)[0] = NULL;
}

if (!errcode) {
Expand All @@ -262,20 +266,25 @@ p9pdu_vreadf(struct p9_fcall *pdu, int proto_version, const char *fmt,
proto_version,
"s",
&(*wnames)[i]);
if (errcode)
if (errcode) {
(*wnames)[i] = NULL;
break;
}
}
}

if (errcode) {
if (*wnames) {
int i;

for (i = 0; i < *nwname; i++)
for (i = 0; i < *nwname; i++) {
if (!(*wnames)[i])
break;
kfree((*wnames)[i]);
}
kfree(*wnames);
*wnames = NULL;
}
kfree(*wnames);
*wnames = NULL;
}
}
break;
Expand Down
3 changes: 2 additions & 1 deletion net/bluetooth/hci_event.c
Expand Up @@ -1470,7 +1470,8 @@ static void hci_cs_inquiry(struct hci_dev *hdev, __u8 status)
return;
}

set_bit(HCI_INQUIRY, &hdev->flags);
if (hci_sent_cmd_data(hdev, HCI_OP_INQUIRY))
set_bit(HCI_INQUIRY, &hdev->flags);
}

static void hci_cs_create_conn(struct hci_dev *hdev, __u8 status)
Expand Down
1 change: 1 addition & 0 deletions net/ife/ife.c
Expand Up @@ -82,6 +82,7 @@ void *ife_decode(struct sk_buff *skb, u16 *metalen)
if (unlikely(!pskb_may_pull(skb, total_pull)))
return NULL;

ifehdr = (struct ifeheadr *)(skb->data + skb->dev->hard_header_len);
skb_set_mac_header(skb, total_pull);
__skb_pull(skb, total_pull);
*metalen = ifehdrln - IFE_METAHDRLEN;
Expand Down
10 changes: 5 additions & 5 deletions net/mac80211/mesh_plink.c
Expand Up @@ -1025,18 +1025,18 @@ mesh_plink_get_event(struct ieee80211_sub_if_data *sdata,
case WLAN_SP_MESH_PEERING_OPEN:
if (!matches_local)
event = OPN_RJCT;
if (!mesh_plink_free_count(sdata) ||
(sta->mesh->plid && sta->mesh->plid != plid))
else if (!mesh_plink_free_count(sdata) ||
(sta->mesh->plid && sta->mesh->plid != plid))
event = OPN_IGNR;
else
event = OPN_ACPT;
break;
case WLAN_SP_MESH_PEERING_CONFIRM:
if (!matches_local)
event = CNF_RJCT;
if (!mesh_plink_free_count(sdata) ||
sta->mesh->llid != llid ||
(sta->mesh->plid && sta->mesh->plid != plid))
else if (!mesh_plink_free_count(sdata) ||
sta->mesh->llid != llid ||
(sta->mesh->plid && sta->mesh->plid != plid))
event = CNF_IGNR;
else
event = CNF_ACPT;
Expand Down
8 changes: 8 additions & 0 deletions net/rfkill/rfkill-gpio.c
Expand Up @@ -129,6 +129,14 @@ static int rfkill_gpio_probe(struct platform_device *pdev)
return -EINVAL;
}

ret = gpiod_direction_output(rfkill->reset_gpio, true);
if (ret)
return ret;

ret = gpiod_direction_output(rfkill->shutdown_gpio, true);
if (ret)
return ret;

rfkill->rfkill_dev = rfkill_alloc(rfkill->name, &pdev->dev,
rfkill->type, &rfkill_gpio_ops,
rfkill);
Expand Down

0 comments on commit dae697a

Please sign in to comment.