File tree Expand file tree Collapse file tree 1 file changed +7
-3
lines changed Expand file tree Collapse file tree 1 file changed +7
-3
lines changed Original file line number Diff line number Diff line change @@ -144,7 +144,7 @@ static irqreturn_t detected_mode_handler(int irq, void *data)
144
144
struct snd_soc_card * card = component -> card ;
145
145
struct rw_semaphore * rwsem = & card -> snd_card -> controls_rwsem ;
146
146
struct snd_kcontrol * kctl = interrupt -> priv ;
147
- struct snd_ctl_elem_value ucontrol ;
147
+ struct snd_ctl_elem_value * ucontrol __free ( kfree ) = NULL ;
148
148
struct soc_enum * soc_enum ;
149
149
unsigned int reg , val ;
150
150
int ret ;
@@ -204,10 +204,14 @@ static irqreturn_t detected_mode_handler(int irq, void *data)
204
204
205
205
dev_dbg (dev , "%s: %#x\n" , interrupt -> name , val );
206
206
207
- ucontrol .value .enumerated .item [0 ] = snd_soc_enum_val_to_item (soc_enum , val );
207
+ ucontrol = kzalloc (sizeof (* ucontrol ), GFP_KERNEL );
208
+ if (!ucontrol )
209
+ return IRQ_NONE ;
210
+
211
+ ucontrol -> value .enumerated .item [0 ] = snd_soc_enum_val_to_item (soc_enum , val );
208
212
209
213
down_write (rwsem );
210
- ret = kctl -> put (kctl , & ucontrol );
214
+ ret = kctl -> put (kctl , ucontrol );
211
215
up_write (rwsem );
212
216
if (ret < 0 ) {
213
217
dev_err (dev , "failed to update selected mode: %d\n" , ret );
You can’t perform that action at this time.
0 commit comments