From: Mark Brown <broonie@kernel.org> To: Stephen Boyd <sboyd@codeaurora.org> Cc: Samuel Ortiz <sameo@linux.intel.com>, Lee Jones <lee.jones@linaro.org>, Srinivas Ramana <sramana@codeaurora.org>, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH 3/8] regmap: Add support for using regmap over ssbi Date: Wed, 11 Dec 2013 00:51:06 +0000 [thread overview] Message-ID: <20131211005106.GL11468@sirena.org.uk> (raw) In-Reply-To: <52A7AE1B.3040201@codeaurora.org> [-- Attachment #1: Type: text/plain, Size: 1362 bytes --] On Tue, Dec 10, 2013 at 04:13:15PM -0800, Stephen Boyd wrote: > On 12/10/13 15:50, Mark Brown wrote: > > On Tue, Dec 10, 2013 at 03:35:18PM -0800, Stephen Boyd wrote: > >> + reg += sizeof(u16); > > I'd expect this to generate out of bounds accesses and bad interactions > > on the bus if we go through the loop more than once since it appears to > > incrementing the address of reg for every register. I'm also having a > ssbi_read() just reads the same register x number of times and doesn't > do any sort of incrementing of address. My understanding was that > regmap_bulk_read() will read incrementing addresses and then call down > into this code with the sequential addresses formatted into the reg > buffer. That was the flaw. Instead we need to take reg and then That's possibly not the ideal decision for the underlying API, if nothing else it's confusing naming given what a read function would normally do. > increment reg by 1 every time through this loop. Or should we just have > use_single_rw == true? No, it doesn't - it increments the address of reg by the size of a register value each time. Using use_single_rw might make sense, or if you can't do bulk I/O at all then hooking in via reg_read() and reg_write() in the config rather than trying to parse out the buffers might be even better (you can still make helpers to set that up). [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 836 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: broonie@kernel.org (Mark Brown) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH 3/8] regmap: Add support for using regmap over ssbi Date: Wed, 11 Dec 2013 00:51:06 +0000 [thread overview] Message-ID: <20131211005106.GL11468@sirena.org.uk> (raw) In-Reply-To: <52A7AE1B.3040201@codeaurora.org> On Tue, Dec 10, 2013 at 04:13:15PM -0800, Stephen Boyd wrote: > On 12/10/13 15:50, Mark Brown wrote: > > On Tue, Dec 10, 2013 at 03:35:18PM -0800, Stephen Boyd wrote: > >> + reg += sizeof(u16); > > I'd expect this to generate out of bounds accesses and bad interactions > > on the bus if we go through the loop more than once since it appears to > > incrementing the address of reg for every register. I'm also having a > ssbi_read() just reads the same register x number of times and doesn't > do any sort of incrementing of address. My understanding was that > regmap_bulk_read() will read incrementing addresses and then call down > into this code with the sequential addresses formatted into the reg > buffer. That was the flaw. Instead we need to take reg and then That's possibly not the ideal decision for the underlying API, if nothing else it's confusing naming given what a read function would normally do. > increment reg by 1 every time through this loop. Or should we just have > use_single_rw == true? No, it doesn't - it increments the address of reg by the size of a register value each time. Using use_single_rw might make sense, or if you can't do bulk I/O at all then hooking in via reg_read() and reg_write() in the config rather than trying to parse out the buffers might be even better (you can still make helpers to set that up). -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20131211/f07b25f5/attachment.sig>
next prev parent reply other threads:[~2013-12-11 0:51 UTC|newest] Thread overview: 77+ messages / expand[flat|nested] mbox.gz Atom feed top 2013-12-10 23:35 [PATCH 0/8] Modernize pm8921 with irqdomains + regmap Stephen Boyd 2013-12-10 23:35 ` Stephen Boyd 2013-12-10 23:35 ` [PATCH 1/8] mfd: ssbi: Remove platform data structs and hide ssbi type enum Stephen Boyd 2013-12-10 23:35 ` Stephen Boyd 2013-12-11 9:27 ` Lee Jones 2013-12-11 9:27 ` Lee Jones 2013-12-10 23:35 ` [PATCH 2/8] mfd: ssbi: Constify buffer in ssbi_write Stephen Boyd 2013-12-10 23:35 ` Stephen Boyd 2013-12-11 9:28 ` Lee Jones 2013-12-11 9:28 ` Lee Jones 2013-12-10 23:35 ` [PATCH 3/8] regmap: Add support for using regmap over ssbi Stephen Boyd 2013-12-10 23:35 ` Stephen Boyd 2013-12-10 23:50 ` Mark Brown 2013-12-10 23:50 ` Mark Brown 2013-12-11 0:13 ` Stephen Boyd 2013-12-11 0:13 ` Stephen Boyd 2013-12-11 0:51 ` Mark Brown [this message] 2013-12-11 0:51 ` Mark Brown 2013-12-11 1:32 ` Stephen Boyd 2013-12-11 1:32 ` Stephen Boyd 2013-12-11 13:27 ` Mark Brown 2013-12-11 13:27 ` Mark Brown 2013-12-12 23:13 ` Stephen Boyd 2013-12-12 23:13 ` Stephen Boyd 2013-12-13 10:41 ` Mark Brown 2013-12-13 10:41 ` Mark Brown 2013-12-13 17:14 ` [PATCH] regmap: Allow regmap_bulk_read() to work for "no-bus" regmaps Stephen Boyd 2013-12-13 17:14 ` Stephen Boyd 2013-12-13 17:14 ` Stephen Boyd 2013-12-16 20:57 ` Mark Brown 2013-12-16 20:57 ` Mark Brown 2013-12-13 21:37 ` [PATCH 3/8] regmap: Add support for using regmap over ssbi Stephen Boyd 2013-12-13 21:37 ` Stephen Boyd 2013-12-16 21:01 ` Mark Brown 2013-12-16 21:01 ` Mark Brown 2013-12-17 2:30 ` [PATCH] regmap: Allow regmap_bulk_write() to work for "no-bus" regmaps Stephen Boyd 2013-12-17 2:30 ` Stephen Boyd 2013-12-18 18:45 ` Mark Brown 2013-12-18 18:45 ` Mark Brown 2013-12-23 20:05 ` Stephen Boyd 2013-12-23 20:05 ` Stephen Boyd 2013-12-24 12:53 ` Mark Brown 2013-12-24 12:53 ` Mark Brown 2013-12-26 19:34 ` Stephen Boyd 2013-12-26 19:34 ` Stephen Boyd 2013-12-26 21:52 ` [PATCH v2] " Stephen Boyd 2013-12-26 21:52 ` Stephen Boyd 2013-12-30 12:42 ` Mark Brown 2013-12-30 12:42 ` Mark Brown 2013-12-10 23:35 ` [PATCH 4/8] mfd: ssbi: Mark match table const Stephen Boyd 2013-12-10 23:35 ` Stephen Boyd 2013-12-11 9:29 ` Lee Jones 2013-12-11 9:29 ` Lee Jones 2013-12-10 23:35 ` [PATCH 5/8] mfd: Move pm8xxx-irq.c contents into only driver that uses it Stephen Boyd 2013-12-10 23:35 ` Stephen Boyd 2013-12-11 9:35 ` Lee Jones 2013-12-11 9:35 ` Lee Jones 2013-12-12 19:06 ` Stephen Boyd 2013-12-12 19:06 ` Stephen Boyd 2013-12-10 23:35 ` [PATCH 6/8] mfd: pm8921: Update for genirq changes Stephen Boyd 2013-12-10 23:35 ` Stephen Boyd 2013-12-11 9:48 ` Lee Jones 2013-12-11 9:48 ` Lee Jones 2013-12-10 23:35 ` [PATCH 7/8] mfd: pm8921: Migrate to irqdomains Stephen Boyd 2013-12-10 23:35 ` Stephen Boyd 2013-12-11 9:53 ` Lee Jones 2013-12-11 9:53 ` Lee Jones 2013-12-11 21:30 ` Courtney Cavin 2013-12-11 21:30 ` Courtney Cavin 2013-12-11 21:30 ` Courtney Cavin 2013-12-12 19:05 ` Stephen Boyd 2013-12-12 19:05 ` Stephen Boyd 2013-12-12 19:05 ` Stephen Boyd 2013-12-10 23:35 ` [PATCH 8/8] mfd: pm8921: Use ssbi regmap Stephen Boyd 2013-12-10 23:35 ` Stephen Boyd 2013-12-11 9:55 ` Lee Jones 2013-12-11 9:55 ` Lee Jones
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=20131211005106.GL11468@sirena.org.uk \ --to=broonie@kernel.org \ --cc=lee.jones@linaro.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-arm-msm@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=sameo@linux.intel.com \ --cc=sboyd@codeaurora.org \ --cc=sramana@codeaurora.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: 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.