tree: https://github.com/projectacrn/acrn-kernel 4.19/lts head: 8abec6c5ebdace7220ecfa35b317c76f62e29c31 commit: 7b2bb5a7bdf187b11d915fc6e03cd619f5420ce9 [4/85] acrn/vhm/Kconfig: Remove the limitation that acrn can't work with VMAP_STACK config: x86_64-allyesconfig (attached as .config) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 reproduce (this is a W=1 build): # https://github.com/projectacrn/acrn-kernel/commit/7b2bb5a7bdf187b11d915fc6e03cd619f5420ce9 git remote add acrn https://github.com/projectacrn/acrn-kernel git fetch --no-tags acrn 4.19/lts git checkout 7b2bb5a7bdf187b11d915fc6e03cd619f5420ce9 # save the attached .config to linux build tree make W=1 ARCH=x86_64 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All warnings (new ones prefixed by >>): >> drivers/media/pci/intel/virtio/../virtio/intel-ipu4-virtio-be-pipeline.c:23:5: warning: no previous prototype for 'process_pipeline_open' [-Wmissing-prototypes] 23 | int process_pipeline_open(struct ipu4_virtio_req_info *req_info) | ^~~~~~~~~~~~~~~~~~~~~ >> drivers/media/pci/intel/virtio/../virtio/intel-ipu4-virtio-be-pipeline.c:46:5: warning: no previous prototype for 'process_pipeline_close' [-Wmissing-prototypes] 46 | int process_pipeline_close(struct ipu4_virtio_req_info *req_info) | ^~~~~~~~~~~~~~~~~~~~~~ >> drivers/media/pci/intel/virtio/../virtio/intel-ipu4-virtio-be-pipeline.c:60:5: warning: no previous prototype for 'process_enum_nodes' [-Wmissing-prototypes] 60 | int process_enum_nodes(struct ipu4_virtio_req_info *req_info) | ^~~~~~~~~~~~~~~~~~ >> drivers/media/pci/intel/virtio/../virtio/intel-ipu4-virtio-be-pipeline.c:99:5: warning: no previous prototype for 'process_enum_links' [-Wmissing-prototypes] 99 | int process_enum_links(struct ipu4_virtio_req_info *req_info) | ^~~~~~~~~~~~~~~~~~ >> drivers/media/pci/intel/virtio/../virtio/intel-ipu4-virtio-be-pipeline.c:136:5: warning: no previous prototype for 'process_get_supported_framefmt' [-Wmissing-prototypes] 136 | int process_get_supported_framefmt(struct ipu4_virtio_req_info *req_info) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/media/pci/intel/virtio/../virtio/intel-ipu4-virtio-be-pipeline.c:174:5: warning: no previous prototype for 'process_set_framefmt' [-Wmissing-prototypes] 174 | int process_set_framefmt(struct ipu4_virtio_req_info *req_info) | ^~~~~~~~~~~~~~~~~~~~ >> drivers/media/pci/intel/virtio/../virtio/intel-ipu4-virtio-be-pipeline.c:212:5: warning: no previous prototype for 'process_get_framefmt' [-Wmissing-prototypes] 212 | int process_get_framefmt(struct ipu4_virtio_req_info *req_info) | ^~~~~~~~~~~~~~~~~~~~ >> drivers/media/pci/intel/virtio/../virtio/intel-ipu4-virtio-be-pipeline.c:250:5: warning: no previous prototype for 'process_setup_pipe' [-Wmissing-prototypes] 250 | int process_setup_pipe(struct ipu4_virtio_req_info *req_info) | ^~~~~~~~~~~~~~~~~~ >> drivers/media/pci/intel/virtio/../virtio/intel-ipu4-virtio-be-pipeline.c:288:5: warning: no previous prototype for 'process_pad_set_sel' [-Wmissing-prototypes] 288 | int process_pad_set_sel(struct ipu4_virtio_req_info *req_info) | ^~~~~~~~~~~~~~~~~~~ >> drivers/media/pci/intel/virtio/../virtio/intel-ipu4-virtio-be-pipeline.c:326:5: warning: no previous prototype for 'process_pad_get_sel' [-Wmissing-prototypes] 326 | int process_pad_get_sel(struct ipu4_virtio_req_info *req_info) | ^~~~~~~~~~~~~~~~~~~ -- drivers/media/pci/intel/virtio/../virtio/intel-ipu4-virtio-be.c: In function 'handle_vq_kick': >> drivers/media/pci/intel/virtio/../virtio/intel-ipu4-virtio-be.c:163:6: warning: variable 'ret' set but not used [-Wunused-but-set-variable] 163 | int ret; | ^~~ drivers/media/pci/intel/virtio/../virtio/intel-ipu4-virtio-be.c:44: warning: Function parameter or member 'busy' not described in 'ipu4_virtio_be_priv' drivers/media/pci/intel/virtio/../virtio/intel-ipu4-virtio-be.c:44: warning: Function parameter or member 'mlock' not described in 'ipu4_virtio_be_priv' drivers/media/pci/intel/virtio/../virtio/intel-ipu4-virtio-be.c:44: warning: Function parameter or member 'slock' not described in 'ipu4_virtio_be_priv' -- >> drivers/media/pci/intel/virtio/../virtio/intel-ipu4-virtio-be-stream.c:45:6: warning: no previous prototype for 'cleanup_stream' [-Wmissing-prototypes] 45 | void cleanup_stream(void) | ^~~~~~~~~~~~~~ >> drivers/media/pci/intel/virtio/../virtio/intel-ipu4-virtio-be-stream.c:150:5: warning: no previous prototype for 'process_set_format' [-Wmissing-prototypes] 150 | int process_set_format(struct ipu4_virtio_req_info *req_info) | ^~~~~~~~~~~~~~~~~~ >> drivers/media/pci/intel/virtio/../virtio/intel-ipu4-virtio-be-stream.c:203:5: warning: no previous prototype for 'process_poll' [-Wmissing-prototypes] 203 | int process_poll(struct ipu4_virtio_req_info *req_info) | ^~~~~~~~~~~~ >> drivers/media/pci/intel/virtio/../virtio/intel-ipu4-virtio-be-stream.c:261:5: warning: no previous prototype for 'process_put_buf' [-Wmissing-prototypes] 261 | int process_put_buf(struct ipu4_virtio_req_info *req_info) | ^~~~~~~~~~~~~~~ >> drivers/media/pci/intel/virtio/../virtio/intel-ipu4-virtio-be-stream.c:313:5: warning: no previous prototype for 'process_get_buf' [-Wmissing-prototypes] 313 | int process_get_buf(struct ipu4_virtio_req_info *req_info) | ^~~~~~~~~~~~~~~ >> drivers/media/pci/intel/virtio/../virtio/intel-ipu4-virtio-be-stream.c:413:5: warning: no previous prototype for 'process_stream_on' [-Wmissing-prototypes] 413 | int process_stream_on(struct ipu4_virtio_req_info *req_info) | ^~~~~~~~~~~~~~~~~ >> drivers/media/pci/intel/virtio/../virtio/intel-ipu4-virtio-be-stream.c:455:5: warning: no previous prototype for 'process_stream_off' [-Wmissing-prototypes] 455 | int process_stream_off(struct ipu4_virtio_req_info *req_info) | ^~~~~~~~~~~~~~~~~~ -- >> drivers/media/pci/intel/virtio/../virtio/intel-ipu4-virtio-be-psys.c:15:5: warning: no previous prototype for 'process_psys_mapbuf' [-Wmissing-prototypes] 15 | int process_psys_mapbuf(struct ipu4_virtio_req_info *req_info) | ^~~~~~~~~~~~~~~~~~~ >> drivers/media/pci/intel/virtio/../virtio/intel-ipu4-virtio-be-psys.c:20:5: warning: no previous prototype for 'process_psys_unmapbuf' [-Wmissing-prototypes] 20 | int process_psys_unmapbuf(struct ipu4_virtio_req_info *req_info) | ^~~~~~~~~~~~~~~~~~~~~ >> drivers/media/pci/intel/virtio/../virtio/intel-ipu4-virtio-be-psys.c:44:5: warning: no previous prototype for 'process_psys_querycap' [-Wmissing-prototypes] 44 | int process_psys_querycap(struct ipu4_virtio_req_info *req_info) | ^~~~~~~~~~~~~~~~~~~~~ >> drivers/media/pci/intel/virtio/../virtio/intel-ipu4-virtio-be-psys.c:72:5: warning: no previous prototype for 'process_psys_putbuf' [-Wmissing-prototypes] 72 | int process_psys_putbuf(struct ipu4_virtio_req_info *req_info) | ^~~~~~~~~~~~~~~~~~~ >> drivers/media/pci/intel/virtio/../virtio/intel-ipu4-virtio-be-psys.c:77:5: warning: no previous prototype for 'process_psys_qcmd' [-Wmissing-prototypes] 77 | int process_psys_qcmd(struct ipu4_virtio_req_info *req_info) | ^~~~~~~~~~~~~~~~~ >> drivers/media/pci/intel/virtio/../virtio/intel-ipu4-virtio-be-psys.c:92:5: warning: no previous prototype for 'process_psys_dqevent' [-Wmissing-prototypes] 92 | int process_psys_dqevent(struct ipu4_virtio_req_info *req_info) | ^~~~~~~~~~~~~~~~~~~~ >> drivers/media/pci/intel/virtio/../virtio/intel-ipu4-virtio-be-psys.c:107:5: warning: no previous prototype for 'process_psys_getbuf' [-Wmissing-prototypes] 107 | int process_psys_getbuf(struct ipu4_virtio_req_info *req_info) | ^~~~~~~~~~~~~~~~~~~ >> drivers/media/pci/intel/virtio/../virtio/intel-ipu4-virtio-be-psys.c:122:5: warning: no previous prototype for 'process_psys_get_manifest' [-Wmissing-prototypes] 122 | int process_psys_get_manifest(struct ipu4_virtio_req_info *req_info) | ^~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/media/pci/intel/virtio/../virtio/intel-ipu4-virtio-be-psys.c:137:5: warning: no previous prototype for 'process_psys_open' [-Wmissing-prototypes] 137 | int process_psys_open(struct ipu4_virtio_req_info *req_info) | ^~~~~~~~~~~~~~~~~ >> drivers/media/pci/intel/virtio/../virtio/intel-ipu4-virtio-be-psys.c:155:5: warning: no previous prototype for 'process_psys_close' [-Wmissing-prototypes] 155 | int process_psys_close(struct ipu4_virtio_req_info *req_info) | ^~~~~~~~~~~~~~~~~~ >> drivers/media/pci/intel/virtio/../virtio/intel-ipu4-virtio-be-psys.c:164:5: warning: no previous prototype for 'process_psys_poll' [-Wmissing-prototypes] 164 | int process_psys_poll(struct ipu4_virtio_req_info *req_info) | ^~~~~~~~~~~~~~~~~ >> drivers/media/pci/intel/virtio/../virtio/intel-ipu4-virtio-be-psys.c:177:5: warning: no previous prototype for 'process_psys_mapbuf_thread' [-Wmissing-prototypes] 177 | int process_psys_mapbuf_thread(void *data) | ^~~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/media/pci/intel/virtio/../virtio/intel-ipu4-virtio-be-psys.c:187:5: warning: no previous prototype for 'process_psys_unmapbuf_thread' [-Wmissing-prototypes] 187 | int process_psys_unmapbuf_thread(void *data) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/media/pci/intel/virtio/../virtio/intel-ipu4-virtio-be-psys.c:197:5: warning: no previous prototype for 'process_psys_querycap_thread' [-Wmissing-prototypes] 197 | int process_psys_querycap_thread(void *data) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/media/pci/intel/virtio/../virtio/intel-ipu4-virtio-be-psys.c:207:5: warning: no previous prototype for 'process_psys_putbuf_thread' [-Wmissing-prototypes] 207 | int process_psys_putbuf_thread(void *data) | ^~~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/media/pci/intel/virtio/../virtio/intel-ipu4-virtio-be-psys.c:217:5: warning: no previous prototype for 'process_psys_qcmd_thread' [-Wmissing-prototypes] 217 | int process_psys_qcmd_thread(void *data) | ^~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/media/pci/intel/virtio/../virtio/intel-ipu4-virtio-be-psys.c:227:5: warning: no previous prototype for 'process_psys_dqevent_thread' [-Wmissing-prototypes] 227 | int process_psys_dqevent_thread(void *data) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/media/pci/intel/virtio/../virtio/intel-ipu4-virtio-be-psys.c:237:5: warning: no previous prototype for 'process_psys_get_manifest_thread' [-Wmissing-prototypes] 237 | int process_psys_get_manifest_thread(void *data) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/media/pci/intel/virtio/../virtio/intel-ipu4-virtio-be-psys.c:247:5: warning: no previous prototype for 'process_psys_getbuf_thread' [-Wmissing-prototypes] 247 | int process_psys_getbuf_thread(void *data) | ^~~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/media/pci/intel/virtio/../virtio/intel-ipu4-virtio-be-psys.c:257:5: warning: no previous prototype for 'process_psys_open_thread' [-Wmissing-prototypes] 257 | int process_psys_open_thread(void *data) | ^~~~~~~~~~~~~~~~~~~~~~~~ drivers/media/pci/intel/virtio/../virtio/intel-ipu4-virtio-be-psys.c:267:5: warning: no previous prototype for 'process_psys_close_thread' [-Wmissing-prototypes] 267 | int process_psys_close_thread(void *data) | ^~~~~~~~~~~~~~~~~~~~~~~~~ drivers/media/pci/intel/virtio/../virtio/intel-ipu4-virtio-be-psys.c:277:5: warning: no previous prototype for 'process_psys_poll_thread' [-Wmissing-prototypes] 277 | int process_psys_poll_thread(void *data) | ^~~~~~~~~~~~~~~~~~~~~~~~ -- In file included from sound/soc/intel/skylake/virtio/../skl-sst-ipc.h:21, from sound/soc/intel/skylake/virtio/skl-virtio-common.h:12, from sound/soc/intel/skylake/virtio/skl-virtio-be.h:14, from sound/soc/intel/skylake/virtio/skl-virt-audio.c:22: sound/soc/intel/skylake/virtio/../../common/sst-ipc.h:54:29: warning: 'struct sst_dsp' declared inside parameter list will not be visible outside of this definition or declaration 54 | bool (*is_dsp_busy)(struct sst_dsp *dsp); | ^~~~~~~ sound/soc/intel/skylake/virtio/../../common/sst-ipc.h:55:32: warning: 'struct sst_dsp' declared inside parameter list will not be visible outside of this definition or declaration 55 | int (*check_dsp_lp_on)(struct sst_dsp *dsp, bool state); | ^~~~~~~ sound/soc/intel/skylake/virtio/skl-virt-audio.c: In function 'vskl_vbs_handle_kick': sound/soc/intel/skylake/virtio/skl-virt-audio.c:97:32: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits] 97 | req->reqs.pio_request.value >= 0 ? | ^~ sound/soc/intel/skylake/virtio/skl-virt-audio.c: At top level: >> sound/soc/intel/skylake/virtio/skl-virt-audio.c:111:5: warning: no previous prototype for 'vskl_vbs_init_be' [-Wmissing-prototypes] 111 | int vskl_vbs_init_be(struct vskl *vskl, struct snd_skl_vbe *vbe) | ^~~~~~~~~~~~~~~~ >> sound/soc/intel/skylake/virtio/skl-virt-audio.c:139:5: warning: no previous prototype for 'vskl_vbs_register_client' [-Wmissing-prototypes] 139 | int vskl_vbs_register_client(struct snd_skl_vbe *vbe) | ^~~~~~~~~~~~~~~~~~~~~~~~ -- In file included from sound/soc/intel/skylake/virtio/../skl-sst-ipc.h:21, from sound/soc/intel/skylake/virtio/skl-virtio-common.h:12, from sound/soc/intel/skylake/virtio/skl-virtio-be.h:14, from sound/soc/intel/skylake/virtio/skl-virtio-be.c:32: sound/soc/intel/skylake/virtio/../../common/sst-ipc.h:54:29: warning: 'struct sst_dsp' declared inside parameter list will not be visible outside of this definition or declaration 54 | bool (*is_dsp_busy)(struct sst_dsp *dsp); | ^~~~~~~ sound/soc/intel/skylake/virtio/../../common/sst-ipc.h:55:32: warning: 'struct sst_dsp' declared inside parameter list will not be visible outside of this definition or declaration 55 | int (*check_dsp_lp_on)(struct sst_dsp *dsp, bool state); | ^~~~~~~ In file included from sound/soc/intel/skylake/virtio/skl-virtio-be.c:36: >> sound/soc/intel/skylake/virtio/../../common/sst-dsp-priv.h:65:42: warning: 'struct sst_pdata' declared inside parameter list will not be visible outside of this definition or declaration 65 | int (*init)(struct sst_dsp *sst, struct sst_pdata *pdata); | ^~~~~~~~~ >> sound/soc/intel/skylake/virtio/skl-virtio-be.c:45:28: warning: no previous prototype for 'vbe_find_substream_info_by_pcm' [-Wmissing-prototypes] 45 | struct vbe_substream_info *vbe_find_substream_info_by_pcm( | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> sound/soc/intel/skylake/virtio/skl-virtio-be.c:59:28: warning: no previous prototype for 'vbe_find_substream_info' [-Wmissing-prototypes] 59 | struct vbe_substream_info *vbe_find_substream_info( | ^~~~~~~~~~~~~~~~~~~~~~~ >> sound/soc/intel/skylake/virtio/skl-virtio-be.c:82:29: warning: no previous prototype for 'vbe_skl_find_kcontrol_widget' [-Wmissing-prototypes] 82 | struct snd_soc_dapm_widget *vbe_skl_find_kcontrol_widget( | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> sound/soc/intel/skylake/virtio/skl-virtio-be.c:98:25: warning: no previous prototype for 'vbe_skl_find_tplg_domain_by_name' [-Wmissing-prototypes] 98 | struct skl_tplg_domain *vbe_skl_find_tplg_domain_by_name( | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> sound/soc/intel/skylake/virtio/skl-virtio-be.c:112:25: warning: no previous prototype for 'vbe_skl_find_tplg_domain_by_id' [-Wmissing-prototypes] 112 | struct skl_tplg_domain *vbe_skl_find_tplg_domain_by_id( | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> sound/soc/intel/skylake/virtio/skl-virtio-be.c:154:17: warning: no previous prototype for 'vbe_skl_find_pcm_by_name' [-Wmissing-prototypes] 154 | struct snd_pcm *vbe_skl_find_pcm_by_name(struct skl *skl, char *pcm_name) | ^~~~~~~~~~~~~~~~~~~~~~~~ >> sound/soc/intel/skylake/virtio/skl-virtio-be.c:203:6: warning: no previous prototype for 'vbe_stream_update' [-Wmissing-prototypes] 203 | void vbe_stream_update(struct hdac_bus *bus, struct hdac_stream *hstr) | ^~~~~~~~~~~~~~~~~ >> sound/soc/intel/skylake/virtio/skl-virtio-be.c:214:5: warning: no previous prototype for 'vbe_send_kctl_msg' [-Wmissing-prototypes] 214 | int vbe_send_kctl_msg(struct snd_kcontrol *kcontrol, | ^~~~~~~~~~~~~~~~~ >> sound/soc/intel/skylake/virtio/skl-virtio-be.c:262:5: warning: no previous prototype for 'vbe_skl_allocate_runtime' [-Wmissing-prototypes] 262 | int vbe_skl_allocate_runtime(struct snd_soc_card *card, | ^~~~~~~~~~~~~~~~~~~~~~~~ >> sound/soc/intel/skylake/virtio/skl-virtio-be.c:307:6: warning: no previous prototype for 'vbe_skl_initialize_substream_runtime' [-Wmissing-prototypes] 307 | void vbe_skl_initialize_substream_runtime(struct snd_pcm_runtime *runtime, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sound/soc/intel/skylake/virtio/skl-virtio-be.c: In function 'vbe_skl_pcm_open': >> sound/soc/intel/skylake/virtio/skl-virtio-be.c:491:26: warning: variable 'runtime' set but not used [-Wunused-but-set-variable] 491 | struct snd_pcm_runtime *runtime; | ^~~~~~~ sound/soc/intel/skylake/virtio/skl-virtio-be.c: At top level: >> sound/soc/intel/skylake/virtio/skl-virtio-be.c:949:5: warning: no previous prototype for 'vbe_skl_msg_kcontrol_handle' [-Wmissing-prototypes] 949 | int vbe_skl_msg_kcontrol_handle(struct snd_skl_vbe *vbe, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ vim +/process_pipeline_open +23 drivers/media/pci/intel/virtio/../virtio/intel-ipu4-virtio-be-pipeline.c 705730750ee6dc Yew, Chang Ching 2018-10-23 22 f1679a8492454e Ong Hock Yu 2018-10-02 @23 int process_pipeline_open(struct ipu4_virtio_req_info *req_info) 705730750ee6dc Yew, Chang Ching 2018-10-23 24 { f1679a8492454e Ong Hock Yu 2018-10-02 25 int domid = req_info->domid; 705730750ee6dc Yew, Chang Ching 2018-10-23 26 if (guestID != -1 && guestID != domid) { 705730750ee6dc Yew, Chang Ching 2018-10-23 27 pr_err("%s: pipeline device already opened by other guest! %d %d", __func__, guestID, domid); f1679a8492454e Ong Hock Yu 2018-10-02 28 return IPU4_REQ_ERROR; 705730750ee6dc Yew, Chang Ching 2018-10-23 29 } 705730750ee6dc Yew, Chang Ching 2018-10-23 30 705730750ee6dc Yew, Chang Ching 2018-10-23 31 pr_info("process_device_open: /dev/intel_pipeline"); c5cdb3f98e3800 Poluri, Sarat Chandra 2019-02-19 32 if (!pipeline) { 705730750ee6dc Yew, Chang Ching 2018-10-23 33 pipeline = filp_open("/dev/intel_pipeline", O_RDWR | O_NONBLOCK, 0); 48c5267213af77 Poluri, Sarat Chandra 2019-03-12 34 if (IS_ERR(pipeline) || !pipeline) { c5cdb3f98e3800 Poluri, Sarat Chandra 2019-02-19 35 pr_err("%s: no pipeline device exists on host OS", c5cdb3f98e3800 Poluri, Sarat Chandra 2019-02-19 36 __func__); 48c5267213af77 Poluri, Sarat Chandra 2019-03-12 37 pipeline = NULL; c5cdb3f98e3800 Poluri, Sarat Chandra 2019-02-19 38 return IPU4_REQ_ERROR; c5cdb3f98e3800 Poluri, Sarat Chandra 2019-02-19 39 } c5cdb3f98e3800 Poluri, Sarat Chandra 2019-02-19 40 } 705730750ee6dc Yew, Chang Ching 2018-10-23 41 guestID = domid; 705730750ee6dc Yew, Chang Ching 2018-10-23 42 f1679a8492454e Ong Hock Yu 2018-10-02 43 return IPU4_REQ_PROCESSED; 705730750ee6dc Yew, Chang Ching 2018-10-23 44 } 705730750ee6dc Yew, Chang Ching 2018-10-23 45 f1679a8492454e Ong Hock Yu 2018-10-02 @46 int process_pipeline_close(struct ipu4_virtio_req_info *req_info) 705730750ee6dc Yew, Chang Ching 2018-10-23 47 { f1679a8492454e Ong Hock Yu 2018-10-02 48 struct ipu4_virtio_req *req = req_info->request; f1679a8492454e Ong Hock Yu 2018-10-02 49 705730750ee6dc Yew, Chang Ching 2018-10-23 50 pr_info("%s: %d", __func__, req->op[0]); 705730750ee6dc Yew, Chang Ching 2018-10-23 51 0daa3a5b7db6ce Ong Hock Yu 2018-11-13 52 if (pipeline) 705730750ee6dc Yew, Chang Ching 2018-10-23 53 filp_close(pipeline, 0); 705730750ee6dc Yew, Chang Ching 2018-10-23 54 guestID = -1; 0daa3a5b7db6ce Ong Hock Yu 2018-11-13 55 pipeline = NULL; 705730750ee6dc Yew, Chang Ching 2018-10-23 56 f1679a8492454e Ong Hock Yu 2018-10-02 57 return IPU4_REQ_PROCESSED; 705730750ee6dc Yew, Chang Ching 2018-10-23 58 } 705730750ee6dc Yew, Chang Ching 2018-10-23 59 f1679a8492454e Ong Hock Yu 2018-10-02 @60 int process_enum_nodes(struct ipu4_virtio_req_info *req_info) 705730750ee6dc Yew, Chang Ching 2018-10-23 61 { 705730750ee6dc Yew, Chang Ching 2018-10-23 62 int err = 0; c4c7db6fd2827f Ong Hock Yu 2018-12-23 63 struct ici_isys_pipeline_device *dev; 705730750ee6dc Yew, Chang Ching 2018-10-23 64 struct ici_node_desc *host_virt; c4c7db6fd2827f Ong Hock Yu 2018-12-23 65 struct ipu4_virtio_req *req; 48c5267213af77 Poluri, Sarat Chandra 2019-03-12 66 int domid; 705730750ee6dc Yew, Chang Ching 2018-10-23 67 705730750ee6dc Yew, Chang Ching 2018-10-23 68 pr_debug("%s\n", __func__); 705730750ee6dc Yew, Chang Ching 2018-10-23 69 c4c7db6fd2827f Ong Hock Yu 2018-12-23 70 if (!pipeline) { c4c7db6fd2827f Ong Hock Yu 2018-12-23 71 pr_err("%s: NULL pipeline", __func__); c4c7db6fd2827f Ong Hock Yu 2018-12-23 72 return IPU4_REQ_ERROR; c4c7db6fd2827f Ong Hock Yu 2018-12-23 73 } c4c7db6fd2827f Ong Hock Yu 2018-12-23 74 dev = pipeline->private_data; c4c7db6fd2827f Ong Hock Yu 2018-12-23 75 c4c7db6fd2827f Ong Hock Yu 2018-12-23 76 if (!req_info) { c4c7db6fd2827f Ong Hock Yu 2018-12-23 77 pr_err("%s: NULL req_info", __func__); c4c7db6fd2827f Ong Hock Yu 2018-12-23 78 return IPU4_REQ_ERROR; c4c7db6fd2827f Ong Hock Yu 2018-12-23 79 } 48c5267213af77 Poluri, Sarat Chandra 2019-03-12 80 domid = req_info->domid; c4c7db6fd2827f Ong Hock Yu 2018-12-23 81 req = req_info->request; c4c7db6fd2827f Ong Hock Yu 2018-12-23 82 7f335ef6da9053 Ong Hock Yu 2018-11-23 83 host_virt = map_guest_phys(domid, req->payload, 7f335ef6da9053 Ong Hock Yu 2018-11-23 84 sizeof(struct ici_node_desc)); 705730750ee6dc Yew, Chang Ching 2018-10-23 85 if (host_virt == NULL) { 705730750ee6dc Yew, Chang Ching 2018-10-23 86 pr_err("process_enum_nodes: NULL host_virt"); f1679a8492454e Ong Hock Yu 2018-10-02 87 return IPU4_REQ_ERROR; 705730750ee6dc Yew, Chang Ching 2018-10-23 88 } 705730750ee6dc Yew, Chang Ching 2018-10-23 89 705730750ee6dc Yew, Chang Ching 2018-10-23 90 err = dev->pipeline_ioctl_ops->pipeline_enum_nodes(pipeline, dev, host_virt); 705730750ee6dc Yew, Chang Ching 2018-10-23 91 caaa9a19db1c41 Ong Hock Yu 2018-11-14 92 unmap_guest_phys(domid, req->payload); f1679a8492454e Ong Hock Yu 2018-10-02 93 if (err) f1679a8492454e Ong Hock Yu 2018-10-02 94 return IPU4_REQ_ERROR; f1679a8492454e Ong Hock Yu 2018-10-02 95 else f1679a8492454e Ong Hock Yu 2018-10-02 96 return IPU4_REQ_PROCESSED; 705730750ee6dc Yew, Chang Ching 2018-10-23 97 } 705730750ee6dc Yew, Chang Ching 2018-10-23 98 f1679a8492454e Ong Hock Yu 2018-10-02 @99 int process_enum_links(struct ipu4_virtio_req_info *req_info) 705730750ee6dc Yew, Chang Ching 2018-10-23 100 { 705730750ee6dc Yew, Chang Ching 2018-10-23 101 int err = 0; c4c7db6fd2827f Ong Hock Yu 2018-12-23 102 struct ici_isys_pipeline_device *dev; 705730750ee6dc Yew, Chang Ching 2018-10-23 103 struct ici_links_query *host_virt; c4c7db6fd2827f Ong Hock Yu 2018-12-23 104 struct ipu4_virtio_req *req; 48c5267213af77 Poluri, Sarat Chandra 2019-03-12 105 int domid; 705730750ee6dc Yew, Chang Ching 2018-10-23 106 705730750ee6dc Yew, Chang Ching 2018-10-23 107 pr_debug("%s\n", __func__); 705730750ee6dc Yew, Chang Ching 2018-10-23 108 c4c7db6fd2827f Ong Hock Yu 2018-12-23 109 if (!pipeline) { c4c7db6fd2827f Ong Hock Yu 2018-12-23 110 pr_err("%s: NULL pipeline", __func__); c4c7db6fd2827f Ong Hock Yu 2018-12-23 111 return IPU4_REQ_ERROR; c4c7db6fd2827f Ong Hock Yu 2018-12-23 112 } c4c7db6fd2827f Ong Hock Yu 2018-12-23 113 dev = pipeline->private_data; c4c7db6fd2827f Ong Hock Yu 2018-12-23 114 c4c7db6fd2827f Ong Hock Yu 2018-12-23 115 if (!req_info) { c4c7db6fd2827f Ong Hock Yu 2018-12-23 116 pr_err("%s: NULL req_info", __func__); c4c7db6fd2827f Ong Hock Yu 2018-12-23 117 return IPU4_REQ_ERROR; c4c7db6fd2827f Ong Hock Yu 2018-12-23 118 } 48c5267213af77 Poluri, Sarat Chandra 2019-03-12 119 domid = req_info->domid; c4c7db6fd2827f Ong Hock Yu 2018-12-23 120 req = req_info->request; c4c7db6fd2827f Ong Hock Yu 2018-12-23 121 7f335ef6da9053 Ong Hock Yu 2018-11-23 122 host_virt = map_guest_phys(domid, req->payload, 7f335ef6da9053 Ong Hock Yu 2018-11-23 123 sizeof(struct ici_links_query)); 705730750ee6dc Yew, Chang Ching 2018-10-23 124 if (host_virt == NULL) { 705730750ee6dc Yew, Chang Ching 2018-10-23 125 pr_err("%s: NULL host_virt\n", __func__); f1679a8492454e Ong Hock Yu 2018-10-02 126 return IPU4_REQ_ERROR; 705730750ee6dc Yew, Chang Ching 2018-10-23 127 } 705730750ee6dc Yew, Chang Ching 2018-10-23 128 err = dev->pipeline_ioctl_ops->pipeline_enum_links(pipeline, dev, host_virt); 705730750ee6dc Yew, Chang Ching 2018-10-23 129 caaa9a19db1c41 Ong Hock Yu 2018-11-14 130 unmap_guest_phys(domid, req->payload); f1679a8492454e Ong Hock Yu 2018-10-02 131 if (err) f1679a8492454e Ong Hock Yu 2018-10-02 132 return IPU4_REQ_ERROR; f1679a8492454e Ong Hock Yu 2018-10-02 133 else f1679a8492454e Ong Hock Yu 2018-10-02 134 return IPU4_REQ_PROCESSED; 705730750ee6dc Yew, Chang Ching 2018-10-23 135 } f1679a8492454e Ong Hock Yu 2018-10-02 @136 int process_get_supported_framefmt(struct ipu4_virtio_req_info *req_info) 705730750ee6dc Yew, Chang Ching 2018-10-23 137 { 705730750ee6dc Yew, Chang Ching 2018-10-23 138 int err = 0; c4c7db6fd2827f Ong Hock Yu 2018-12-23 139 struct ici_isys_pipeline_device *dev; 705730750ee6dc Yew, Chang Ching 2018-10-23 140 struct ici_pad_supported_format_desc *host_virt; c4c7db6fd2827f Ong Hock Yu 2018-12-23 141 struct ipu4_virtio_req *req; 48c5267213af77 Poluri, Sarat Chandra 2019-03-12 142 int domid; 705730750ee6dc Yew, Chang Ching 2018-10-23 143 705730750ee6dc Yew, Chang Ching 2018-10-23 144 pr_debug("%s\n", __func__); 705730750ee6dc Yew, Chang Ching 2018-10-23 145 c4c7db6fd2827f Ong Hock Yu 2018-12-23 146 if (!pipeline) { c4c7db6fd2827f Ong Hock Yu 2018-12-23 147 pr_err("%s: NULL pipeline", __func__); c4c7db6fd2827f Ong Hock Yu 2018-12-23 148 return IPU4_REQ_ERROR; c4c7db6fd2827f Ong Hock Yu 2018-12-23 149 } c4c7db6fd2827f Ong Hock Yu 2018-12-23 150 dev = pipeline->private_data; c4c7db6fd2827f Ong Hock Yu 2018-12-23 151 c4c7db6fd2827f Ong Hock Yu 2018-12-23 152 if (!req_info) { c4c7db6fd2827f Ong Hock Yu 2018-12-23 153 pr_err("%s: NULL req_info", __func__); c4c7db6fd2827f Ong Hock Yu 2018-12-23 154 return IPU4_REQ_ERROR; c4c7db6fd2827f Ong Hock Yu 2018-12-23 155 } 48c5267213af77 Poluri, Sarat Chandra 2019-03-12 156 domid = req_info->domid; c4c7db6fd2827f Ong Hock Yu 2018-12-23 157 req = req_info->request; c4c7db6fd2827f Ong Hock Yu 2018-12-23 158 7f335ef6da9053 Ong Hock Yu 2018-11-23 159 host_virt = map_guest_phys(domid, req->payload, 7f335ef6da9053 Ong Hock Yu 2018-11-23 160 sizeof(struct ici_pad_supported_format_desc)); 705730750ee6dc Yew, Chang Ching 2018-10-23 161 if (host_virt == NULL) { 705730750ee6dc Yew, Chang Ching 2018-10-23 162 pr_err("%s: NULL host_virt\n", __func__); f1679a8492454e Ong Hock Yu 2018-10-02 163 return IPU4_REQ_ERROR; 705730750ee6dc Yew, Chang Ching 2018-10-23 164 } 705730750ee6dc Yew, Chang Ching 2018-10-23 165 err = dev->pipeline_ioctl_ops->pad_get_supported_format(pipeline, dev, host_virt); 705730750ee6dc Yew, Chang Ching 2018-10-23 166 caaa9a19db1c41 Ong Hock Yu 2018-11-14 167 unmap_guest_phys(domid, req->payload); f1679a8492454e Ong Hock Yu 2018-10-02 168 if (err) f1679a8492454e Ong Hock Yu 2018-10-02 169 return IPU4_REQ_ERROR; f1679a8492454e Ong Hock Yu 2018-10-02 170 else f1679a8492454e Ong Hock Yu 2018-10-02 171 return IPU4_REQ_PROCESSED; 705730750ee6dc Yew, Chang Ching 2018-10-23 172 } 705730750ee6dc Yew, Chang Ching 2018-10-23 173 f1679a8492454e Ong Hock Yu 2018-10-02 @174 int process_set_framefmt(struct ipu4_virtio_req_info *req_info) 705730750ee6dc Yew, Chang Ching 2018-10-23 175 { 705730750ee6dc Yew, Chang Ching 2018-10-23 176 int err = 0; c4c7db6fd2827f Ong Hock Yu 2018-12-23 177 struct ici_isys_pipeline_device *dev; 705730750ee6dc Yew, Chang Ching 2018-10-23 178 struct ici_pad_framefmt *host_virt; c4c7db6fd2827f Ong Hock Yu 2018-12-23 179 struct ipu4_virtio_req *req; 48c5267213af77 Poluri, Sarat Chandra 2019-03-12 180 int domid; 705730750ee6dc Yew, Chang Ching 2018-10-23 181 705730750ee6dc Yew, Chang Ching 2018-10-23 182 pr_debug("%s\n", __func__); 705730750ee6dc Yew, Chang Ching 2018-10-23 183 c4c7db6fd2827f Ong Hock Yu 2018-12-23 184 if (!pipeline) { c4c7db6fd2827f Ong Hock Yu 2018-12-23 185 pr_err("%s: NULL pipeline", __func__); c4c7db6fd2827f Ong Hock Yu 2018-12-23 186 return IPU4_REQ_ERROR; c4c7db6fd2827f Ong Hock Yu 2018-12-23 187 } c4c7db6fd2827f Ong Hock Yu 2018-12-23 188 dev = pipeline->private_data; c4c7db6fd2827f Ong Hock Yu 2018-12-23 189 c4c7db6fd2827f Ong Hock Yu 2018-12-23 190 if (!req_info) { c4c7db6fd2827f Ong Hock Yu 2018-12-23 191 pr_err("%s: NULL req_info", __func__); c4c7db6fd2827f Ong Hock Yu 2018-12-23 192 return IPU4_REQ_ERROR; c4c7db6fd2827f Ong Hock Yu 2018-12-23 193 } 48c5267213af77 Poluri, Sarat Chandra 2019-03-12 194 domid = req_info->domid; c4c7db6fd2827f Ong Hock Yu 2018-12-23 195 req = req_info->request; c4c7db6fd2827f Ong Hock Yu 2018-12-23 196 7f335ef6da9053 Ong Hock Yu 2018-11-23 197 host_virt = map_guest_phys(domid, req->payload, 7f335ef6da9053 Ong Hock Yu 2018-11-23 198 sizeof(struct ici_pad_framefmt)); 705730750ee6dc Yew, Chang Ching 2018-10-23 199 if (host_virt == NULL) { 705730750ee6dc Yew, Chang Ching 2018-10-23 200 pr_err("%s: NULL host_virt\n", __func__); f1679a8492454e Ong Hock Yu 2018-10-02 201 return IPU4_REQ_ERROR; 705730750ee6dc Yew, Chang Ching 2018-10-23 202 } 705730750ee6dc Yew, Chang Ching 2018-10-23 203 err = dev->pipeline_ioctl_ops->pad_set_ffmt(pipeline, dev, host_virt); 705730750ee6dc Yew, Chang Ching 2018-10-23 204 caaa9a19db1c41 Ong Hock Yu 2018-11-14 205 unmap_guest_phys(domid, req->payload); f1679a8492454e Ong Hock Yu 2018-10-02 206 if (err) f1679a8492454e Ong Hock Yu 2018-10-02 207 return IPU4_REQ_ERROR; f1679a8492454e Ong Hock Yu 2018-10-02 208 else f1679a8492454e Ong Hock Yu 2018-10-02 209 return IPU4_REQ_PROCESSED; 705730750ee6dc Yew, Chang Ching 2018-10-23 210 } 705730750ee6dc Yew, Chang Ching 2018-10-23 211 f1679a8492454e Ong Hock Yu 2018-10-02 @212 int process_get_framefmt(struct ipu4_virtio_req_info *req_info) 705730750ee6dc Yew, Chang Ching 2018-10-23 213 { 705730750ee6dc Yew, Chang Ching 2018-10-23 214 int err = 0; c4c7db6fd2827f Ong Hock Yu 2018-12-23 215 struct ici_isys_pipeline_device *dev; 705730750ee6dc Yew, Chang Ching 2018-10-23 216 struct ici_pad_framefmt *host_virt; c4c7db6fd2827f Ong Hock Yu 2018-12-23 217 struct ipu4_virtio_req *req; 48c5267213af77 Poluri, Sarat Chandra 2019-03-12 218 int domid; 705730750ee6dc Yew, Chang Ching 2018-10-23 219 705730750ee6dc Yew, Chang Ching 2018-10-23 220 pr_debug("%s\n", __func__); 705730750ee6dc Yew, Chang Ching 2018-10-23 221 c4c7db6fd2827f Ong Hock Yu 2018-12-23 222 if (!pipeline) { c4c7db6fd2827f Ong Hock Yu 2018-12-23 223 pr_err("%s: NULL pipeline", __func__); c4c7db6fd2827f Ong Hock Yu 2018-12-23 224 return IPU4_REQ_ERROR; c4c7db6fd2827f Ong Hock Yu 2018-12-23 225 } c4c7db6fd2827f Ong Hock Yu 2018-12-23 226 dev = pipeline->private_data; c4c7db6fd2827f Ong Hock Yu 2018-12-23 227 c4c7db6fd2827f Ong Hock Yu 2018-12-23 228 if (!req_info) { c4c7db6fd2827f Ong Hock Yu 2018-12-23 229 pr_err("%s: NULL req_info", __func__); c4c7db6fd2827f Ong Hock Yu 2018-12-23 230 return IPU4_REQ_ERROR; c4c7db6fd2827f Ong Hock Yu 2018-12-23 231 } 48c5267213af77 Poluri, Sarat Chandra 2019-03-12 232 domid = req_info->domid; c4c7db6fd2827f Ong Hock Yu 2018-12-23 233 req = req_info->request; c4c7db6fd2827f Ong Hock Yu 2018-12-23 234 7f335ef6da9053 Ong Hock Yu 2018-11-23 235 host_virt = map_guest_phys(domid, req->payload, 7f335ef6da9053 Ong Hock Yu 2018-11-23 236 sizeof(struct ici_pad_framefmt)); 705730750ee6dc Yew, Chang Ching 2018-10-23 237 if (host_virt == NULL) { 705730750ee6dc Yew, Chang Ching 2018-10-23 238 pr_err("%s: NULL host_virt\n", __func__); f1679a8492454e Ong Hock Yu 2018-10-02 239 return IPU4_REQ_ERROR; 705730750ee6dc Yew, Chang Ching 2018-10-23 240 } 705730750ee6dc Yew, Chang Ching 2018-10-23 241 err = dev->pipeline_ioctl_ops->pad_get_ffmt(pipeline, dev, host_virt); 705730750ee6dc Yew, Chang Ching 2018-10-23 242 caaa9a19db1c41 Ong Hock Yu 2018-11-14 243 unmap_guest_phys(domid, req->payload); f1679a8492454e Ong Hock Yu 2018-10-02 244 if (err) f1679a8492454e Ong Hock Yu 2018-10-02 245 return IPU4_REQ_ERROR; f1679a8492454e Ong Hock Yu 2018-10-02 246 else f1679a8492454e Ong Hock Yu 2018-10-02 247 return IPU4_REQ_PROCESSED; 705730750ee6dc Yew, Chang Ching 2018-10-23 248 } 705730750ee6dc Yew, Chang Ching 2018-10-23 249 :::::: The code at line 23 was first introduced by commit :::::: f1679a8492454ef802fe0d64f550f0c2ba77da8c media: intel-ipu4: [VIRT] Add multi streaming support on guest OS :::::: TO: Ong Hock Yu :::::: CC: Gross, Mark --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org