All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Raz Amir" <razamir22-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: "'Bruce Richardson'"
	<bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Cc: dev-VfR2kkLFssw@public.gmane.org
Subject: Re: [PATCH v6] Restore support for virtio on FreeBSD
Date: Thu, 16 Apr 2015 14:44:07 +0300	[thread overview]
Message-ID: <171a01d0783a$a69986a0$f3cc93e0$@gmail.com> (raw)
In-Reply-To: <20150416093920.GA6556@bricha3-MOBL3>

Will do

-----Original Message-----
From: Bruce Richardson [mailto:bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org] 
Sent: 16 April 2015 12:39
To: Raz Amir
Cc: dev-VfR2kkLFssw@public.gmane.org
Subject: Re: [dpdk-dev] [PATCH v6] Restore support for virtio on FreeBSD

On Thu, Apr 16, 2015 at 11:02:03AM +0300, Raz Amir wrote:
> Fixes: 8a312224bcde ("eal/bsd: fix fd leak")
> 
> Closing /dev/io fd causes SIGBUS in inb/outb instructions as the 
> process loses the IOPL privileges once the fd is closed:
> (gdb) bt
> 0  0x0000000000492f2c in outb (port=49170, data=0 '\000') at 
> /usr/include/machine/cpufunc.h:244
> 1  0x0000000000492f7a in outb_p (data=0 '\000', port=49170) at 
> /dpdk/dpdk-2.0.0/lib/librte_pmd_virtio/virtio_pci.h:211
> 2  0x000000000049328d in vtpci_set_status (hw=0x80331f380, status=0 
> '\000') at /dpdk/dpdk-2.0.0/lib/librte_pmd_virtio/virtio_pci.c:130
> 3  0x00000000004931fe in vtpci_reset (hw=0x80331f380) at 
> /dpdk/dpdk-2.0.0/lib/librte_pmd_virtio/virtio_pci.c:108
> 4  0x00000000004a175e in eth_virtio_dev_init (eth_dev=0x831b80 
> <rte_eth_devices>) at 
> /dpdk/dpdk-2.0.0/lib/librte_pmd_virtio/virtio_ethdev.c:1150
> 5  0x0000000000462c09 in rte_eth_dev_init (pci_drv=0x79d1a0 
> <rte_virtio_pmd>,
> pci_dev=0x802417560) at 
> /dpdk/dpdk-2.0.0/lib/librte_ether/rte_ethdev.c:326
> 6  0x000000000046f03f in rte_eal_pci_probe_one_driver (dr=0x79d1a0 
> <rte_virtio_pmd>,
> dev=0x802417560) at 
> /dpdk/dpdk-2.0.0/lib/librte_eal/bsdapp/eal/eal_pci.c:487
> 7  0x0000000000475b06 in pci_probe_all_drivers (dev=0x802417560) at 
> /dpdk/dpdk-2.0.0/lib/librte_eal/common/eal_common_pci.c:116
> 8  0x0000000000475bb9 in rte_eal_pci_probe () at 
> /dpdk/dpdk-2.0.0/lib/librte_eal/common/eal_common_pci.c:246
> 9  0x000000000046cd63 in rte_eal_init (argc=5, argv=0x7fffffffeaf0) at 
> /dpdk/dpdk-2.0.0/lib/librte_eal/bsdapp/eal/eal.c:554
> 10 0x0000000000404544 in main ()
> 
> Signed-off-by: Raz Amir <razamir22-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>

It does look the cleanest solution, though I don't like the idea of leaking
the file handle. Can you perhaps just change things a little so that the fd
variable is static - even locally in the function will do, as it helps
indicate that the fd is persistent.

/Bruce

> ---
>  lib/librte_eal/bsdapp/eal/eal.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/lib/librte_eal/bsdapp/eal/eal.c 
> b/lib/librte_eal/bsdapp/eal/eal.c index 871d5f4..e20f915 100644
> --- a/lib/librte_eal/bsdapp/eal/eal.c
> +++ b/lib/librte_eal/bsdapp/eal/eal.c
> @@ -426,7 +426,7 @@ rte_eal_iopl_init(void)
>  	fd = open("/dev/io", O_RDWR);
>  	if (fd < 0)
>  		return -1;
> -	close(fd);
> +	/* keep fd open for iopl */
>  	return 0;
>  }
>  
> --
> 2.1.2
> 

  reply	other threads:[~2015-04-16 11:44 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-07 23:45 [PATCH] Restore support for virtio on FreeBSD Raz Amir
     [not found] ` <1428450303-97954-1-git-send-email-razamir22-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2015-04-07 23:48   ` [PATCH v2] " Raz Amir
2015-04-13 12:19   ` [PATCH v3] " Raz Amir
     [not found]     ` <1428927569-98070-1-git-send-email-razamir22-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2015-04-13 12:54       ` Thomas Monjalon
2015-04-14  2:32         ` Ouyang, Changchun
     [not found]           ` <F52918179C57134FAEC9EA62FA2F962511ABC531-E2R4CRU6q/6iAffOGbnezLfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-04-14 16:07             ` Raz Amir
2015-04-14 16:23   ` [PATCH v5] " Raz Amir
     [not found]     ` <1429028594-12323-1-git-send-email-razamir22-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2015-04-14 22:22       ` Ananyev, Konstantin
     [not found]         ` <2601191342CEEE43887BDE71AB97725821415A1D-pww93C2UFcwu0RiL9chJVbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-04-16  3:31           ` Ouyang, Changchun
     [not found]             ` <F52918179C57134FAEC9EA62FA2F962511AC1E6D-E2R4CRU6q/6iAffOGbnezLfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-04-16  7:50               ` Raz Amir
2015-04-16  8:02   ` [PATCH v6] " Raz Amir
     [not found]     ` <1429171323-33292-1-git-send-email-razamir22-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2015-04-16  9:39       ` Bruce Richardson
2015-04-16 11:44         ` Raz Amir [this message]
2015-04-16 11:52   ` [PATCH v7] " Raz Amir
     [not found]     ` <1429185127-33452-1-git-send-email-razamir22-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2015-04-28 14:18       ` Thomas Monjalon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='171a01d0783a$a69986a0$f3cc93e0$@gmail.com' \
    --to=razamir22-re5jqeeqqe8avxtiumwx3w@public.gmane.org \
    --cc=bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
    --cc=dev-VfR2kkLFssw@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.