[PATCH] staging: comedi: ni_mio_common: protect register write overflow
Ian Abbott
abbotti at mev.co.uk
Wed Oct 3 10:34:40 UTC 2018
On 03/10/18 02:24, Spencer Olson wrote:
> On Tue, Oct 2, 2018 at 6:16 PM Spencer Olson <olsonse at umich.edu> wrote:
>>
>> On Tue, Oct 2, 2018 at 11:32 AM Greg Kroah-Hartman
>> <gregkh at linuxfoundation.org> wrote:
>>>
>>> On Wed, Sep 19, 2018 at 10:17:19AM -0600, Spencer E. Olson wrote:
[snip]
>>>> diff --git a/drivers/staging/comedi/drivers/ni_mio_common.c b/drivers/staging/comedi/drivers/ni_mio_common.c
>>>> index 4dee2fc37aed..4d0d0621780e 100644
>>>> --- a/drivers/staging/comedi/drivers/ni_mio_common.c
>>>> +++ b/drivers/staging/comedi/drivers/ni_mio_common.c
>>>> @@ -4980,7 +4980,10 @@ static int ni_valid_rtsi_output_source(struct comedi_device *dev,
>>>> case NI_RTSI_OUTPUT_G_SRC0:
>>>> case NI_RTSI_OUTPUT_G_GATE0:
>>>> case NI_RTSI_OUTPUT_RGOUT0:
>>>> - case NI_RTSI_OUTPUT_RTSI_BRD_0:
>>>> + case NI_RTSI_OUTPUT_RTSI_BRD(0):
>>>> + case NI_RTSI_OUTPUT_RTSI_BRD(1):
>>>> + case NI_RTSI_OUTPUT_RTSI_BRD(2):
>>>> + case NI_RTSI_OUTPUT_RTSI_BRD(3):
>>>> return 1;
>>>> case NI_RTSI_OUTPUT_RTSI_OSC:
>>>> return (devpriv->is_m_series) ? 1 : 0;
>>>> @@ -5001,11 +5004,18 @@ static int ni_set_rtsi_routing(struct comedi_device *dev,
>>>> devpriv->rtsi_trig_a_output_reg |= NISTC_RTSI_TRIG(chan, src);
>>>> ni_stc_writew(dev, devpriv->rtsi_trig_a_output_reg,
>>>> NISTC_RTSI_TRIGA_OUT_REG);
>>>> - } else if (chan < 8) {
>>>> + } else if (chan < NISTC_RTSI_TRIG_NUM_CHAN(devpriv->is_m_series)) {
>>>> devpriv->rtsi_trig_b_output_reg &= ~NISTC_RTSI_TRIG_MASK(chan);
>>>> devpriv->rtsi_trig_b_output_reg |= NISTC_RTSI_TRIG(chan, src);
>>>> ni_stc_writew(dev, devpriv->rtsi_trig_b_output_reg,
>>>> NISTC_RTSI_TRIGB_OUT_REG);
>>>> + } else if (chan != NISTC_RTSI_TRIG_OLD_CLK_CHAN) {
>>>> + /* probably should never reach this, since the
>>>> + * ni_valid_rtsi_output_source above errors out if chan is too
>>>> + * high
>>>> + */
While you're fixing it, could that be changed to the usual block comment
format?
>>>> + dev_err(dev->class_dev, "%s: unknown rtsi channel\n", __func__);
>>>
>>> This patch breaks the build very badly. Always test-build your patches
>>> at the very least :(
>>>
>>> greg k-h
>>
>> I have been test building this with at least a fairly recent
>> staging-next rebase (rebase a week or two ago). I'll rebase again and
>> check this out....
>
> So the problem had been that I had been compiling the entire time with
> my other patch set that I recently have just submitted. When I split
> this patch off from that patch set, I had neglected to compile with it
> by itsself. The issue was a forgotten "{" at the beginning of the
> last if statement.
>
> Should I resubmit this patch and the entire patch set from earlier
> today, each separately?
>
> The patch set from today titled "device-global identifiers and routes
> introduced" _does_ depend on this patch that was missing the
> brace--this is indicated in the patch notes as requested by Ian.
Hmm yes, it appears patch 07/13 fixes this one, as well as depending on it!
Personally, I'd be inclined to combine them into a single series of 14
patches.
> I did just check to make sure that I had not made the same mistake on
> the other patch set submitted earlier that was titled: "Add facility
> to directly query subdevice timing". That patch set is fine as is and
> did not depend on any of the other patches I had been working on.
--
-=( Ian Abbott <abbotti at mev.co.uk> || Web: www.mev.co.uk )=-
-=( MEV Ltd. is a company registered in England & Wales. )=-
-=( Registered number: 02862268. Registered address: )=-
-=( 15 West Park Road, Bramhall, STOCKPORT, SK7 3JZ, UK. )=-
More information about the devel
mailing list