* [PATCH AUTOSEL 3.18 1/8] ASoC: ab8500: Mark expected switch fall-through
@ 2019-04-27 1:44 Sasha Levin
2019-04-27 1:44 ` [PATCH AUTOSEL 3.18 2/8] ASoC:soc-pcm:fix a codec fixup issue in TDM case Sasha Levin
` (6 more replies)
0 siblings, 7 replies; 8+ messages in thread
From: Sasha Levin @ 2019-04-27 1:44 UTC (permalink / raw)
To: linux-kernel, stable; +Cc: Gustavo A. R. Silva, Mark Brown, Sasha Levin
From: "Gustavo A. R. Silva" <gustavo@embeddedor.com>
[ Upstream commit 102cefc8e879b707be0024fdc7bce1deeb359a5f ]
In preparation to enabling -Wimplicit-fallthrough, mark switch
cases where we are expecting to fall through.
This patch fixes the following warning:
In file included from sound/soc/codecs/ab8500-codec.c:24:
sound/soc/codecs/ab8500-codec.c: In function ‘ab8500_codec_set_dai_fmt’:
./include/linux/device.h:1485:2: warning: this statement may fall through [-Wimplicit-fallthrough=]
_dev_err(dev, dev_fmt(fmt), ##__VA_ARGS__)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sound/soc/codecs/ab8500-codec.c:2129:3: note: in expansion of macro ‘dev_err’
dev_err(dai->component->dev,
^~~~~~~
sound/soc/codecs/ab8500-codec.c:2132:2: note: here
default:
^~~~~~~
Warning level 3 was used: -Wimplicit-fallthrough=3
This patch is part of the ongoing efforts to enable
-Wimplicit-fallthrough.
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
sound/soc/codecs/ab8500-codec.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/sound/soc/codecs/ab8500-codec.c b/sound/soc/codecs/ab8500-codec.c
index fd43827bb856..daa92a5f8410 100644
--- a/sound/soc/codecs/ab8500-codec.c
+++ b/sound/soc/codecs/ab8500-codec.c
@@ -2131,6 +2131,7 @@ static int ab8500_codec_set_dai_fmt(struct snd_soc_dai *dai, unsigned int fmt)
dev_err(dai->codec->dev,
"%s: ERROR: The device is either a master or a slave.\n",
__func__);
+ /* fall through */
default:
dev_err(dai->codec->dev,
"%s: ERROR: Unsupporter master mask 0x%x\n",
--
2.19.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH AUTOSEL 3.18 2/8] ASoC:soc-pcm:fix a codec fixup issue in TDM case
2019-04-27 1:44 [PATCH AUTOSEL 3.18 1/8] ASoC: ab8500: Mark expected switch fall-through Sasha Levin
@ 2019-04-27 1:44 ` Sasha Levin
2019-04-27 1:44 ` [PATCH AUTOSEL 3.18 3/8] ASoC: cs4270: Set auto-increment bit for register writes Sasha Levin
` (5 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Sasha Levin @ 2019-04-27 1:44 UTC (permalink / raw)
To: linux-kernel, stable; +Cc: Rander Wang, Mark Brown, Sasha Levin
From: Rander Wang <rander.wang@linux.intel.com>
[ Upstream commit 570f18b6a8d1f0e60e8caf30e66161b6438dcc91 ]
On HDaudio platforms, if playback is started when capture is working,
there is no audible output.
This can be root-caused to the use of the rx|tx_mask to store an HDaudio
stream tag.
If capture is stared before playback, rx_mask would be non-zero on HDaudio
platform, then the channel number of playback, which is in the same codec
dai with the capture, would be changed by soc_pcm_codec_params_fixup based
on the tx_mask at first, then overwritten by this function based on rx_mask
at last.
According to the author of tx|rx_mask, tx_mask is for playback and rx_mask
is for capture. And stream direction is checked at all other references of
tx|rx_mask in ASoC, so here should be an error. This patch checks stream
direction for tx|rx_mask for fixup function.
This issue would affect not only HDaudio+ASoC, but also I2S codecs if the
channel number based on rx_mask is not equal to the one for tx_mask. It could
be rarely reproduecd because most drivers in kernel set the same channel number
to tx|rx_mask or rx_mask is zero.
Tested on all platforms using stream_tag & HDaudio and intel I2S platforms.
Signed-off-by: Rander Wang <rander.wang@linux.intel.com>
Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
sound/soc/soc-pcm.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/sound/soc/soc-pcm.c b/sound/soc/soc-pcm.c
index e2fb859fbbaa..4323002c67db 100644
--- a/sound/soc/soc-pcm.c
+++ b/sound/soc/soc-pcm.c
@@ -847,10 +847,13 @@ static int soc_pcm_hw_params(struct snd_pcm_substream *substream,
codec_params = *params;
/* fixup params based on TDM slot masks */
- if (codec_dai->tx_mask)
+ if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK &&
+ codec_dai->tx_mask)
soc_pcm_codec_params_fixup(&codec_params,
codec_dai->tx_mask);
- if (codec_dai->rx_mask)
+
+ if (substream->stream == SNDRV_PCM_STREAM_CAPTURE &&
+ codec_dai->rx_mask)
soc_pcm_codec_params_fixup(&codec_params,
codec_dai->rx_mask);
--
2.19.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH AUTOSEL 3.18 3/8] ASoC: cs4270: Set auto-increment bit for register writes
2019-04-27 1:44 [PATCH AUTOSEL 3.18 1/8] ASoC: ab8500: Mark expected switch fall-through Sasha Levin
2019-04-27 1:44 ` [PATCH AUTOSEL 3.18 2/8] ASoC:soc-pcm:fix a codec fixup issue in TDM case Sasha Levin
@ 2019-04-27 1:44 ` Sasha Levin
2019-04-27 1:44 ` [PATCH AUTOSEL 3.18 4/8] ASoC: tlv320aic32x4: Fix Common Pins Sasha Levin
` (4 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Sasha Levin @ 2019-04-27 1:44 UTC (permalink / raw)
To: linux-kernel, stable; +Cc: Daniel Mack, Mark Brown, Sasha Levin
From: Daniel Mack <daniel@zonque.org>
[ Upstream commit f0f2338a9cfaf71db895fa989ea7234e8a9b471d ]
The CS4270 does not by default increment the register address on
consecutive writes. During normal operation it doesn't matter as all
register accesses are done individually. At resume time after suspend,
however, the regcache code gathers the biggest possible block of
registers to sync and sends them one on one go.
To fix this, set the INCR bit in all cases.
Signed-off-by: Daniel Mack <daniel@zonque.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
sound/soc/codecs/cs4270.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/sound/soc/codecs/cs4270.c b/sound/soc/codecs/cs4270.c
index 736c1ea8e31e..756796c06413 100644
--- a/sound/soc/codecs/cs4270.c
+++ b/sound/soc/codecs/cs4270.c
@@ -641,6 +641,7 @@ static const struct regmap_config cs4270_regmap = {
.reg_defaults = cs4270_reg_defaults,
.num_reg_defaults = ARRAY_SIZE(cs4270_reg_defaults),
.cache_type = REGCACHE_RBTREE,
+ .write_flag_mask = CS4270_I2C_INCR,
.readable_reg = cs4270_reg_is_readable,
.volatile_reg = cs4270_reg_is_volatile,
--
2.19.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH AUTOSEL 3.18 4/8] ASoC: tlv320aic32x4: Fix Common Pins
2019-04-27 1:44 [PATCH AUTOSEL 3.18 1/8] ASoC: ab8500: Mark expected switch fall-through Sasha Levin
2019-04-27 1:44 ` [PATCH AUTOSEL 3.18 2/8] ASoC:soc-pcm:fix a codec fixup issue in TDM case Sasha Levin
2019-04-27 1:44 ` [PATCH AUTOSEL 3.18 3/8] ASoC: cs4270: Set auto-increment bit for register writes Sasha Levin
@ 2019-04-27 1:44 ` Sasha Levin
2019-04-27 1:44 ` [PATCH AUTOSEL 3.18 5/8] xtensa: fix initialization of pt_regs::syscall in start_thread Sasha Levin
` (3 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Sasha Levin @ 2019-04-27 1:44 UTC (permalink / raw)
To: linux-kernel, stable; +Cc: Annaliese McDermond, Mark Brown, Sasha Levin
From: Annaliese McDermond <nh6z@nh6z.net>
[ Upstream commit c63adb28f6d913310430f14c69f0a2ea55eed0cc ]
The common pins were mistakenly not added to the DAPM graph.
Adding these pins will allow valid graphs to be created.
Signed-off-by: Annaliese McDermond <nh6z@nh6z.net>
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
sound/soc/codecs/tlv320aic32x4.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/sound/soc/codecs/tlv320aic32x4.c b/sound/soc/codecs/tlv320aic32x4.c
index 6ea662db2410..fdce75d5c675 100644
--- a/sound/soc/codecs/tlv320aic32x4.c
+++ b/sound/soc/codecs/tlv320aic32x4.c
@@ -234,6 +234,8 @@ static const struct snd_soc_dapm_widget aic32x4_dapm_widgets[] = {
SND_SOC_DAPM_INPUT("IN2_R"),
SND_SOC_DAPM_INPUT("IN3_L"),
SND_SOC_DAPM_INPUT("IN3_R"),
+ SND_SOC_DAPM_INPUT("CM_L"),
+ SND_SOC_DAPM_INPUT("CM_R"),
};
static const struct snd_soc_dapm_route aic32x4_dapm_routes[] = {
--
2.19.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH AUTOSEL 3.18 5/8] xtensa: fix initialization of pt_regs::syscall in start_thread
2019-04-27 1:44 [PATCH AUTOSEL 3.18 1/8] ASoC: ab8500: Mark expected switch fall-through Sasha Levin
` (2 preceding siblings ...)
2019-04-27 1:44 ` [PATCH AUTOSEL 3.18 4/8] ASoC: tlv320aic32x4: Fix Common Pins Sasha Levin
@ 2019-04-27 1:44 ` Sasha Levin
2019-04-27 1:44 ` [PATCH AUTOSEL 3.18 6/8] scsi: csiostor: fix missing data copy in csio_scsi_err_handler() Sasha Levin
` (2 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Sasha Levin @ 2019-04-27 1:44 UTC (permalink / raw)
To: linux-kernel, stable; +Cc: Max Filippov, Sasha Levin, linux-xtensa
From: Max Filippov <jcmvbkbc@gmail.com>
[ Upstream commit 2663147dc7465cb29040a05cc4286fdd839978b5 ]
New pt_regs should indicate that there's no syscall, not that there's
syscall #0. While at it wrap macro body in do/while and parenthesize
macro arguments.
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
arch/xtensa/include/asm/processor.h | 21 ++++++++++++---------
1 file changed, 12 insertions(+), 9 deletions(-)
diff --git a/arch/xtensa/include/asm/processor.h b/arch/xtensa/include/asm/processor.h
index b61bdf0eea25..79b2d1a6b4ff 100644
--- a/arch/xtensa/include/asm/processor.h
+++ b/arch/xtensa/include/asm/processor.h
@@ -152,15 +152,18 @@ struct thread_struct {
/* Clearing a0 terminates the backtrace. */
#define start_thread(regs, new_pc, new_sp) \
- memset(regs, 0, sizeof(*regs)); \
- regs->pc = new_pc; \
- regs->ps = USER_PS_VALUE; \
- regs->areg[1] = new_sp; \
- regs->areg[0] = 0; \
- regs->wmask = 1; \
- regs->depc = 0; \
- regs->windowbase = 0; \
- regs->windowstart = 1;
+ do { \
+ memset((regs), 0, sizeof(*(regs))); \
+ (regs)->pc = (new_pc); \
+ (regs)->ps = USER_PS_VALUE; \
+ (regs)->areg[1] = (new_sp); \
+ (regs)->areg[0] = 0; \
+ (regs)->wmask = 1; \
+ (regs)->depc = 0; \
+ (regs)->windowbase = 0; \
+ (regs)->windowstart = 1; \
+ (regs)->syscall = NO_SYSCALL; \
+ } while (0)
/* Forward declaration */
struct task_struct;
--
2.19.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH AUTOSEL 3.18 6/8] scsi: csiostor: fix missing data copy in csio_scsi_err_handler()
2019-04-27 1:44 [PATCH AUTOSEL 3.18 1/8] ASoC: ab8500: Mark expected switch fall-through Sasha Levin
` (3 preceding siblings ...)
2019-04-27 1:44 ` [PATCH AUTOSEL 3.18 5/8] xtensa: fix initialization of pt_regs::syscall in start_thread Sasha Levin
@ 2019-04-27 1:44 ` Sasha Levin
2019-04-27 1:44 ` [PATCH AUTOSEL 3.18 7/8] NFS: Forbid setting AF_INET6 to "struct sockaddr_in"->sin_family Sasha Levin
2019-04-27 1:44 ` [PATCH AUTOSEL 3.18 8/8] iommu/amd: Set exclusion range correctly Sasha Levin
6 siblings, 0 replies; 8+ messages in thread
From: Sasha Levin @ 2019-04-27 1:44 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Varun Prakash, Martin K . Petersen, Sasha Levin, linux-scsi
From: Varun Prakash <varun@chelsio.com>
[ Upstream commit 5c2442fd78998af60e13aba506d103f7f43f8701 ]
If scsi cmd sglist is not suitable for DDP then csiostor driver uses
preallocated buffers for DDP, because of this data copy is required from
DDP buffer to scsi cmd sglist before calling ->scsi_done().
Signed-off-by: Varun Prakash <varun@chelsio.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/scsi/csiostor/csio_scsi.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/scsi/csiostor/csio_scsi.c b/drivers/scsi/csiostor/csio_scsi.c
index 86103c8475d8..fbb2052bc412 100644
--- a/drivers/scsi/csiostor/csio_scsi.c
+++ b/drivers/scsi/csiostor/csio_scsi.c
@@ -1737,8 +1737,11 @@ csio_scsi_err_handler(struct csio_hw *hw, struct csio_ioreq *req)
}
out:
- if (req->nsge > 0)
+ if (req->nsge > 0) {
scsi_dma_unmap(cmnd);
+ if (req->dcopy && (host_status == DID_OK))
+ host_status = csio_scsi_copy_to_sgl(hw, req);
+ }
cmnd->result = (((host_status) << 16) | scsi_status);
cmnd->scsi_done(cmnd);
--
2.19.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH AUTOSEL 3.18 7/8] NFS: Forbid setting AF_INET6 to "struct sockaddr_in"->sin_family.
2019-04-27 1:44 [PATCH AUTOSEL 3.18 1/8] ASoC: ab8500: Mark expected switch fall-through Sasha Levin
` (4 preceding siblings ...)
2019-04-27 1:44 ` [PATCH AUTOSEL 3.18 6/8] scsi: csiostor: fix missing data copy in csio_scsi_err_handler() Sasha Levin
@ 2019-04-27 1:44 ` Sasha Levin
2019-04-27 1:44 ` [PATCH AUTOSEL 3.18 8/8] iommu/amd: Set exclusion range correctly Sasha Levin
6 siblings, 0 replies; 8+ messages in thread
From: Sasha Levin @ 2019-04-27 1:44 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Tetsuo Handa, Trond Myklebust, Sasha Levin, linux-nfs
From: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
[ Upstream commit 7c2bd9a39845bfb6d72ddb55ce737650271f6f96 ]
syzbot is reporting uninitialized value at rpc_sockaddr2uaddr() [1]. This
is because syzbot is setting AF_INET6 to "struct sockaddr_in"->sin_family
(which is embedded into user-visible "struct nfs_mount_data" structure)
despite nfs23_validate_mount_data() cannot pass sizeof(struct sockaddr_in6)
bytes of AF_INET6 address to rpc_sockaddr2uaddr().
Since "struct nfs_mount_data" structure is user-visible, we can't change
"struct nfs_mount_data" to use "struct sockaddr_storage". Therefore,
assuming that everybody is using AF_INET family when passing address via
"struct nfs_mount_data"->addr, reject if its sin_family is not AF_INET.
[1] https://syzkaller.appspot.com/bug?id=599993614e7cbbf66bc2656a919ab2a95fb5d75c
Reported-by: syzbot <syzbot+047a11c361b872896a4f@syzkaller.appspotmail.com>
Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
fs/nfs/super.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/fs/nfs/super.c b/fs/nfs/super.c
index d2fcd6e9d675..d70b4ed1b936 100644
--- a/fs/nfs/super.c
+++ b/fs/nfs/super.c
@@ -2019,7 +2019,8 @@ static int nfs23_validate_mount_data(void *options,
memcpy(sap, &data->addr, sizeof(data->addr));
args->nfs_server.addrlen = sizeof(data->addr);
args->nfs_server.port = ntohs(data->addr.sin_port);
- if (!nfs_verify_server_address(sap))
+ if (sap->sa_family != AF_INET ||
+ !nfs_verify_server_address(sap))
goto out_no_address;
if (!(data->flags & NFS_MOUNT_TCP))
--
2.19.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH AUTOSEL 3.18 8/8] iommu/amd: Set exclusion range correctly
2019-04-27 1:44 [PATCH AUTOSEL 3.18 1/8] ASoC: ab8500: Mark expected switch fall-through Sasha Levin
` (5 preceding siblings ...)
2019-04-27 1:44 ` [PATCH AUTOSEL 3.18 7/8] NFS: Forbid setting AF_INET6 to "struct sockaddr_in"->sin_family Sasha Levin
@ 2019-04-27 1:44 ` Sasha Levin
6 siblings, 0 replies; 8+ messages in thread
From: Sasha Levin @ 2019-04-27 1:44 UTC (permalink / raw)
To: linux-kernel, stable; +Cc: Joerg Roedel, Sasha Levin, iommu
From: Joerg Roedel <jroedel@suse.de>
[ Upstream commit 3c677d206210f53a4be972211066c0f1cd47fe12 ]
The exlcusion range limit register needs to contain the
base-address of the last page that is part of the range, as
bits 0-11 of this register are treated as 0xfff by the
hardware for comparisons.
So correctly set the exclusion range in the hardware to the
last page which is _in_ the range.
Fixes: b2026aa2dce44 ('x86, AMD IOMMU: add functions for programming IOMMU MMIO space')
Signed-off-by: Joerg Roedel <jroedel@suse.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/iommu/amd_iommu_init.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/iommu/amd_iommu_init.c b/drivers/iommu/amd_iommu_init.c
index 2f3475247f0f..127f9cc563e9 100644
--- a/drivers/iommu/amd_iommu_init.c
+++ b/drivers/iommu/amd_iommu_init.c
@@ -294,7 +294,7 @@ static void iommu_write_l2(struct amd_iommu *iommu, u8 address, u32 val)
static void iommu_set_exclusion_range(struct amd_iommu *iommu)
{
u64 start = iommu->exclusion_start & PAGE_MASK;
- u64 limit = (start + iommu->exclusion_length) & PAGE_MASK;
+ u64 limit = (start + iommu->exclusion_length - 1) & PAGE_MASK;
u64 entry;
if (!iommu->exclusion_start)
--
2.19.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
end of thread, other threads:[~2019-04-27 1:44 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-04-27 1:44 [PATCH AUTOSEL 3.18 1/8] ASoC: ab8500: Mark expected switch fall-through Sasha Levin
2019-04-27 1:44 ` [PATCH AUTOSEL 3.18 2/8] ASoC:soc-pcm:fix a codec fixup issue in TDM case Sasha Levin
2019-04-27 1:44 ` [PATCH AUTOSEL 3.18 3/8] ASoC: cs4270: Set auto-increment bit for register writes Sasha Levin
2019-04-27 1:44 ` [PATCH AUTOSEL 3.18 4/8] ASoC: tlv320aic32x4: Fix Common Pins Sasha Levin
2019-04-27 1:44 ` [PATCH AUTOSEL 3.18 5/8] xtensa: fix initialization of pt_regs::syscall in start_thread Sasha Levin
2019-04-27 1:44 ` [PATCH AUTOSEL 3.18 6/8] scsi: csiostor: fix missing data copy in csio_scsi_err_handler() Sasha Levin
2019-04-27 1:44 ` [PATCH AUTOSEL 3.18 7/8] NFS: Forbid setting AF_INET6 to "struct sockaddr_in"->sin_family Sasha Levin
2019-04-27 1:44 ` [PATCH AUTOSEL 3.18 8/8] iommu/amd: Set exclusion range correctly Sasha Levin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox