File tree Expand file tree Collapse file tree 1 file changed +4
-2
lines changed Expand file tree Collapse file tree 1 file changed +4
-2
lines changed Original file line number Diff line number Diff line change @@ -249,16 +249,18 @@ static void virtio_snd_read_jack_info_handler(
249
249
struct virtq_desc * vq_desc ,
250
250
const virtio_snd_query_info_t * query )
251
251
{
252
+ uint32_t cnt = query -> count ;
252
253
virtio_snd_jack_info_t * info =
253
- (virtio_snd_jack_info_t * ) (( uintptr_t ) vq_desc [ 2 ]. addr );
254
- for (uint32_t i = 0 ; i < query -> count ; i ++ ) {
254
+ (virtio_snd_jack_info_t * ) malloc ( sizeof ( virtio_snd_jack_info_t ) * cnt );
255
+ for (uint32_t i = 0 ; i < cnt ; i ++ ) {
255
256
info [i ].hdr .hda_fn_nid = 0 ;
256
257
info [i ].features = 0 ;
257
258
info [i ].hda_reg_defconf = 0 ;
258
259
info [i ].hda_reg_caps = 0 ;
259
260
info [i ].connected = 1 ;
260
261
memset (& info [i ].padding , 0 , sizeof (info [i ].padding ));
261
262
}
263
+ vq_desc [2 ].addr = (uintptr_t ) info ;
262
264
}
263
265
264
266
static void virtio_snd_read_pcm_info_handler (
You can’t perform that action at this time.
0 commit comments