Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 28 Feb 2014 01:40:01 GMT
From:      dfilter@FreeBSD.ORG (dfilter service)
To:        freebsd-virtualization@FreeBSD.org
Subject:   Re: kern/183835: commit references a PR
Message-ID:  <201402280140.s1S1e1Ua013704@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/183835; it has been noted by GNATS.

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/183835: commit references a PR
Date: Fri, 28 Feb 2014 01:35:31 +0000 (UTC)

 Author: rodrigc
 Date: Fri Feb 28 01:35:24 2014
 New Revision: 262594
 URL: http://svnweb.freebsd.org/changeset/base/262594
 
 Log:
   MFC r262142:
   
      In ue_attach_post_task(), initialize curvnet to vnet0 before calling if_attach().
      Before this patch, curvnet was NULL.
      When the VIMAGE kernel option is enabled, this eliminates
      kernel panics when USB ethernet devices are plugged in.
   
   PR: 183835
   Submitted by: Hiroo Oono <hiroo.ono at gmail dot com>
 
 Modified:
   stable/9/sys/dev/usb/net/usb_ethernet.c
 Directory Properties:
   stable/9/   (props changed)
 
 Modified: stable/9/sys/dev/usb/net/usb_ethernet.c
 ==============================================================================
 --- stable/9/sys/dev/usb/net/usb_ethernet.c	Fri Feb 28 01:33:03 2014	(r262593)
 +++ stable/9/sys/dev/usb/net/usb_ethernet.c	Fri Feb 28 01:35:24 2014	(r262594)
 @@ -207,6 +207,7 @@ ue_attach_post_task(struct usb_proc_msg 
  	sysctl_ctx_init(&ue->ue_sysctl_ctx);
  
  	error = 0;
 +	CURVNET_SET_QUIET(vnet0);
  	ifp = if_alloc(IFT_ETHER);
  	if (ifp == NULL) {
  		device_printf(ue->ue_dev, "could not allocate ifnet\n");
 @@ -254,6 +255,8 @@ ue_attach_post_task(struct usb_proc_msg 
  	if (ifp->if_capabilities & IFCAP_VLAN_MTU)
  		ifp->if_hdrlen = sizeof(struct ether_vlan_header);
  
 +	CURVNET_RESTORE();
 +
  	snprintf(num, sizeof(num), "%u", ue->ue_unit);
  	ue->ue_sysctl_oid = SYSCTL_ADD_NODE(&ue->ue_sysctl_ctx,
  	    &SYSCTL_NODE_CHILDREN(_net, ue),
 @@ -267,6 +270,7 @@ ue_attach_post_task(struct usb_proc_msg 
  	return;
  
  fail:
 +	CURVNET_RESTORE();
  	free_unr(ueunit, ue->ue_unit);
  	if (ue->ue_ifp != NULL) {
  		if_free(ue->ue_ifp);
 _______________________________________________
 svn-src-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201402280140.s1S1e1Ua013704>