From: Sasha Levin <sashal@kernel.org> To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Mathieu Poirier <mathieu.poirier@linaro.org>, Leo Yan <leo.yan@linaro.org>, Alexander Shishkin <alexander.shishkin@linux.intel.com>, Jiri Olsa <jolsa@redhat.com>, Peter Zijlstra <peterz@infradead.org>, Suzuki Poulouse <suzuki.poulose@arm.com>, linux-arm-kernel@lists.infradead.org, Arnaldo Carvalho de Melo <acme@redhat.com>, Sasha Levin <sashal@kernel.org> Subject: [PATCH AUTOSEL 4.9 31/73] perf cs-etm: Properly set the value of 'old' and 'head' in snapshot mode Date: Mon, 15 Jul 2019 10:35:47 -0400 [thread overview] Message-ID: <20190715143629.10893-31-sashal@kernel.org> (raw) In-Reply-To: <20190715143629.10893-1-sashal@kernel.org> From: Mathieu Poirier <mathieu.poirier@linaro.org> [ Upstream commit e45c48a9a4d20ebc7b639a62c3ef8f4b08007027 ] This patch adds the necessary intelligence to properly compute the value of 'old' and 'head' when operating in snapshot mode. That way we can get the latest information in the AUX buffer and be compatible with the generic AUX ring buffer mechanic. Tester notes: > Leo, have you had the chance to test/review this one? Suzuki? Sure. I applied this patch on the perf/core branch (with latest commit 3e4fbf36c1e3 'perf augmented_raw_syscalls: Move reading filename to the loop') and passed testing with below steps: # perf record -e cs_etm/@tmc_etr0/ -S -m,64 --per-thread ./sort & [1] 19097 Bubble sorting array of 30000 elements # kill -USR2 19097 # kill -USR2 19097 # kill -USR2 19097 [ perf record: Woken up 4 times to write data ] [ perf record: Captured and wrote 0.753 MB perf.data ] Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org> Tested-by: Leo Yan <leo.yan@linaro.org> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Suzuki Poulouse <suzuki.poulose@arm.com> Cc: linux-arm-kernel@lists.infradead.org Link: http://lkml.kernel.org/r/20190605161633.12245-1-mathieu.poirier@linaro.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> Signed-off-by: Sasha Levin <sashal@kernel.org> --- tools/perf/arch/arm/util/cs-etm.c | 127 +++++++++++++++++++++++++++++- 1 file changed, 123 insertions(+), 4 deletions(-) diff --git a/tools/perf/arch/arm/util/cs-etm.c b/tools/perf/arch/arm/util/cs-etm.c index 47d584da5819..f6cff278aa5d 100644 --- a/tools/perf/arch/arm/util/cs-etm.c +++ b/tools/perf/arch/arm/util/cs-etm.c @@ -41,6 +41,8 @@ struct cs_etm_recording { struct auxtrace_record itr; struct perf_pmu *cs_etm_pmu; struct perf_evlist *evlist; + int wrapped_cnt; + bool *wrapped; bool snapshot_mode; size_t snapshot_size; }; @@ -458,16 +460,131 @@ static int cs_etm_info_fill(struct auxtrace_record *itr, return 0; } -static int cs_etm_find_snapshot(struct auxtrace_record *itr __maybe_unused, +static int cs_etm_alloc_wrapped_array(struct cs_etm_recording *ptr, int idx) +{ + bool *wrapped; + int cnt = ptr->wrapped_cnt; + + /* Make @ptr->wrapped as big as @idx */ + while (cnt <= idx) + cnt++; + + /* + * Free'ed in cs_etm_recording_free(). Using realloc() to avoid + * cross compilation problems where the host's system supports + * reallocarray() but not the target. + */ + wrapped = realloc(ptr->wrapped, cnt * sizeof(bool)); + if (!wrapped) + return -ENOMEM; + + wrapped[cnt - 1] = false; + ptr->wrapped_cnt = cnt; + ptr->wrapped = wrapped; + + return 0; +} + +static bool cs_etm_buffer_has_wrapped(unsigned char *buffer, + size_t buffer_size, u64 head) +{ + u64 i, watermark; + u64 *buf = (u64 *)buffer; + size_t buf_size = buffer_size; + + /* + * We want to look the very last 512 byte (chosen arbitrarily) in + * the ring buffer. + */ + watermark = buf_size - 512; + + /* + * @head is continuously increasing - if its value is equal or greater + * than the size of the ring buffer, it has wrapped around. + */ + if (head >= buffer_size) + return true; + + /* + * The value of @head is somewhere within the size of the ring buffer. + * This can be that there hasn't been enough data to fill the ring + * buffer yet or the trace time was so long that @head has numerically + * wrapped around. To find we need to check if we have data at the very + * end of the ring buffer. We can reliably do this because mmap'ed + * pages are zeroed out and there is a fresh mapping with every new + * session. + */ + + /* @head is less than 512 byte from the end of the ring buffer */ + if (head > watermark) + watermark = head; + + /* + * Speed things up by using 64 bit transactions (see "u64 *buf" above) + */ + watermark >>= 3; + buf_size >>= 3; + + /* + * If we find trace data at the end of the ring buffer, @head has + * been there and has numerically wrapped around at least once. + */ + for (i = watermark; i < buf_size; i++) + if (buf[i]) + return true; + + return false; +} + +static int cs_etm_find_snapshot(struct auxtrace_record *itr, int idx, struct auxtrace_mmap *mm, - unsigned char *data __maybe_unused, + unsigned char *data, u64 *head, u64 *old) { + int err; + bool wrapped; + struct cs_etm_recording *ptr = + container_of(itr, struct cs_etm_recording, itr); + + /* + * Allocate memory to keep track of wrapping if this is the first + * time we deal with this *mm. + */ + if (idx >= ptr->wrapped_cnt) { + err = cs_etm_alloc_wrapped_array(ptr, idx); + if (err) + return err; + } + + /* + * Check to see if *head has wrapped around. If it hasn't only the + * amount of data between *head and *old is snapshot'ed to avoid + * bloating the perf.data file with zeros. But as soon as *head has + * wrapped around the entire size of the AUX ring buffer it taken. + */ + wrapped = ptr->wrapped[idx]; + if (!wrapped && cs_etm_buffer_has_wrapped(data, mm->len, *head)) { + wrapped = true; + ptr->wrapped[idx] = true; + } + pr_debug3("%s: mmap index %d old head %zu new head %zu size %zu\n", __func__, idx, (size_t)*old, (size_t)*head, mm->len); - *old = *head; - *head += mm->len; + /* No wrap has occurred, we can just use *head and *old. */ + if (!wrapped) + return 0; + + /* + * *head has wrapped around - adjust *head and *old to pickup the + * entire content of the AUX buffer. + */ + if (*head >= mm->len) { + *old = *head - mm->len; + } else { + *head += mm->len; + *old = *head - mm->len; + } return 0; } @@ -508,6 +625,8 @@ static void cs_etm_recording_free(struct auxtrace_record *itr) { struct cs_etm_recording *ptr = container_of(itr, struct cs_etm_recording, itr); + + zfree(&ptr->wrapped); free(ptr); } -- 2.20.1
WARNING: multiple messages have this Message-ID (diff)
From: Sasha Levin <sashal@kernel.org> To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Sasha Levin <sashal@kernel.org>, Mathieu Poirier <mathieu.poirier@linaro.org>, Suzuki Poulouse <suzuki.poulose@arm.com>, Alexander Shishkin <alexander.shishkin@linux.intel.com>, Arnaldo Carvalho de Melo <acme@redhat.com>, Peter Zijlstra <peterz@infradead.org>, Leo Yan <leo.yan@linaro.org>, Jiri Olsa <jolsa@redhat.com>, linux-arm-kernel@lists.infradead.org Subject: [PATCH AUTOSEL 4.9 31/73] perf cs-etm: Properly set the value of 'old' and 'head' in snapshot mode Date: Mon, 15 Jul 2019 10:35:47 -0400 [thread overview] Message-ID: <20190715143629.10893-31-sashal@kernel.org> (raw) In-Reply-To: <20190715143629.10893-1-sashal@kernel.org> From: Mathieu Poirier <mathieu.poirier@linaro.org> [ Upstream commit e45c48a9a4d20ebc7b639a62c3ef8f4b08007027 ] This patch adds the necessary intelligence to properly compute the value of 'old' and 'head' when operating in snapshot mode. That way we can get the latest information in the AUX buffer and be compatible with the generic AUX ring buffer mechanic. Tester notes: > Leo, have you had the chance to test/review this one? Suzuki? Sure. I applied this patch on the perf/core branch (with latest commit 3e4fbf36c1e3 'perf augmented_raw_syscalls: Move reading filename to the loop') and passed testing with below steps: # perf record -e cs_etm/@tmc_etr0/ -S -m,64 --per-thread ./sort & [1] 19097 Bubble sorting array of 30000 elements # kill -USR2 19097 # kill -USR2 19097 # kill -USR2 19097 [ perf record: Woken up 4 times to write data ] [ perf record: Captured and wrote 0.753 MB perf.data ] Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org> Tested-by: Leo Yan <leo.yan@linaro.org> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Suzuki Poulouse <suzuki.poulose@arm.com> Cc: linux-arm-kernel@lists.infradead.org Link: http://lkml.kernel.org/r/20190605161633.12245-1-mathieu.poirier@linaro.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> Signed-off-by: Sasha Levin <sashal@kernel.org> --- tools/perf/arch/arm/util/cs-etm.c | 127 +++++++++++++++++++++++++++++- 1 file changed, 123 insertions(+), 4 deletions(-) diff --git a/tools/perf/arch/arm/util/cs-etm.c b/tools/perf/arch/arm/util/cs-etm.c index 47d584da5819..f6cff278aa5d 100644 --- a/tools/perf/arch/arm/util/cs-etm.c +++ b/tools/perf/arch/arm/util/cs-etm.c @@ -41,6 +41,8 @@ struct cs_etm_recording { struct auxtrace_record itr; struct perf_pmu *cs_etm_pmu; struct perf_evlist *evlist; + int wrapped_cnt; + bool *wrapped; bool snapshot_mode; size_t snapshot_size; }; @@ -458,16 +460,131 @@ static int cs_etm_info_fill(struct auxtrace_record *itr, return 0; } -static int cs_etm_find_snapshot(struct auxtrace_record *itr __maybe_unused, +static int cs_etm_alloc_wrapped_array(struct cs_etm_recording *ptr, int idx) +{ + bool *wrapped; + int cnt = ptr->wrapped_cnt; + + /* Make @ptr->wrapped as big as @idx */ + while (cnt <= idx) + cnt++; + + /* + * Free'ed in cs_etm_recording_free(). Using realloc() to avoid + * cross compilation problems where the host's system supports + * reallocarray() but not the target. + */ + wrapped = realloc(ptr->wrapped, cnt * sizeof(bool)); + if (!wrapped) + return -ENOMEM; + + wrapped[cnt - 1] = false; + ptr->wrapped_cnt = cnt; + ptr->wrapped = wrapped; + + return 0; +} + +static bool cs_etm_buffer_has_wrapped(unsigned char *buffer, + size_t buffer_size, u64 head) +{ + u64 i, watermark; + u64 *buf = (u64 *)buffer; + size_t buf_size = buffer_size; + + /* + * We want to look the very last 512 byte (chosen arbitrarily) in + * the ring buffer. + */ + watermark = buf_size - 512; + + /* + * @head is continuously increasing - if its value is equal or greater + * than the size of the ring buffer, it has wrapped around. + */ + if (head >= buffer_size) + return true; + + /* + * The value of @head is somewhere within the size of the ring buffer. + * This can be that there hasn't been enough data to fill the ring + * buffer yet or the trace time was so long that @head has numerically + * wrapped around. To find we need to check if we have data at the very + * end of the ring buffer. We can reliably do this because mmap'ed + * pages are zeroed out and there is a fresh mapping with every new + * session. + */ + + /* @head is less than 512 byte from the end of the ring buffer */ + if (head > watermark) + watermark = head; + + /* + * Speed things up by using 64 bit transactions (see "u64 *buf" above) + */ + watermark >>= 3; + buf_size >>= 3; + + /* + * If we find trace data at the end of the ring buffer, @head has + * been there and has numerically wrapped around at least once. + */ + for (i = watermark; i < buf_size; i++) + if (buf[i]) + return true; + + return false; +} + +static int cs_etm_find_snapshot(struct auxtrace_record *itr, int idx, struct auxtrace_mmap *mm, - unsigned char *data __maybe_unused, + unsigned char *data, u64 *head, u64 *old) { + int err; + bool wrapped; + struct cs_etm_recording *ptr = + container_of(itr, struct cs_etm_recording, itr); + + /* + * Allocate memory to keep track of wrapping if this is the first + * time we deal with this *mm. + */ + if (idx >= ptr->wrapped_cnt) { + err = cs_etm_alloc_wrapped_array(ptr, idx); + if (err) + return err; + } + + /* + * Check to see if *head has wrapped around. If it hasn't only the + * amount of data between *head and *old is snapshot'ed to avoid + * bloating the perf.data file with zeros. But as soon as *head has + * wrapped around the entire size of the AUX ring buffer it taken. + */ + wrapped = ptr->wrapped[idx]; + if (!wrapped && cs_etm_buffer_has_wrapped(data, mm->len, *head)) { + wrapped = true; + ptr->wrapped[idx] = true; + } + pr_debug3("%s: mmap index %d old head %zu new head %zu size %zu\n", __func__, idx, (size_t)*old, (size_t)*head, mm->len); - *old = *head; - *head += mm->len; + /* No wrap has occurred, we can just use *head and *old. */ + if (!wrapped) + return 0; + + /* + * *head has wrapped around - adjust *head and *old to pickup the + * entire content of the AUX buffer. + */ + if (*head >= mm->len) { + *old = *head - mm->len; + } else { + *head += mm->len; + *old = *head - mm->len; + } return 0; } @@ -508,6 +625,8 @@ static void cs_etm_recording_free(struct auxtrace_record *itr) { struct cs_etm_recording *ptr = container_of(itr, struct cs_etm_recording, itr); + + zfree(&ptr->wrapped); free(ptr); } -- 2.20.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2019-07-15 14:38 UTC|newest] Thread overview: 80+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-07-15 14:35 [PATCH AUTOSEL 4.9 01/73] ath10k: Do not send probe response template for mesh Sasha Levin 2019-07-15 14:35 ` Sasha Levin 2019-07-15 14:35 ` [PATCH AUTOSEL 4.9 02/73] ath9k: Check for errors when reading SREV register Sasha Levin 2019-07-15 14:35 ` [PATCH AUTOSEL 4.9 03/73] ath6kl: add some bounds checking Sasha Levin 2019-07-15 14:35 ` [PATCH AUTOSEL 4.9 04/73] ath: DFS JP domain W56 fixed pulse type 3 RADAR detection Sasha Levin 2019-07-15 14:35 ` [PATCH AUTOSEL 4.9 05/73] batman-adv: fix for leaked TVLV handler Sasha Levin 2019-07-15 14:35 ` [PATCH AUTOSEL 4.9 06/73] media: dvb: usb: fix use after free in dvb_usb_device_exit Sasha Levin 2019-07-15 14:35 ` [PATCH AUTOSEL 4.9 07/73] crypto: talitos - fix skcipher failure due to wrong output IV Sasha Levin 2019-07-15 14:35 ` [PATCH AUTOSEL 4.9 08/73] media: marvell-ccic: fix DMA s/g desc number calculation Sasha Levin 2019-07-15 14:35 ` [PATCH AUTOSEL 4.9 09/73] media: vpss: fix a potential NULL pointer dereference Sasha Levin 2019-07-15 14:35 ` [PATCH AUTOSEL 4.9 10/73] media: media_device_enum_links32: clean a reserved field Sasha Levin 2019-07-15 14:35 ` [PATCH AUTOSEL 4.9 11/73] net: stmmac: dwmac1000: Clear unused address entries Sasha Levin 2019-07-15 14:35 ` [PATCH AUTOSEL 4.9 12/73] net: stmmac: dwmac4/5: " Sasha Levin 2019-07-15 14:35 ` [PATCH AUTOSEL 4.9 13/73] signal/pid_namespace: Fix reboot_pid_ns to use send_sig not force_sig Sasha Levin 2019-07-15 14:35 ` [PATCH AUTOSEL 4.9 14/73] signal/cifs: Fix cifs_put_tcp_session to call send_sig instead of force_sig Sasha Levin 2019-07-15 14:35 ` [PATCH AUTOSEL 4.9 15/73] af_key: fix leaks in key_pol_get_resp and dump_sp Sasha Levin 2019-07-15 14:35 ` [PATCH AUTOSEL 4.9 16/73] xfrm: Fix xfrm sel prefix length validation Sasha Levin 2019-07-15 14:35 ` [PATCH AUTOSEL 4.9 17/73] Revert "e1000e: fix cyclic resets at link up with active tx" Sasha Levin 2019-07-15 14:35 ` [PATCH AUTOSEL 4.9 18/73] e1000e: start network tx queue only when link is up Sasha Levin 2019-07-15 14:35 ` [PATCH AUTOSEL 4.9 19/73] media: mc-device.c: don't memset __user pointer contents Sasha Levin 2019-07-15 14:35 ` [PATCH AUTOSEL 4.9 20/73] media: staging: media: davinci_vpfe: - Fix for memory leak if decoder initialization fails Sasha Levin 2019-07-15 14:35 ` Sasha Levin 2019-07-15 14:35 ` [PATCH AUTOSEL 4.9 21/73] net: phy: Check against net_device being NULL Sasha Levin 2019-07-15 14:35 ` [PATCH AUTOSEL 4.9 22/73] crypto: talitos - properly handle split ICV Sasha Levin 2019-07-15 14:35 ` [PATCH AUTOSEL 4.9 23/73] crypto: talitos - Align SEC1 accesses to 32 bits boundaries Sasha Levin 2019-07-15 14:35 ` [PATCH AUTOSEL 4.9 24/73] tua6100: Avoid build warnings Sasha Levin 2019-07-15 14:35 ` [PATCH AUTOSEL 4.9 25/73] locking/lockdep: Fix merging of hlocks with non-zero references Sasha Levin 2019-07-15 14:35 ` [PATCH AUTOSEL 4.9 26/73] media: wl128x: Fix some error handling in fm_v4l2_init_video_device() Sasha Levin 2019-07-15 14:35 ` [PATCH AUTOSEL 4.9 27/73] cpupower : frequency-set -r option misses the last cpu in related cpu list Sasha Levin 2019-07-15 14:35 ` [PATCH AUTOSEL 4.9 28/73] net: fec: Do not use netdev messages too early Sasha Levin 2019-07-15 14:35 ` [PATCH AUTOSEL 4.9 29/73] net: axienet: Fix race condition causing TX hang Sasha Levin 2019-07-15 14:35 ` [PATCH AUTOSEL 4.9 30/73] s390/qdio: handle PENDING state for QEBSM devices Sasha Levin 2019-07-15 14:35 ` Sasha Levin [this message] 2019-07-15 14:35 ` [PATCH AUTOSEL 4.9 31/73] perf cs-etm: Properly set the value of 'old' and 'head' in snapshot mode Sasha Levin 2019-07-15 14:35 ` [PATCH AUTOSEL 4.9 32/73] perf test 6: Fix missing kvm module load for s390 Sasha Levin 2019-07-15 14:35 ` [PATCH AUTOSEL 4.9 33/73] gpio: omap: fix lack of irqstatus_raw0 for OMAP4 Sasha Levin 2019-07-15 14:35 ` [PATCH AUTOSEL 4.9 34/73] gpio: omap: ensure irq is enabled before wakeup Sasha Levin 2019-07-15 14:35 ` [PATCH AUTOSEL 4.9 35/73] regmap: fix bulk writes on paged registers Sasha Levin 2019-07-15 14:35 ` [PATCH AUTOSEL 4.9 36/73] bpf: silence warning messages in core Sasha Levin 2019-07-15 14:35 ` [PATCH AUTOSEL 4.9 37/73] rcu: Force inlining of rcu_read_lock() Sasha Levin 2019-07-15 14:35 ` [PATCH AUTOSEL 4.9 38/73] blkcg, writeback: dead memcgs shouldn't contribute to writeback ownership arbitration Sasha Levin 2019-07-15 14:35 ` [PATCH AUTOSEL 4.9 39/73] xfrm: fix sa selector validation Sasha Levin 2019-07-15 14:35 ` [PATCH AUTOSEL 4.9 40/73] perf evsel: Make perf_evsel__name() accept a NULL argument Sasha Levin 2019-07-15 14:35 ` [PATCH AUTOSEL 4.9 41/73] vhost_net: disable zerocopy by default Sasha Levin 2019-07-15 14:35 ` Sasha Levin 2019-07-15 14:35 ` [PATCH AUTOSEL 4.9 42/73] ipoib: correcly show a VF hardware address Sasha Levin 2019-07-15 14:35 ` [PATCH AUTOSEL 4.9 43/73] EDAC/sysfs: Fix memory leak when creating a csrow object Sasha Levin 2019-07-15 14:36 ` [PATCH AUTOSEL 4.9 44/73] ipsec: select crypto ciphers for xfrm_algo Sasha Levin 2019-07-15 14:36 ` [PATCH AUTOSEL 4.9 45/73] media: i2c: fix warning same module names Sasha Levin 2019-07-15 14:36 ` [PATCH AUTOSEL 4.9 46/73] ntp: Limit TAI-UTC offset Sasha Levin 2019-07-15 14:36 ` [PATCH AUTOSEL 4.9 47/73] timer_list: Guard procfs specific code Sasha Levin 2019-07-15 14:36 ` [PATCH AUTOSEL 4.9 48/73] acpi/arm64: ignore 5.1 FADTs that are reported as 5.0 Sasha Levin 2019-07-15 14:36 ` [PATCH AUTOSEL 4.9 49/73] media: coda: fix mpeg2 sequence number handling Sasha Levin 2019-07-15 14:36 ` [PATCH AUTOSEL 4.9 50/73] media: coda: increment sequence offset for the last returned frame Sasha Levin 2019-07-15 14:36 ` [PATCH AUTOSEL 4.9 51/73] mt7601u: do not schedule rx_tasklet when the device has been disconnected Sasha Levin 2019-07-15 14:36 ` [PATCH AUTOSEL 4.9 52/73] x86/build: Add 'set -e' to mkcapflags.sh to delete broken capflags.c Sasha Levin 2019-07-15 14:36 ` [PATCH AUTOSEL 4.9 53/73] mt7601u: fix possible memory leak when the device is disconnected Sasha Levin 2019-07-15 14:36 ` [PATCH AUTOSEL 4.9 54/73] ath10k: fix PCIE device wake up failed Sasha Levin 2019-07-15 14:36 ` Sasha Levin 2019-07-15 14:36 ` [PATCH AUTOSEL 4.9 55/73] perf tools: Increase MAX_NR_CPUS and MAX_CACHES Sasha Levin 2019-07-15 14:36 ` [PATCH AUTOSEL 4.9 56/73] libata: don't request sense data on !ZAC ATA devices Sasha Levin 2019-07-15 14:36 ` [PATCH AUTOSEL 4.9 57/73] clocksource/drivers/exynos_mct: Increase priority over ARM arch timer Sasha Levin 2019-07-15 14:36 ` [PATCH AUTOSEL 4.9 58/73] rslib: Fix decoding of shortened codes Sasha Levin 2019-07-15 14:36 ` [PATCH AUTOSEL 4.9 59/73] rslib: Fix handling of of caller provided syndrome Sasha Levin 2019-07-15 14:36 ` [PATCH AUTOSEL 4.9 60/73] ixgbe: Check DDM existence in transceiver before access Sasha Levin 2019-07-15 14:36 ` [PATCH AUTOSEL 4.9 61/73] crypto: asymmetric_keys - select CRYPTO_HASH where needed Sasha Levin 2019-07-15 14:36 ` Sasha Levin 2019-07-15 14:36 ` [PATCH AUTOSEL 4.9 62/73] PCI / ACPI: Use cached ACPI device state to get PCI device power state Sasha Levin 2019-07-15 14:36 ` [PATCH AUTOSEL 4.9 63/73] EDAC: Fix global-out-of-bounds write when setting edac_mc_poll_msec Sasha Levin 2019-07-15 14:36 ` [PATCH AUTOSEL 4.9 64/73] bcache: check c->gc_thread by IS_ERR_OR_NULL in cache_set_flush() Sasha Levin 2019-07-15 14:36 ` Sasha Levin 2019-07-15 14:36 ` [PATCH AUTOSEL 4.9 65/73] iwlwifi: mvm: Drop large non sta frames Sasha Levin 2019-07-15 14:36 ` [PATCH AUTOSEL 4.9 66/73] net: usb: asix: init MAC address buffers Sasha Levin 2019-07-15 14:36 ` [PATCH AUTOSEL 4.9 67/73] gpiolib: Fix references to gpiod_[gs]et_*value_cansleep() variants Sasha Levin 2019-07-15 14:36 ` [PATCH AUTOSEL 4.9 68/73] Bluetooth: hci_bcsp: Fix memory leak in rx_skb Sasha Levin 2019-07-15 14:36 ` [PATCH AUTOSEL 4.9 69/73] Bluetooth: 6lowpan: search for destination address in all peers Sasha Levin 2019-07-15 14:36 ` [PATCH AUTOSEL 4.9 70/73] Bluetooth: Check state in l2cap_disconnect_rsp Sasha Levin 2019-07-15 14:36 ` [PATCH AUTOSEL 4.9 71/73] Bluetooth: validate BLE connection interval updates Sasha Levin 2019-07-15 14:36 ` [PATCH AUTOSEL 4.9 72/73] gtp: fix Illegal context switch in RCU read-side critical section Sasha Levin 2019-07-15 14:36 ` [PATCH AUTOSEL 4.9 73/73] gtp: fix use-after-free in gtp_newlink() Sasha Levin
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=20190715143629.10893-31-sashal@kernel.org \ --to=sashal@kernel.org \ --cc=acme@redhat.com \ --cc=alexander.shishkin@linux.intel.com \ --cc=jolsa@redhat.com \ --cc=leo.yan@linaro.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=mathieu.poirier@linaro.org \ --cc=peterz@infradead.org \ --cc=stable@vger.kernel.org \ --cc=suzuki.poulose@arm.com \ /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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.