Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
linux-davinci-2.6.23
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
linux
linux-davinci-2.6.23
Commits
127278ce
Commit
127278ce
authored
Nov 05, 2006
by
Dmitry Torokhov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Input: joysticks - handle errors when registering input devices
Signed-off-by:
Dmitry Torokhov
<
dtor@mail.ru
>
parent
52c1f570
Changes
16
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
120 additions
and
59 deletions
+120
-59
drivers/input/joystick/adi.c
drivers/input/joystick/adi.c
+9
-1
drivers/input/joystick/amijoy.c
drivers/input/joystick/amijoy.c
+5
-1
drivers/input/joystick/analog.c
drivers/input/joystick/analog.c
+8
-2
drivers/input/joystick/cobra.c
drivers/input/joystick/cobra.c
+5
-2
drivers/input/joystick/gf2k.c
drivers/input/joystick/gf2k.c
+3
-1
drivers/input/joystick/grip_mp.c
drivers/input/joystick/grip_mp.c
+11
-2
drivers/input/joystick/guillemot.c
drivers/input/joystick/guillemot.c
+3
-1
drivers/input/joystick/iforce/iforce-main.c
drivers/input/joystick/iforce/iforce-main.c
+10
-7
drivers/input/joystick/iforce/iforce-serio.c
drivers/input/joystick/iforce/iforce-serio.c
+9
-11
drivers/input/joystick/interact.c
drivers/input/joystick/interact.c
+3
-1
drivers/input/joystick/magellan.c
drivers/input/joystick/magellan.c
+9
-5
drivers/input/joystick/spaceball.c
drivers/input/joystick/spaceball.c
+9
-5
drivers/input/joystick/spaceorb.c
drivers/input/joystick/spaceorb.c
+9
-5
drivers/input/joystick/stinger.c
drivers/input/joystick/stinger.c
+9
-5
drivers/input/joystick/twidjoy.c
drivers/input/joystick/twidjoy.c
+9
-5
drivers/input/joystick/warrior.c
drivers/input/joystick/warrior.c
+9
-5
No files found.
drivers/input/joystick/adi.c
View file @
127278ce
...
@@ -521,11 +521,19 @@ static int adi_connect(struct gameport *gameport, struct gameport_driver *drv)
...
@@ -521,11 +521,19 @@ static int adi_connect(struct gameport *gameport, struct gameport_driver *drv)
for
(
i
=
0
;
i
<
2
;
i
++
)
for
(
i
=
0
;
i
<
2
;
i
++
)
if
(
port
->
adi
[
i
].
length
>
0
)
{
if
(
port
->
adi
[
i
].
length
>
0
)
{
adi_init_center
(
port
->
adi
+
i
);
adi_init_center
(
port
->
adi
+
i
);
input_register_device
(
port
->
adi
[
i
].
dev
);
err
=
input_register_device
(
port
->
adi
[
i
].
dev
);
if
(
err
)
goto
fail3
;
}
}
return
0
;
return
0
;
fail3:
while
(
--
i
>=
0
)
{
if
(
port
->
adi
[
i
].
length
>
0
)
{
input_unregister_device
(
port
->
adi
[
i
].
dev
);
port
->
adi
[
i
].
dev
=
NULL
;
}
}
fail2:
for
(
i
=
0
;
i
<
2
;
i
++
)
fail2:
for
(
i
=
0
;
i
<
2
;
i
++
)
if
(
port
->
adi
[
i
].
dev
)
if
(
port
->
adi
[
i
].
dev
)
input_free_device
(
port
->
adi
[
i
].
dev
);
input_free_device
(
port
->
adi
[
i
].
dev
);
...
...
drivers/input/joystick/amijoy.c
View file @
127278ce
...
@@ -147,7 +147,11 @@ static int __init amijoy_init(void)
...
@@ -147,7 +147,11 @@ static int __init amijoy_init(void)
amijoy_dev
[
i
]
->
absmax
[
ABS_X
+
j
]
=
1
;
amijoy_dev
[
i
]
->
absmax
[
ABS_X
+
j
]
=
1
;
}
}
input_register_device
(
amijoy_dev
[
i
]);
err
=
input_register_device
(
amijoy_dev
[
i
]);
if
(
err
)
{
input_free_device
(
amijoy_dev
[
i
]);
goto
fail
;
}
}
}
return
0
;
return
0
;
...
...
drivers/input/joystick/analog.c
View file @
127278ce
...
@@ -434,6 +434,7 @@ static int analog_init_device(struct analog_port *port, struct analog *analog, i
...
@@ -434,6 +434,7 @@ static int analog_init_device(struct analog_port *port, struct analog *analog, i
{
{
struct
input_dev
*
input_dev
;
struct
input_dev
*
input_dev
;
int
i
,
j
,
t
,
v
,
w
,
x
,
y
,
z
;
int
i
,
j
,
t
,
v
,
w
,
x
,
y
,
z
;
int
error
;
analog_name
(
analog
);
analog_name
(
analog
);
snprintf
(
analog
->
phys
,
sizeof
(
analog
->
phys
),
snprintf
(
analog
->
phys
,
sizeof
(
analog
->
phys
),
...
@@ -505,7 +506,11 @@ static int analog_init_device(struct analog_port *port, struct analog *analog, i
...
@@ -505,7 +506,11 @@ static int analog_init_device(struct analog_port *port, struct analog *analog, i
analog_decode
(
analog
,
port
->
axes
,
port
->
initial
,
port
->
buttons
);
analog_decode
(
analog
,
port
->
axes
,
port
->
initial
,
port
->
buttons
);
input_register_device
(
analog
->
dev
);
error
=
input_register_device
(
analog
->
dev
);
if
(
error
)
{
input_free_device
(
analog
->
dev
);
return
error
;
}
return
0
;
return
0
;
}
}
...
@@ -668,7 +673,8 @@ static int analog_connect(struct gameport *gameport, struct gameport_driver *drv
...
@@ -668,7 +673,8 @@ static int analog_connect(struct gameport *gameport, struct gameport_driver *drv
return
0
;
return
0
;
fail3:
while
(
--
i
>=
0
)
fail3:
while
(
--
i
>=
0
)
input_unregister_device
(
port
->
analog
[
i
].
dev
);
if
(
port
->
analog
[
i
].
mask
)
input_unregister_device
(
port
->
analog
[
i
].
dev
);
fail2:
gameport_close
(
gameport
);
fail2:
gameport_close
(
gameport
);
fail1:
gameport_set_drvdata
(
gameport
,
NULL
);
fail1:
gameport_set_drvdata
(
gameport
,
NULL
);
kfree
(
port
);
kfree
(
port
);
...
...
drivers/input/joystick/cobra.c
View file @
127278ce
...
@@ -223,12 +223,15 @@ static int cobra_connect(struct gameport *gameport, struct gameport_driver *drv)
...
@@ -223,12 +223,15 @@ static int cobra_connect(struct gameport *gameport, struct gameport_driver *drv)
for
(
j
=
0
;
cobra_btn
[
j
];
j
++
)
for
(
j
=
0
;
cobra_btn
[
j
];
j
++
)
set_bit
(
cobra_btn
[
j
],
input_dev
->
keybit
);
set_bit
(
cobra_btn
[
j
],
input_dev
->
keybit
);
input_register_device
(
cobra
->
dev
[
i
]);
err
=
input_register_device
(
cobra
->
dev
[
i
]);
if
(
err
)
goto
fail4
;
}
}
return
0
;
return
0
;
fail3:
for
(
i
=
0
;
i
<
2
;
i
++
)
fail4:
input_free_device
(
cobra
->
dev
[
i
]);
fail3:
while
(
--
i
>=
0
)
if
(
cobra
->
dev
[
i
])
if
(
cobra
->
dev
[
i
])
input_unregister_device
(
cobra
->
dev
[
i
]);
input_unregister_device
(
cobra
->
dev
[
i
]);
fail2:
gameport_close
(
gameport
);
fail2:
gameport_close
(
gameport
);
...
...
drivers/input/joystick/gf2k.c
View file @
127278ce
...
@@ -341,7 +341,9 @@ static int gf2k_connect(struct gameport *gameport, struct gameport_driver *drv)
...
@@ -341,7 +341,9 @@ static int gf2k_connect(struct gameport *gameport, struct gameport_driver *drv)
input_dev
->
absflat
[
gf2k_abs
[
i
]]
=
(
i
<
2
)
?
24
:
0
;
input_dev
->
absflat
[
gf2k_abs
[
i
]]
=
(
i
<
2
)
?
24
:
0
;
}
}
input_register_device
(
gf2k
->
dev
);
err
=
input_register_device
(
gf2k
->
dev
);
if
(
err
)
goto
fail2
;
return
0
;
return
0
;
...
...
drivers/input/joystick/grip_mp.c
View file @
127278ce
...
@@ -423,7 +423,10 @@ static int get_and_decode_packet(struct grip_mp *grip, int flags)
...
@@ -423,7 +423,10 @@ static int get_and_decode_packet(struct grip_mp *grip, int flags)
if
(
!
port
->
registered
)
{
if
(
!
port
->
registered
)
{
dbg
(
"New Grip pad in multiport slot %d.
\n
"
,
slot
);
dbg
(
"New Grip pad in multiport slot %d.
\n
"
,
slot
);
register_slot
(
slot
,
grip
);
if
(
register_slot
(
slot
,
grip
))
{
port
->
mode
=
GRIP_MODE_RESET
;
port
->
dirty
=
0
;
}
}
}
return
flags
;
return
flags
;
}
}
...
@@ -585,6 +588,7 @@ static int register_slot(int slot, struct grip_mp *grip)
...
@@ -585,6 +588,7 @@ static int register_slot(int slot, struct grip_mp *grip)
struct
grip_port
*
port
=
grip
->
port
[
slot
];
struct
grip_port
*
port
=
grip
->
port
[
slot
];
struct
input_dev
*
input_dev
;
struct
input_dev
*
input_dev
;
int
j
,
t
;
int
j
,
t
;
int
err
;
port
->
dev
=
input_dev
=
input_allocate_device
();
port
->
dev
=
input_dev
=
input_allocate_device
();
if
(
!
input_dev
)
if
(
!
input_dev
)
...
@@ -610,7 +614,12 @@ static int register_slot(int slot, struct grip_mp *grip)
...
@@ -610,7 +614,12 @@ static int register_slot(int slot, struct grip_mp *grip)
if
(
t
>
0
)
if
(
t
>
0
)
set_bit
(
t
,
input_dev
->
keybit
);
set_bit
(
t
,
input_dev
->
keybit
);
input_register_device
(
port
->
dev
);
err
=
input_register_device
(
port
->
dev
);
if
(
err
)
{
input_free_device
(
port
->
dev
);
return
err
;
}
port
->
registered
=
1
;
port
->
registered
=
1
;
if
(
port
->
dirty
)
/* report initial state, if any */
if
(
port
->
dirty
)
/* report initial state, if any */
...
...
drivers/input/joystick/guillemot.c
View file @
127278ce
...
@@ -250,7 +250,9 @@ static int guillemot_connect(struct gameport *gameport, struct gameport_driver *
...
@@ -250,7 +250,9 @@ static int guillemot_connect(struct gameport *gameport, struct gameport_driver *
for
(
i
=
0
;
(
t
=
guillemot
->
type
->
btn
[
i
])
>=
0
;
i
++
)
for
(
i
=
0
;
(
t
=
guillemot
->
type
->
btn
[
i
])
>=
0
;
i
++
)
set_bit
(
t
,
input_dev
->
keybit
);
set_bit
(
t
,
input_dev
->
keybit
);
input_register_device
(
guillemot
->
dev
);
err
=
input_register_device
(
guillemot
->
dev
);
if
(
err
)
goto
fail2
;
return
0
;
return
0
;
...
...
drivers/input/joystick/iforce/iforce-main.c
View file @
127278ce
...
@@ -325,8 +325,8 @@ int iforce_init_device(struct iforce *iforce)
...
@@ -325,8 +325,8 @@ int iforce_init_device(struct iforce *iforce)
if
(
i
==
20
)
{
/* 5 seconds */
if
(
i
==
20
)
{
/* 5 seconds */
printk
(
KERN_ERR
"iforce-main.c: Timeout waiting for response from device.
\n
"
);
printk
(
KERN_ERR
"iforce-main.c: Timeout waiting for response from device.
\n
"
);
input_free_device
(
input_dev
)
;
error
=
-
ENODEV
;
return
-
ENODEV
;
goto
fail
;
}
}
/*
/*
...
@@ -439,10 +439,8 @@ int iforce_init_device(struct iforce *iforce)
...
@@ -439,10 +439,8 @@ int iforce_init_device(struct iforce *iforce)
set_bit
(
iforce
->
type
->
ff
[
i
],
input_dev
->
ffbit
);
set_bit
(
iforce
->
type
->
ff
[
i
],
input_dev
->
ffbit
);
error
=
input_ff_create
(
input_dev
,
ff_effects
);
error
=
input_ff_create
(
input_dev
,
ff_effects
);
if
(
error
)
{
if
(
error
)
input_free_device
(
input_dev
);
goto
fail
;
return
error
;
}
ff
=
input_dev
->
ff
;
ff
=
input_dev
->
ff
;
ff
->
upload
=
iforce_upload_effect
;
ff
->
upload
=
iforce_upload_effect
;
...
@@ -455,11 +453,16 @@ int iforce_init_device(struct iforce *iforce)
...
@@ -455,11 +453,16 @@ int iforce_init_device(struct iforce *iforce)
* Register input device.
* Register input device.
*/
*/
input_register_device
(
iforce
->
dev
);
error
=
input_register_device
(
iforce
->
dev
);
if
(
error
)
goto
fail
;
printk
(
KERN_DEBUG
"iforce->dev->open = %p
\n
"
,
iforce
->
dev
->
open
);
printk
(
KERN_DEBUG
"iforce->dev->open = %p
\n
"
,
iforce
->
dev
->
open
);
return
0
;
return
0
;
fail:
input_free_device
(
input_dev
);
return
error
;
}
}
static
int
__init
iforce_init
(
void
)
static
int
__init
iforce_init
(
void
)
...
...
drivers/input/joystick/iforce/iforce-serio.c
View file @
127278ce
...
@@ -141,21 +141,19 @@ static int iforce_serio_connect(struct serio *serio, struct serio_driver *drv)
...
@@ -141,21 +141,19 @@ static int iforce_serio_connect(struct serio *serio, struct serio_driver *drv)
serio_set_drvdata
(
serio
,
iforce
);
serio_set_drvdata
(
serio
,
iforce
);
err
=
serio_open
(
serio
,
drv
);
err
=
serio_open
(
serio
,
drv
);
if
(
err
)
{
if
(
err
)
serio_set_drvdata
(
serio
,
NULL
);
goto
fail1
;
kfree
(
iforce
);
return
err
;
}
err
=
iforce_init_device
(
iforce
);
err
=
iforce_init_device
(
iforce
);
if
(
err
)
{
if
(
err
)
serio_close
(
serio
);
goto
fail2
;
serio_set_drvdata
(
serio
,
NULL
);
kfree
(
iforce
);
return
-
ENODEV
;
}
return
0
;
return
0
;
fail2:
serio_close
(
serio
);
fail1:
serio_set_drvdata
(
serio
,
NULL
);
kfree
(
iforce
);
return
err
;
}
}
static
void
iforce_serio_disconnect
(
struct
serio
*
serio
)
static
void
iforce_serio_disconnect
(
struct
serio
*
serio
)
...
...
drivers/input/joystick/interact.c
View file @
127278ce
...
@@ -283,7 +283,9 @@ static int interact_connect(struct gameport *gameport, struct gameport_driver *d
...
@@ -283,7 +283,9 @@ static int interact_connect(struct gameport *gameport, struct gameport_driver *d
for
(
i
=
0
;
(
t
=
interact_type
[
interact
->
type
].
btn
[
i
])
>=
0
;
i
++
)
for
(
i
=
0
;
(
t
=
interact_type
[
interact
->
type
].
btn
[
i
])
>=
0
;
i
++
)
set_bit
(
t
,
input_dev
->
keybit
);
set_bit
(
t
,
input_dev
->
keybit
);
input_register_device
(
interact
->
dev
);
err
=
input_register_device
(
interact
->
dev
);
if
(
err
)
goto
fail2
;
return
0
;
return
0
;
...
...
drivers/input/joystick/magellan.c
View file @
127278ce
...
@@ -157,7 +157,7 @@ static int magellan_connect(struct serio *serio, struct serio_driver *drv)
...
@@ -157,7 +157,7 @@ static int magellan_connect(struct serio *serio, struct serio_driver *drv)
magellan
=
kzalloc
(
sizeof
(
struct
magellan
),
GFP_KERNEL
);
magellan
=
kzalloc
(
sizeof
(
struct
magellan
),
GFP_KERNEL
);
input_dev
=
input_allocate_device
();
input_dev
=
input_allocate_device
();
if
(
!
magellan
||
!
input_dev
)
if
(
!
magellan
||
!
input_dev
)
goto
fail
;
goto
fail
1
;
magellan
->
dev
=
input_dev
;
magellan
->
dev
=
input_dev
;
snprintf
(
magellan
->
phys
,
sizeof
(
magellan
->
phys
),
"%s/input0"
,
serio
->
phys
);
snprintf
(
magellan
->
phys
,
sizeof
(
magellan
->
phys
),
"%s/input0"
,
serio
->
phys
);
...
@@ -183,13 +183,17 @@ static int magellan_connect(struct serio *serio, struct serio_driver *drv)
...
@@ -183,13 +183,17 @@ static int magellan_connect(struct serio *serio, struct serio_driver *drv)
err
=
serio_open
(
serio
,
drv
);
err
=
serio_open
(
serio
,
drv
);
if
(
err
)
if
(
err
)
goto
fail
;
goto
fail2
;
err
=
input_register_device
(
magellan
->
dev
);
if
(
err
)
goto
fail3
;
input_register_device
(
magellan
->
dev
);
return
0
;
return
0
;
fail:
serio_set_drvdata
(
serio
,
NULL
);
fail3:
serio_close
(
serio
);
input_free_device
(
input_dev
);
fail2:
serio_set_drvdata
(
serio
,
NULL
);
fail1:
input_free_device
(
input_dev
);
kfree
(
magellan
);
kfree
(
magellan
);
return
err
;
return
err
;
}
}
...
...
drivers/input/joystick/spaceball.c
View file @
127278ce
...
@@ -215,7 +215,7 @@ static int spaceball_connect(struct serio *serio, struct serio_driver *drv)
...
@@ -215,7 +215,7 @@ static int spaceball_connect(struct serio *serio, struct serio_driver *drv)
spaceball
=
kmalloc
(
sizeof
(
struct
spaceball
),
GFP_KERNEL
);
spaceball
=
kmalloc
(
sizeof
(
struct
spaceball
),
GFP_KERNEL
);
input_dev
=
input_allocate_device
();
input_dev
=
input_allocate_device
();
if
(
!
spaceball
||
!
input_dev
)
if
(
!
spaceball
||
!
input_dev
)
goto
fail
;
goto
fail
1
;
spaceball
->
dev
=
input_dev
;
spaceball
->
dev
=
input_dev
;
snprintf
(
spaceball
->
phys
,
sizeof
(
spaceball
->
phys
),
"%s/input0"
,
serio
->
phys
);
snprintf
(
spaceball
->
phys
,
sizeof
(
spaceball
->
phys
),
"%s/input0"
,
serio
->
phys
);
...
@@ -252,13 +252,17 @@ static int spaceball_connect(struct serio *serio, struct serio_driver *drv)
...
@@ -252,13 +252,17 @@ static int spaceball_connect(struct serio *serio, struct serio_driver *drv)
err
=
serio_open
(
serio
,
drv
);
err
=
serio_open
(
serio
,
drv
);
if
(
err
)
if
(
err
)
goto
fail
;
goto
fail2
;
err
=
input_register_device
(
spaceball
->
dev
);
if
(
err
)
goto
fail3
;
input_register_device
(
spaceball
->
dev
);
return
0
;
return
0
;
fail:
serio_set_drvdata
(
serio
,
NULL
);
fail3:
serio_close
(
serio
);
input_free_device
(
input_dev
);
fail2:
serio_set_drvdata
(
serio
,
NULL
);
fail1:
input_free_device
(
input_dev
);
kfree
(
spaceball
);
kfree
(
spaceball
);
return
err
;
return
err
;
}
}
...
...
drivers/input/joystick/spaceorb.c
View file @
127278ce
...
@@ -172,7 +172,7 @@ static int spaceorb_connect(struct serio *serio, struct serio_driver *drv)
...
@@ -172,7 +172,7 @@ static int spaceorb_connect(struct serio *serio, struct serio_driver *drv)
spaceorb
=
kzalloc
(
sizeof
(
struct
spaceorb
),
GFP_KERNEL
);
spaceorb
=
kzalloc
(
sizeof
(
struct
spaceorb
),
GFP_KERNEL
);
input_dev
=
input_allocate_device
();
input_dev
=
input_allocate_device
();
if
(
!
spaceorb
||
!
input_dev
)
if
(
!
spaceorb
||
!
input_dev
)
goto
fail
;
goto
fail
1
;
spaceorb
->
dev
=
input_dev
;
spaceorb
->
dev
=
input_dev
;
snprintf
(
spaceorb
->
phys
,
sizeof
(
spaceorb
->
phys
),
"%s/input0"
,
serio
->
phys
);
snprintf
(
spaceorb
->
phys
,
sizeof
(
spaceorb
->
phys
),
"%s/input0"
,
serio
->
phys
);
...
@@ -198,13 +198,17 @@ static int spaceorb_connect(struct serio *serio, struct serio_driver *drv)
...
@@ -198,13 +198,17 @@ static int spaceorb_connect(struct serio *serio, struct serio_driver *drv)
err
=
serio_open
(
serio
,
drv
);
err
=
serio_open
(
serio
,
drv
);
if
(
err
)
if
(
err
)
goto
fail
;
goto
fail2
;
err
=
input_register_device
(
spaceorb
->
dev
);
if
(
err
)
goto
fail3
;
input_register_device
(
spaceorb
->
dev
);
return
0
;
return
0
;
fail:
serio_set_drvdata
(
serio
,
NULL
);
fail3:
serio_close
(
serio
);
input_free_device
(
input_dev
);
fail2:
serio_set_drvdata
(
serio
,
NULL
);
fail1:
input_free_device
(
input_dev
);
kfree
(
spaceorb
);
kfree
(
spaceorb
);
return
err
;
return
err
;
}
}
...
...
drivers/input/joystick/stinger.c
View file @
127278ce
...
@@ -143,7 +143,7 @@ static int stinger_connect(struct serio *serio, struct serio_driver *drv)
...
@@ -143,7 +143,7 @@ static int stinger_connect(struct serio *serio, struct serio_driver *drv)
stinger
=
kmalloc
(
sizeof
(
struct
stinger
),
GFP_KERNEL
);
stinger
=
kmalloc
(
sizeof
(
struct
stinger
),
GFP_KERNEL
);
input_dev
=
input_allocate_device
();
input_dev
=
input_allocate_device
();
if
(
!
stinger
||
!
input_dev
)
if
(
!
stinger
||
!
input_dev
)
goto
fail
;
goto
fail
1
;
stinger
->
dev
=
input_dev
;
stinger
->
dev
=
input_dev
;
snprintf
(
stinger
->
phys
,
sizeof
(
stinger
->
phys
),
"%s/serio0"
,
serio
->
phys
);
snprintf
(
stinger
->
phys
,
sizeof
(
stinger
->
phys
),
"%s/serio0"
,
serio
->
phys
);
...
@@ -168,13 +168,17 @@ static int stinger_connect(struct serio *serio, struct serio_driver *drv)
...
@@ -168,13 +168,17 @@ static int stinger_connect(struct serio *serio, struct serio_driver *drv)
err
=
serio_open
(
serio
,
drv
);
err
=
serio_open
(
serio
,
drv
);
if
(
err
)
if
(
err
)
goto
fail
;
goto
fail2
;
err
=
input_register_device
(
stinger
->
dev
);
if
(
err
)
goto
fail3
;
input_register_device
(
stinger
->
dev
);
return
0
;
return
0
;
fail:
serio_set_drvdata
(
serio
,
NULL
);
fail3:
serio_close
(
serio
);
input_free_device
(
input_dev
);
fail2:
serio_set_drvdata
(
serio
,
NULL
);
fail1:
input_free_device
(
input_dev
);
kfree
(
stinger
);
kfree
(
stinger
);
return
err
;
return
err
;
}
}
...
...
drivers/input/joystick/twidjoy.c
View file @
127278ce
...
@@ -194,7 +194,7 @@ static int twidjoy_connect(struct serio *serio, struct serio_driver *drv)
...
@@ -194,7 +194,7 @@ static int twidjoy_connect(struct serio *serio, struct serio_driver *drv)
twidjoy
=
kzalloc
(
sizeof
(
struct
twidjoy
),
GFP_KERNEL
);
twidjoy
=
kzalloc
(
sizeof
(
struct
twidjoy
),
GFP_KERNEL
);
input_dev
=
input_allocate_device
();
input_dev
=
input_allocate_device
();
if
(
!
twidjoy
||
!
input_dev
)
if
(
!
twidjoy
||
!
input_dev
)
goto
fail
;
goto
fail
1
;
twidjoy
->
dev
=
input_dev
;
twidjoy
->
dev
=
input_dev
;
snprintf
(
twidjoy
->
phys
,
sizeof
(
twidjoy
->
phys
),
"%s/input0"
,
serio
->
phys
);
snprintf
(
twidjoy
->
phys
,
sizeof
(
twidjoy
->
phys
),
"%s/input0"
,
serio
->
phys
);
...
@@ -221,13 +221,17 @@ static int twidjoy_connect(struct serio *serio, struct serio_driver *drv)
...
@@ -221,13 +221,17 @@ static int twidjoy_connect(struct serio *serio, struct serio_driver *drv)
err
=
serio_open
(
serio
,
drv
);
err
=
serio_open
(
serio
,
drv
);
if
(
err
)
if
(
err
)
goto
fail
;
goto
fail2
;
err
=
input_register_device
(
twidjoy
->
dev
);
if
(
err
)
goto
fail3
;
input_register_device
(
twidjoy
->
dev
);
return
0
;
return
0
;
fail:
serio_set_drvdata
(
serio
,
NULL
);
fail3:
serio_close
(
serio
);
input_free_device
(
input_dev
);
fail2:
serio_set_drvdata
(
serio
,
NULL
);
fail1:
input_free_device
(
input_dev
);
kfree
(
twidjoy
);
kfree
(
twidjoy
);
return
err
;
return
err
;
}
}
...
...
drivers/input/joystick/warrior.c
View file @
127278ce
...
@@ -149,7 +149,7 @@ static int warrior_connect(struct serio *serio, struct serio_driver *drv)
...
@@ -149,7 +149,7 @@ static int warrior_connect(struct serio *serio, struct serio_driver *drv)
warrior
=
kzalloc
(
sizeof
(
struct
warrior
),
GFP_KERNEL
);
warrior
=
kzalloc
(
sizeof
(
struct
warrior
),
GFP_KERNEL
);
input_dev
=
input_allocate_device
();
input_dev
=
input_allocate_device
();
if
(
!
warrior
||
!
input_dev
)
if
(
!
warrior
||
!
input_dev
)
goto
fail
;
goto
fail
1
;
warrior
->
dev
=
input_dev
;
warrior
->
dev
=
input_dev
;
snprintf
(
warrior
->
phys
,
sizeof
(
warrior
->
phys
),
"%s/input0"
,
serio
->
phys
);
snprintf
(
warrior
->
phys
,
sizeof
(
warrior
->
phys
),
"%s/input0"
,
serio
->
phys
);
...
@@ -176,13 +176,17 @@ static int warrior_connect(struct serio *serio, struct serio_driver *drv)
...
@@ -176,13 +176,17 @@ static int warrior_connect(struct serio *serio, struct serio_driver *drv)
err
=
serio_open
(
serio
,
drv
);
err
=
serio_open
(
serio
,
drv
);
if
(
err
)
if
(
err
)
goto
fail
;
goto
fail2
;
err
=
input_register_device
(
warrior
->
dev
);
if
(
err
)
goto
fail3
;
input_register_device
(
warrior
->
dev
);
return
0
;
return
0
;
fail:
serio_set_drvdata
(
serio
,
NULL
);
fail3:
serio_close
(
serio
);
input_free_device
(
input_dev
);
fail2:
serio_set_drvdata
(
serio
,
NULL
);
fail1:
input_free_device
(
input_dev
);
kfree
(
warrior
);
kfree
(
warrior
);
return
err
;
return
err
;
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment