lkml.org 
[lkml]   [2005]   [Nov]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    SubjectRe: [PATCH] Convert dmasound_awacs to dynamic input_dev allocation
    Date
    On Monday 31 October 2005 22:59, Ian Wienand wrote:
    > On Mon, Oct 31, 2005 at 10:17:08PM -0500, Dmitry Torokhov wrote:
    > > > + awacs_beep_dev = input_allocate_device();
    > >
    > > We really need to check whether device was allocated here...
    >
    > AFAICS there is no easy way to bail without leaking from that point
    > (the comment already there suggests as much). Would it be appropriate
    > to just BUG() out in that case and save somebody auditing and
    > re-architecturing for an unlikely error in a deprecated interface?

    It seems that the change is pretty straightforward... Could you please try
    this one?

    --
    Dmitry

    From: Ian Wienand <ianw@gelato.unsw.edu.au>

    Input: convert dmasound_awacs (OSS) to dynamic input allocation

    Signed-off-by: Ian Wienand <ianw@gelato.unsw.edu.au>
    Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
    ---

    sound/oss/dmasound/dmasound_awacs.c | 31 +++++++++++++++++++------------
    1 files changed, 19 insertions(+), 12 deletions(-)

    Index: work/sound/oss/dmasound/dmasound_awacs.c
    ===================================================================
    --- work.orig/sound/oss/dmasound/dmasound_awacs.c
    +++ work/sound/oss/dmasound/dmasound_awacs.c
    @@ -2805,16 +2805,7 @@ __init setup_beep(void)
    return 0 ;
    }

    -static struct input_dev awacs_beep_dev = {
    - .evbit = { BIT(EV_SND) },
    - .sndbit = { BIT(SND_BELL) | BIT(SND_TONE) },
    - .event = awacs_beep_event,
    - .name = "dmasound beeper",
    - .phys = "macio/input0", /* what the heck is this?? */
    - .id = {
    - .bustype = BUS_HOST,
    - },
    -};
    +static struct input_dev *awacs_beep_dev;

    int __init dmasound_awacs_init(void)
    {
    @@ -2907,6 +2898,22 @@ printk("dmasound_pmac: couldn't find a C
    return -ENODEV;
    }

    + awacs_beep_dev = input_allocate_device();
    + if (!awacs_beep_dev) {
    + release_OF_resource(io, 0);
    + release_OF_resource(io, 1);
    + release_OF_resource(io, 2);
    + printk(KERN_ERR "dmasound: can't allocate input device !\n");
    + return -ENOMEM;
    + }
    +
    + awacs_beep_dev->name = "dmasound beeper";
    + awacs_beep_dev->phys = "macio/input0";
    + awacs_beep_dev->id.bustype = BUS_HOST;
    + awacs_beep_dev->event = awacs_beep_event;
    + awacs_beep_dev->sndbit[0] = BIT(SND_BELL) | BIT(SND_TONE);
    + awacs_beep_dev->evbit[0] = BIT(EV_SND);
    +
    /* all OF versions I've seen use this value */
    if (i2s_node)
    i2s = ioremap(io->addrs[0].address, 0x1000);
    @@ -3140,14 +3147,14 @@ printk("dmasound_pmac: Awacs/Screamer Co
    * XXX: we should handle errors here, but that would mean
    * rewriting the whole init code. later..
    */
    - input_register_device(&awacs_beep_dev);
    + input_register_device(awacs_beep_dev);

    return dmasound_init();
    }

    static void __exit dmasound_awacs_cleanup(void)
    {
    - input_unregister_device(&awacs_beep_dev);
    + input_unregister_device(awacs_beep_dev);

    switch (awacs_revision) {
    case AWACS_TUMBLER:
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/
    \
     
     \ /
      Last update: 2005-11-01 06:17    [W:0.027 / U:148.744 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site