From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
stable@vger.kernel.org, Nick Dyer <nick.dyer@shmanahar.org>,
Benson Leung <bleung@chromium.org>,
Ezequiel Garcia <ezequiel@collabora.com>,
Sebastian Reichel <sebastian.reichel@collabora.co.uk>,
Dmitry Torokhov <dmitry.torokhov@gmail.com>,
Sasha Levin <alexander.levin@microsoft.com>
Subject: [PATCH 4.14 099/189] Input: atmel_mxt_ts - fix the firmware update
Date: Mon, 18 Jun 2018 10:13:15 +0200 [thread overview]
Message-ID: <20180618081213.201505990@linuxfoundation.org> (raw)
In-Reply-To: <20180618081209.254234434@linuxfoundation.org>
4.14-stable review patch. If anyone has any objections, please let me know.
------------------
From: Nick Dyer <nick@shmanahar.org>
[ Upstream commit 068bdb67ef74df0ad1627b7247a163e3e252ac11 ]
The automatic update mechanism will trigger an update if the
info block CRCs are different between maxtouch configuration
file (maxtouch.cfg) and chip.
The driver compared the CRCs without retrieving the chip CRC,
resulting always in a failure and firmware flashing action
triggered. Fix this issue by retrieving the chip info block
CRC before the check.
Note that this solution has the benefit that by reading the
information block and the object table into a contiguous region
of memory, we can verify the checksum at probe time. This means
we make sure that we are indeed talking to a chip that supports
object protocol correctly.
Using this patch on a kevin chromebook, the touchscreen and
touchpad drivers are able to match the CRC:
atmel_mxt_ts 3-004b: Family: 164 Variant: 14 Firmware V2.3.AA Objects: 40
atmel_mxt_ts 5-004a: Family: 164 Variant: 17 Firmware V2.0.AA Objects: 31
atmel_mxt_ts 3-004b: Resetting device
atmel_mxt_ts 5-004a: Resetting device
atmel_mxt_ts 3-004b: Config CRC 0x573E89: OK
atmel_mxt_ts 3-004b: Touchscreen size X4095Y2729
input: Atmel maXTouch Touchscreen as /devices/platform/ff130000.i2c/i2c-3/3-004b/input/input5
atmel_mxt_ts 5-004a: Config CRC 0x0AF6BA: OK
atmel_mxt_ts 5-004a: Touchscreen size X1920Y1080
input: Atmel maXTouch Touchpad as /devices/platform/ff140000.i2c/i2c-5/5-004a/input/input6
Signed-off-by: Nick Dyer <nick.dyer@shmanahar.org>
Acked-by: Benson Leung <bleung@chromium.org>
[Ezequiel: minor patch massage]
Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com>
Tested-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/input/touchscreen/atmel_mxt_ts.c | 186 ++++++++++++++++++-------------
1 file changed, 110 insertions(+), 76 deletions(-)
--- a/drivers/input/touchscreen/atmel_mxt_ts.c
+++ b/drivers/input/touchscreen/atmel_mxt_ts.c
@@ -275,7 +275,8 @@ struct mxt_data {
char phys[64]; /* device physical location */
const struct mxt_platform_data *pdata;
struct mxt_object *object_table;
- struct mxt_info info;
+ struct mxt_info *info;
+ void *raw_info_block;
unsigned int irq;
unsigned int max_x;
unsigned int max_y;
@@ -450,12 +451,13 @@ static int mxt_lookup_bootloader_address
{
u8 appmode = data->client->addr;
u8 bootloader;
+ u8 family_id = data->info ? data->info->family_id : 0;
switch (appmode) {
case 0x4a:
case 0x4b:
/* Chips after 1664S use different scheme */
- if (retry || data->info.family_id >= 0xa2) {
+ if (retry || family_id >= 0xa2) {
bootloader = appmode - 0x24;
break;
}
@@ -682,7 +684,7 @@ mxt_get_object(struct mxt_data *data, u8
struct mxt_object *object;
int i;
- for (i = 0; i < data->info.object_num; i++) {
+ for (i = 0; i < data->info->object_num; i++) {
object = data->object_table + i;
if (object->type == type)
return object;
@@ -1453,12 +1455,12 @@ static int mxt_update_cfg(struct mxt_dat
data_pos += offset;
}
- if (cfg_info.family_id != data->info.family_id) {
+ if (cfg_info.family_id != data->info->family_id) {
dev_err(dev, "Family ID mismatch!\n");
return -EINVAL;
}
- if (cfg_info.variant_id != data->info.variant_id) {
+ if (cfg_info.variant_id != data->info->variant_id) {
dev_err(dev, "Variant ID mismatch!\n");
return -EINVAL;
}
@@ -1503,7 +1505,7 @@ static int mxt_update_cfg(struct mxt_dat
/* Malloc memory to store configuration */
cfg_start_ofs = MXT_OBJECT_START +
- data->info.object_num * sizeof(struct mxt_object) +
+ data->info->object_num * sizeof(struct mxt_object) +
MXT_INFO_CHECKSUM_SIZE;
config_mem_size = data->mem_size - cfg_start_ofs;
config_mem = kzalloc(config_mem_size, GFP_KERNEL);
@@ -1554,20 +1556,6 @@ release_mem:
return ret;
}
-static int mxt_get_info(struct mxt_data *data)
-{
- struct i2c_client *client = data->client;
- struct mxt_info *info = &data->info;
- int error;
-
- /* Read 7-byte info block starting at address 0 */
- error = __mxt_read_reg(client, 0, sizeof(*info), info);
- if (error)
- return error;
-
- return 0;
-}
-
static void mxt_free_input_device(struct mxt_data *data)
{
if (data->input_dev) {
@@ -1582,9 +1570,10 @@ static void mxt_free_object_table(struct
video_unregister_device(&data->dbg.vdev);
v4l2_device_unregister(&data->dbg.v4l2);
#endif
-
- kfree(data->object_table);
data->object_table = NULL;
+ data->info = NULL;
+ kfree(data->raw_info_block);
+ data->raw_info_block = NULL;
kfree(data->msg_buf);
data->msg_buf = NULL;
data->T5_address = 0;
@@ -1600,34 +1589,18 @@ static void mxt_free_object_table(struct
data->max_reportid = 0;
}
-static int mxt_get_object_table(struct mxt_data *data)
+static int mxt_parse_object_table(struct mxt_data *data,
+ struct mxt_object *object_table)
{
struct i2c_client *client = data->client;
- size_t table_size;
- struct mxt_object *object_table;
- int error;
int i;
u8 reportid;
u16 end_address;
- table_size = data->info.object_num * sizeof(struct mxt_object);
- object_table = kzalloc(table_size, GFP_KERNEL);
- if (!object_table) {
- dev_err(&data->client->dev, "Failed to allocate memory\n");
- return -ENOMEM;
- }
-
- error = __mxt_read_reg(client, MXT_OBJECT_START, table_size,
- object_table);
- if (error) {
- kfree(object_table);
- return error;
- }
-
/* Valid Report IDs start counting from 1 */
reportid = 1;
data->mem_size = 0;
- for (i = 0; i < data->info.object_num; i++) {
+ for (i = 0; i < data->info->object_num; i++) {
struct mxt_object *object = object_table + i;
u8 min_id, max_id;
@@ -1651,8 +1624,8 @@ static int mxt_get_object_table(struct m
switch (object->type) {
case MXT_GEN_MESSAGE_T5:
- if (data->info.family_id == 0x80 &&
- data->info.version < 0x20) {
+ if (data->info->family_id == 0x80 &&
+ data->info->version < 0x20) {
/*
* On mXT224 firmware versions prior to V2.0
* read and discard unused CRC byte otherwise
@@ -1707,24 +1680,102 @@ static int mxt_get_object_table(struct m
/* If T44 exists, T5 position has to be directly after */
if (data->T44_address && (data->T5_address != data->T44_address + 1)) {
dev_err(&client->dev, "Invalid T44 position\n");
- error = -EINVAL;
- goto free_object_table;
+ return -EINVAL;
}
data->msg_buf = kcalloc(data->max_reportid,
data->T5_msg_size, GFP_KERNEL);
- if (!data->msg_buf) {
- dev_err(&client->dev, "Failed to allocate message buffer\n");
+ if (!data->msg_buf)
+ return -ENOMEM;
+
+ return 0;
+}
+
+static int mxt_read_info_block(struct mxt_data *data)
+{
+ struct i2c_client *client = data->client;
+ int error;
+ size_t size;
+ void *id_buf, *buf;
+ uint8_t num_objects;
+ u32 calculated_crc;
+ u8 *crc_ptr;
+
+ /* If info block already allocated, free it */
+ if (data->raw_info_block)
+ mxt_free_object_table(data);
+
+ /* Read 7-byte ID information block starting at address 0 */
+ size = sizeof(struct mxt_info);
+ id_buf = kzalloc(size, GFP_KERNEL);
+ if (!id_buf)
+ return -ENOMEM;
+
+ error = __mxt_read_reg(client, 0, size, id_buf);
+ if (error)
+ goto err_free_mem;
+
+ /* Resize buffer to give space for rest of info block */
+ num_objects = ((struct mxt_info *)id_buf)->object_num;
+ size += (num_objects * sizeof(struct mxt_object))
+ + MXT_INFO_CHECKSUM_SIZE;
+
+ buf = krealloc(id_buf, size, GFP_KERNEL);
+ if (!buf) {
error = -ENOMEM;
- goto free_object_table;
+ goto err_free_mem;
+ }
+ id_buf = buf;
+
+ /* Read rest of info block */
+ error = __mxt_read_reg(client, MXT_OBJECT_START,
+ size - MXT_OBJECT_START,
+ id_buf + MXT_OBJECT_START);
+ if (error)
+ goto err_free_mem;
+
+ /* Extract & calculate checksum */
+ crc_ptr = id_buf + size - MXT_INFO_CHECKSUM_SIZE;
+ data->info_crc = crc_ptr[0] | (crc_ptr[1] << 8) | (crc_ptr[2] << 16);
+
+ calculated_crc = mxt_calculate_crc(id_buf, 0,
+ size - MXT_INFO_CHECKSUM_SIZE);
+
+ /*
+ * CRC mismatch can be caused by data corruption due to I2C comms
+ * issue or else device is not using Object Based Protocol (eg i2c-hid)
+ */
+ if ((data->info_crc == 0) || (data->info_crc != calculated_crc)) {
+ dev_err(&client->dev,
+ "Info Block CRC error calculated=0x%06X read=0x%06X\n",
+ calculated_crc, data->info_crc);
+ error = -EIO;
+ goto err_free_mem;
+ }
+
+ data->raw_info_block = id_buf;
+ data->info = (struct mxt_info *)id_buf;
+
+ dev_info(&client->dev,
+ "Family: %u Variant: %u Firmware V%u.%u.%02X Objects: %u\n",
+ data->info->family_id, data->info->variant_id,
+ data->info->version >> 4, data->info->version & 0xf,
+ data->info->build, data->info->object_num);
+
+ /* Parse object table information */
+ error = mxt_parse_object_table(data, id_buf + MXT_OBJECT_START);
+ if (error) {
+ dev_err(&client->dev, "Error %d parsing object table\n", error);
+ mxt_free_object_table(data);
+ goto err_free_mem;
}
- data->object_table = object_table;
+ data->object_table = (struct mxt_object *)(id_buf + MXT_OBJECT_START);
return 0;
-free_object_table:
- mxt_free_object_table(data);
+err_free_mem:
+ kfree(id_buf);
return error;
}
@@ -2039,7 +2090,7 @@ static int mxt_initialize(struct mxt_dat
int error;
while (1) {
- error = mxt_get_info(data);
+ error = mxt_read_info_block(data);
if (!error)
break;
@@ -2070,16 +2121,9 @@ static int mxt_initialize(struct mxt_dat
msleep(MXT_FW_RESET_TIME);
}
- /* Get object table information */
- error = mxt_get_object_table(data);
- if (error) {
- dev_err(&client->dev, "Error %d reading object table\n", error);
- return error;
- }
-
error = mxt_acquire_irq(data);
if (error)
- goto err_free_object_table;
+ return error;
error = request_firmware_nowait(THIS_MODULE, true, MXT_CFG_NAME,
&client->dev, GFP_KERNEL, data,
@@ -2087,14 +2131,10 @@ static int mxt_initialize(struct mxt_dat
if (error) {
dev_err(&client->dev, "Failed to invoke firmware loader: %d\n",
error);
- goto err_free_object_table;
+ return error;
}
return 0;
-
-err_free_object_table:
- mxt_free_object_table(data);
- return error;
}
static int mxt_set_t7_power_cfg(struct mxt_data *data, u8 sleep)
@@ -2155,7 +2195,7 @@ recheck:
static u16 mxt_get_debug_value(struct mxt_data *data, unsigned int x,
unsigned int y)
{
- struct mxt_info *info = &data->info;
+ struct mxt_info *info = data->info;
struct mxt_dbg *dbg = &data->dbg;
unsigned int ofs, page;
unsigned int col = 0;
@@ -2483,7 +2523,7 @@ static const struct video_device mxt_vid
static void mxt_debug_init(struct mxt_data *data)
{
- struct mxt_info *info = &data->info;
+ struct mxt_info *info = data->info;
struct mxt_dbg *dbg = &data->dbg;
struct mxt_object *object;
int error;
@@ -2569,7 +2609,6 @@ static int mxt_configure_objects(struct
const struct firmware *cfg)
{
struct device *dev = &data->client->dev;
- struct mxt_info *info = &data->info;
int error;
error = mxt_init_t7_power_cfg(data);
@@ -2594,11 +2633,6 @@ static int mxt_configure_objects(struct
mxt_debug_init(data);
- dev_info(dev,
- "Family: %u Variant: %u Firmware V%u.%u.%02X Objects: %u\n",
- info->family_id, info->variant_id, info->version >> 4,
- info->version & 0xf, info->build, info->object_num);
-
return 0;
}
@@ -2607,7 +2641,7 @@ static ssize_t mxt_fw_version_show(struc
struct device_attribute *attr, char *buf)
{
struct mxt_data *data = dev_get_drvdata(dev);
- struct mxt_info *info = &data->info;
+ struct mxt_info *info = data->info;
return scnprintf(buf, PAGE_SIZE, "%u.%u.%02X\n",
info->version >> 4, info->version & 0xf, info->build);
}
@@ -2617,7 +2651,7 @@ static ssize_t mxt_hw_version_show(struc
struct device_attribute *attr, char *buf)
{
struct mxt_data *data = dev_get_drvdata(dev);
- struct mxt_info *info = &data->info;
+ struct mxt_info *info = data->info;
return scnprintf(buf, PAGE_SIZE, "%u.%u\n",
info->family_id, info->variant_id);
}
@@ -2656,7 +2690,7 @@ static ssize_t mxt_object_show(struct de
return -ENOMEM;
error = 0;
- for (i = 0; i < data->info.object_num; i++) {
+ for (i = 0; i < data->info->object_num; i++) {
object = data->object_table + i;
if (!mxt_object_readable(object->type))
next prev parent reply other threads:[~2018-06-18 8:33 UTC|newest]
Thread overview: 181+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-18 8:11 [PATCH 4.14 000/189] 4.14.51-stable review Greg Kroah-Hartman
2018-06-18 8:11 ` [PATCH 4.14 001/189] clocksource/drivers/imx-tpm: Correct some registers operation flow Greg Kroah-Hartman
2018-06-18 8:11 ` [PATCH 4.14 002/189] Input: synaptics-rmi4 - fix an unchecked out of memory error path Greg Kroah-Hartman
2018-06-18 8:11 ` [PATCH 4.14 003/189] KVM: X86: fix incorrect reference of trace_kvm_pi_irte_update Greg Kroah-Hartman
2018-06-18 8:11 ` [PATCH 4.14 004/189] x86: Add check for APIC access address for vmentry of L2 guests Greg Kroah-Hartman
2018-06-18 8:11 ` [PATCH 4.14 005/189] MIPS: io: Prevent compiler reordering writeX() Greg Kroah-Hartman
2018-06-18 8:11 ` [PATCH 4.14 006/189] nfp: ignore signals when communicating with management FW Greg Kroah-Hartman
2018-06-18 8:11 ` [PATCH 4.14 008/189] fsnotify: fix ignore mask logic in send_to_group() Greg Kroah-Hartman
2018-06-18 8:11 ` [PATCH 4.14 009/189] MIPS: io: Add barrier after register read in readX() Greg Kroah-Hartman
2018-06-18 8:11 ` [PATCH 4.14 010/189] s390/smsgiucv: disable SMSG on module unload Greg Kroah-Hartman
2018-06-18 8:11 ` [PATCH 4.14 011/189] isofs: fix potential memory leak in mount option parsing Greg Kroah-Hartman
2018-06-18 8:11 ` [PATCH 4.14 012/189] MIPS: dts: Boston: Fix PCI bus dtc warnings: Greg Kroah-Hartman
2018-06-18 8:11 ` [PATCH 4.14 013/189] spi: sh-msiof: Fix bit field overflow writes to TSCR/RSCR Greg Kroah-Hartman
2018-06-18 8:11 ` [PATCH 4.14 014/189] doc: Add vendor prefix for Kieback & Peter GmbH Greg Kroah-Hartman
2018-06-18 8:11 ` [PATCH 4.14 015/189] dt-bindings: pinctrl: sunxi: Fix reference to driver Greg Kroah-Hartman
2018-06-18 8:11 ` [PATCH 4.14 016/189] dt-bindings: serial: sh-sci: Add support for r8a77965 (H)SCIF Greg Kroah-Hartman
2018-06-18 8:11 ` [PATCH 4.14 017/189] dt-bindings: dmaengine: rcar-dmac: document R8A77965 support Greg Kroah-Hartman
2018-06-18 8:11 ` [PATCH 4.14 018/189] clk: honor CLK_MUX_ROUND_CLOSEST in generic clk mux Greg Kroah-Hartman
2018-06-18 8:11 ` [PATCH 4.14 019/189] ASoC: rt5514: Add the missing register in the readable table Greg Kroah-Hartman
2018-06-18 8:11 ` [PATCH 4.14 020/189] eCryptfs: dont pass up plaintext names when using filename encryption Greg Kroah-Hartman
2018-06-18 8:11 ` [PATCH 4.14 021/189] soc: bcm: raspberrypi-power: Fix use of __packed Greg Kroah-Hartman
2018-06-18 8:11 ` [PATCH 4.14 023/189] PCI: kirin: Fix reset gpio name Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 024/189] ASoC: topology: Fix bugs of freeing soc topology Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 025/189] xen: xenbus_dev_frontend: Really return response string Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 026/189] ASoC: topology: Check widget kcontrols before deref Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 027/189] spi: cadence: Add usleep_range() for cdns_spi_fill_tx_fifo() Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 028/189] blkcg: dont hold blkcg lock when deactivating policy Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 029/189] tipc: fix infinite loop when dumping link monitor summary Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 030/189] scsi: iscsi: respond to netlink with unicast when appropriate Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 031/189] scsi: megaraid_sas: Do not log an error if FW successfully initializes Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 032/189] scsi: target: fix crash with iscsi target and dvd Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 033/189] netfilter: nf_tables: NAT chain and extensions require NF_TABLES Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 034/189] netfilter: nf_tables: fix out-of-bounds in nft_chain_commit_update Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 035/189] ASoC: msm8916-wcd-analog: use threaded context for mbhc events Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 036/189] drm/msm: Fix possible null dereference on failure of get_pages() Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 037/189] drm/msm/dsi: use correct enum in dsi_get_cmd_fmt Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 038/189] drm/msm: dont deref error pointer in the msm_fbdev_create error path Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 039/189] blkcg: init root blkcg_gq under lock Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 040/189] net: hns: Avoid action name truncation Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 041/189] vfs: Undo an overly zealous MS_RDONLY -> SB_RDONLY conversion Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 042/189] parisc: time: Convert read_persistent_clock() to read_persistent_clock64() Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 043/189] scsi: storvsc: Set up correct queue depth values for IDE devices Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 044/189] scsi: isci: Fix infinite loop in while loop Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 045/189] mm, pagemap: fix swap offset value for PMD migration entry Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 046/189] proc: revalidate kernel thread inodes to root:root Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 047/189] kexec_file: do not add extra alignment to efi memmap Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 048/189] mm: memcg: add __GFP_NOWARN in __memcg_schedule_kmem_cache_create() Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 049/189] usb: typec: ucsi: fix tracepoint related build error Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 050/189] s390/qeth: use Read device to query hypervisor for MAC Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 051/189] ACPI / PM: Blacklist Low Power S0 Idle _DSM for ThinkPad X1 Tablet(2016) Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 052/189] dt-bindings: meson-uart: DT fix s/clocks-names/clock-names/ Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 053/189] powerpc/powernv/memtrace: Let the arch hotunplug code flush cache Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 054/189] net: phy: marvell: clear wol event before setting it Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 055/189] ARM: dts: da850: fix W=1 warnings with pinmux node Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 056/189] ACPI / watchdog: Prefer iTCO_wdt on Lenovo Z50-70 Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 057/189] drm/amdkfd: fix clock counter retrieval for node without GPU Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 058/189] thermal: int3403_thermal: Fix NULL pointer deref on module load / probe Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 059/189] net: ethtool: Add missing kernel doc for FEC parameters Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 060/189] arm64: ptrace: remove addr_limit manipulation Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 061/189] HID: lenovo: Add support for IBM/Lenovo Scrollpoint mice Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 062/189] HID: wacom: Release device resource data obtained by devres_alloc() Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 063/189] selftests: ftrace: Add a testcase for multiple actions on trigger Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 065/189] perf/x86/intel: Dont enable freeze-on-smi for PerfMon V1 Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 066/189] remoteproc: qcom: Fix potential device node leaks Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 067/189] rpmsg: added MODULE_ALIAS for rpmsg_char Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 068/189] HID: intel-ish-hid: use put_device() instead of kfree() Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 069/189] blk-mq: fix sysfs inflight counter Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 070/189] arm64: fix possible spectre-v1 in ptrace_hbp_get_event() Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 071/189] KVM: arm/arm64: vgic: fix possible spectre-v1 in vgic_mmio_read_apr() Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 072/189] libahci: Allow drivers to override stop_engine Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 073/189] ata: ahci: mvebu: override ahci_stop_engine for mvebu AHCI Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 074/189] x86/cpu/intel: Add missing TLB cpuid values Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 076/189] i2c: sprd: Prevent i2c accesses after suspend is called Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 077/189] i2c: sprd: Fix the i2c count issue Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 078/189] tipc: fix bug in function tipc_nl_node_dump_monitor Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 079/189] nvme: depend on INFINIBAND_ADDR_TRANS Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 080/189] nvmet-rdma: " Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 081/189] ib_srpt: " Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 082/189] ib_srp: " Greg Kroah-Hartman
2018-06-18 8:12 ` [PATCH 4.14 083/189] IB: make INFINIBAND_ADDR_TRANS configurable Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 084/189] IB/uverbs: Fix validating mandatory attributes Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 085/189] RDMA/cma: Fix use after destroy access to net namespace for IPoIB Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 086/189] RDMA/iwpm: fix memory leak on map_info Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 087/189] IB/rxe: add RXE_START_MASK for rxe_opcode IB_OPCODE_RC_SEND_ONLY_INV Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 088/189] IB/rxe: avoid double kfree_skb Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 089/189] <linux/stringhash.h>: fix end_name_hash() for 64bit long Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 091/189] ARM: davinci: board-da830-evm: fix GPIO lookup for MMC/SD Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 092/189] ARM: davinci: board-da850-evm: " Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 093/189] ARM: davinci: board-omapl138-hawk: fix GPIO numbers for MMC/SD lookup Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 094/189] ARM: davinci: board-dm355-evm: fix broken networking Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 095/189] dt-bindings: panel: lvds: Fix path to display timing bindings Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 096/189] ARM: OMAP2+: powerdomain: use raw_smp_processor_id() for trace Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 097/189] ARM: dts: logicpd-som-lv: Fix WL127x Startup Issues Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 098/189] ARM: dts: logicpd-som-lv: Fix Audio Mute Greg Kroah-Hartman
2018-06-18 8:13 ` Greg Kroah-Hartman [this message]
2018-06-18 8:13 ` [PATCH 4.14 100/189] hexagon: add memset_io() helper Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 101/189] hexagon: export csum_partial_copy_nocheck Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 102/189] scsi: vmw-pvscsi: return DID_BUS_BUSY for adapter-initated aborts Greg Kroah-Hartman
2018-06-18 18:32 ` Jim Gill
2018-06-18 8:13 ` [PATCH 4.14 103/189] bpf, x64: fix memleak when not converging after image Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 104/189] parisc: drivers.c: Fix section mismatches Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 105/189] stop_machine, sched: Fix migrate_swap() vs. active_balance() deadlock Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 106/189] kthread, sched/wait: Fix kthread_parkme() wait-loop Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 107/189] arm64: tegra: Make BCM89610 PHY interrupt as active low Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 108/189] iommu/vt-d: fix shift-out-of-bounds in bug checking Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 109/189] nvme: fix potential memory leak in option parsing Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 110/189] nvme: Set integrity flag for user passthrough commands Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 111/189] ARM: OMAP1: ams-delta: fix deferred_fiq handler Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 112/189] smc: fix sendpage() call Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 113/189] IB/hfi1 Use correct type for num_user_context Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 114/189] IB/hfi1: Fix memory leak in exception path in get_irq_affinity() Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 115/189] RDMA/cma: Do not query GID during QP state transition to RTR Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 116/189] spi: bcm2835aux: ensure interrupts are enabled for shared handler Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 117/189] sched/core: Introduce set_special_state() Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 118/189] sh: fix build failure for J2 cpu with SMP disabled Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 119/189] tee: check shm references are consistent in offset/size Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 120/189] powerpc/trace/syscalls: Update syscall name matching logic Greg Kroah-Hartman
2018-06-19 2:43 ` Naveen N. Rao
2018-06-20 18:48 ` Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 121/189] powerpc/trace/syscalls: Update syscall name matching logic to account for ppc_ prefix Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 122/189] mac80211: Adjust SAE authentication timeout Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 123/189] drm/omap: silence unititialized variable warning Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 124/189] drm/omap: fix uninitialized ret variable Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 125/189] drm/omap: fix possible NULL ref issue in tiler_reserve_2d Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 126/189] drm/omap: check return value from soc_device_match Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 127/189] drm/omap: handle alloc failures in omap_connector Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 130/189] mac80211: use timeout from the AddBA response instead of the request Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 131/189] x86/xen: Reset VCPU0 info pointer after shared_info remap Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 132/189] net: aquantia: driver should correctly declare vlan_features bits Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 133/189] can: dev: increase bus-off message severity Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 134/189] arm64: Add MIDR encoding for NVIDIA CPUs Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 135/189] cifs: smb2ops: Fix listxattr() when there are no EAs Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 137/189] tipc: eliminate KMSAN uninit-value in strcmp complaint Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 138/189] qed: Fix l2 initializations over iWARP personality Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 139/189] qede: Fix gfp flags sent to rdma event node allocation Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 140/189] rxrpc: Fix error reception on AF_INET6 sockets Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 141/189] rxrpc: Fix the min security level for kernel calls Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.14 143/189] x86: Delay skip of emulated hypercall instruction Greg Kroah-Hartman
2018-06-18 8:14 ` [PATCH 4.14 144/189] ixgbe: return error on unsupported SFP module when resetting Greg Kroah-Hartman
2018-06-18 8:14 ` [PATCH 4.14 145/189] net sched actions: fix invalid pointer dereferencing if skbedit flags missing Greg Kroah-Hartman
2018-06-18 8:14 ` [PATCH 4.14 146/189] init: fix false positives in W+X checking Greg Kroah-Hartman
2018-06-18 8:14 ` [PATCH 4.14 147/189] proc/kcore: dont bounds check against address 0 Greg Kroah-Hartman
2018-06-18 8:14 ` [PATCH 4.14 148/189] ocfs2: take inode cluster lock before moving reflinked inode from orphan dir Greg Kroah-Hartman
2018-06-18 8:14 ` [PATCH 4.14 149/189] kprobes/x86: Prohibit probing on exception masking instructions Greg Kroah-Hartman
2018-06-18 8:14 ` [PATCH 4.14 150/189] uprobes/x86: Prohibit probing on MOV SS instruction Greg Kroah-Hartman
2018-06-18 8:14 ` [PATCH 4.14 151/189] objtool, kprobes/x86: Sync the latest <asm/insn.h> header with tools/objtool/arch/x86/include/asm/insn.h Greg Kroah-Hartman
2018-06-18 8:14 ` [PATCH 4.14 152/189] x86/pkeys/selftests: Adjust the self-test to fresh distros that export the pkeys ABI Greg Kroah-Hartman
2018-06-18 8:14 ` [PATCH 4.14 153/189] x86/mpx/selftests: Adjust the self-test to fresh distros that export the MPX ABI Greg Kroah-Hartman
2018-06-18 8:14 ` [PATCH 4.14 154/189] x86/selftests: Add mov_to_ss test Greg Kroah-Hartman
2018-06-18 8:14 ` [PATCH 4.14 155/189] x86/pkeys/selftests: Give better unexpected fault error messages Greg Kroah-Hartman
2018-06-18 8:14 ` [PATCH 4.14 156/189] x86/pkeys/selftests: Stop using assert() Greg Kroah-Hartman
2018-06-18 8:14 ` [PATCH 4.14 157/189] x86/pkeys/selftests: Remove dead debugging code, fix dprint_in_signal Greg Kroah-Hartman
2018-06-18 8:14 ` [PATCH 4.14 158/189] x86/pkeys/selftests: Allow faults on unknown keys Greg Kroah-Hartman
2018-06-18 8:14 ` [PATCH 4.14 159/189] x86/pkeys/selftests: Factor out "instruction page" Greg Kroah-Hartman
2018-06-18 8:14 ` [PATCH 4.14 160/189] x86/pkeys/selftests: Add PROT_EXEC test Greg Kroah-Hartman
2018-06-18 8:14 ` [PATCH 4.14 161/189] x86/pkeys/selftests: Fix pkey exhaustion test off-by-one Greg Kroah-Hartman
2018-06-18 8:14 ` [PATCH 4.14 162/189] x86/pkeys/selftests: Fix pointer math Greg Kroah-Hartman
2018-06-18 8:14 ` [PATCH 4.14 163/189] x86/pkeys/selftests: Save off prot for allocations Greg Kroah-Hartman
2018-06-18 8:14 ` [PATCH 4.14 164/189] x86/pkeys/selftests: Add a test for pkey 0 Greg Kroah-Hartman
2018-06-18 8:14 ` [PATCH 4.14 165/189] mtd: Fix comparison in map_word_andequal() Greg Kroah-Hartman
2018-06-18 8:14 ` [PATCH 4.14 166/189] afs: Fix the non-encryption of calls Greg Kroah-Hartman
2018-06-18 8:14 ` [PATCH 4.14 168/189] ARM: keystone: fix platform_domain_notifier array overrun Greg Kroah-Hartman
2018-06-18 8:14 ` [PATCH 4.14 169/189] i2c: pmcmsp: return message count on master_xfer success Greg Kroah-Hartman
2018-06-18 8:14 ` [PATCH 4.14 170/189] i2c: pmcmsp: fix error return from master_xfer Greg Kroah-Hartman
2018-06-18 8:14 ` [PATCH 4.14 171/189] i2c: viperboard: return message count on master_xfer success Greg Kroah-Hartman
2018-06-18 8:14 ` [PATCH 4.14 172/189] ARM: davinci: dm646x: fix timer interrupt generation Greg Kroah-Hartman
2018-06-18 8:14 ` [PATCH 4.14 173/189] ARM: davinci: board-dm646x-evm: pass correct I2C adapter id for VPIF Greg Kroah-Hartman
2018-06-18 8:14 ` [PATCH 4.14 174/189] ARM: davinci: board-dm646x-evm: set VPIF capture card name Greg Kroah-Hartman
2018-06-18 8:14 ` [PATCH 4.14 175/189] clk: imx6ull: use OSC clock during AXI rate change Greg Kroah-Hartman
2018-06-18 8:14 ` [PATCH 4.14 176/189] locking/rwsem: Add a new RWSEM_ANONYMOUSLY_OWNED flag Greg Kroah-Hartman
2018-06-18 8:14 ` [PATCH 4.14 177/189] locking/percpu-rwsem: Annotate rwsem ownership transfer by setting RWSEM_OWNER_UNKNOWN Greg Kroah-Hartman
2018-06-18 8:14 ` [PATCH 4.14 178/189] drm/dumb-buffers: Integer overflow in drm_mode_create_ioctl() Greg Kroah-Hartman
2018-06-18 8:14 ` [PATCH 4.14 181/189] parisc: Move setup_profiling_timer() out of init section Greg Kroah-Hartman
2018-06-18 8:14 ` [PATCH 4.14 182/189] efi/libstub/arm64: Handle randomized TEXT_OFFSET Greg Kroah-Hartman
2018-06-18 8:14 ` [PATCH 4.14 185/189] ARM: kexec: fix kdump register saving on panic() Greg Kroah-Hartman
2018-06-18 8:14 ` [PATCH 4.14 186/189] Revert "Btrfs: fix scrub to repair raid6 corruption" Greg Kroah-Hartman
2018-06-18 8:14 ` [PATCH 4.14 187/189] Btrfs: fix scrub to repair raid6 corruption Greg Kroah-Hartman
2018-06-18 8:14 ` [PATCH 4.14 188/189] Btrfs: make raid6 rebuild retry more Greg Kroah-Hartman
2018-06-18 8:14 ` [PATCH 4.14 189/189] tcp: do not overshoot window_clamp in tcp_rcv_space_adjust() Greg Kroah-Hartman
2018-06-18 18:29 ` [PATCH 4.14 000/189] 4.14.51-stable review Guenter Roeck
2018-06-19 5:53 ` Naresh Kamboju
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180618081213.201505990@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=alexander.levin@microsoft.com \
--cc=bleung@chromium.org \
--cc=dmitry.torokhov@gmail.com \
--cc=ezequiel@collabora.com \
--cc=linux-kernel@vger.kernel.org \
--cc=nick.dyer@shmanahar.org \
--cc=sebastian.reichel@collabora.co.uk \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).