On Mon, Mar 08, 2010 at 07:38:38PM -0500, Michael Poole wrote: > From 57c6af4c2dadcce71566995baa15593103ab33aa Mon Sep 17 00:00:00 2001 > From: Michael Poole <mdpoole@xxxxxxxxxxx> > Date: Mon, 8 Mar 2010 19:09:26 -0500 > Subject: [PATCH 1/1] hid-magicmouse: Fix oops after device removal. > > Ask the HID core not to register an input device for the mouse. > Fix an oops after removing the device, due to leaving the new > input device registered. > > Signed-off-by: Michael Poole <mdpoole@xxxxxxxxxxx> > --- > drivers/hid/hid-magicmouse.c | 5 ++++- > 1 files changed, 4 insertions(+), 1 deletions(-) > > diff --git a/drivers/hid/hid-magicmouse.c b/drivers/hid/hid-magicmouse.c > index 4a3a94f..2e7d701 100644 > --- a/drivers/hid/hid-magicmouse.c > +++ b/drivers/hid/hid-magicmouse.c > @@ -353,7 +353,7 @@ static int magicmouse_probe(struct hid_device *hdev, > goto err_free; > } > > - ret = hid_hw_start(hdev, HID_CONNECT_DEFAULT); > + ret = hid_hw_start(hdev, HID_CONNECT_DEFAULT & ~HID_CONNECT_HIDINPUT); > if (ret) { > dev_err(&hdev->dev, "magicmouse hw start failed\n"); > goto err_free; > @@ -409,7 +409,10 @@ err_free: > > static void magicmouse_remove(struct hid_device *hdev) > { > + struct magicmouse_sc *msc; Blank lines between variable definitions and code are always appreciated. but also coudl be written as: struct magicmouse_sc *msc = hid_get_drvdata(dev); > + msc = hid_get_drvdata(hdev); > hid_hw_stop(hdev); > + input_unregister_device(msc->input); > kfree(hid_get_drvdata(hdev)); You have msc already sho that should be 'kfree(msc);'. > } > -- Dmitry -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html