Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 29 Apr 2015 10:48:16 -0600
From:      Scott Long <scott4long@yahoo.com>
To:        "Pedro F. Giffuni" <pfg@FreeBSD.org>
Cc:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r282227 - head/sys/cam/scsi
Message-ID:  <8FE78308-75E2-4161-9EC8-3B0823EEBE7E@yahoo.com>
In-Reply-To: <201504291546.t3TFkwwU073637@svn.freebsd.org>
References:  <201504291546.t3TFkwwU073637@svn.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
This commit is broken, please revert:

Fatal trap 12: page fault while in kernel mode
cpuid =3D 0; apic id =3D 00
fault virtual address	=3D 0x21000002d8
fault code		=3D supervisor read data, page not present
instruction pointer	=3D 0x20:0xffffffff802fd074
stack pointer	        =3D 0x28:0xfffffe100678f960
frame pointer	        =3D 0x28:0xfffffe100678f9e0
code segment		=3D base 0x0, limit 0xfffff, type 0x1b
			=3D DPL 0, pres 1, long 1, def32 0, gran 1
processor eflags	=3D interrupt enabled, resume, IOPL =3D 0
current process		=3D 2 (doneq0)
[ thread pid 2 tid 100025 ]
Stopped at      scsi_scan_bus+0x54:     movq    0x58(%rax),%rdi
db> bt
Tracing pid 2 tid 100025 td 0xfffff8000d3ac940
scsi_scan_bus() at scsi_scan_bus+0x54/frame 0xfffffe100678f9e0
xpt_done_process() at xpt_done_process+0x521/frame 0xfffffe100678fa20
xpt_done_td() at xpt_done_td+0xf6/frame 0xfffffe100678fa70
fork_exit() at fork_exit+0x71/frame 0xfffffe100678fab0
fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe100678fab0
--- trap 0, rip =3D 0, rsp =3D 0xfffffe100678fb70, rbp =3D 0 ---
db>=20


> On Apr 29, 2015, at 9:46 AM, Pedro F. Giffuni <pfg@FreeBSD.org> wrote:
>=20
> Author: pfg
> Date: Wed Apr 29 15:46:57 2015
> New Revision: 282227
> URL: https://svnweb.freebsd.org/changeset/base/282227
>=20
> Log:
>  Fix memory leak in scsi_scan_bus()
>=20
>  CID:	1007770
>  PR:	199671
>=20
> Modified:
>  head/sys/cam/scsi/scsi_xpt.c
>=20
> Modified: head/sys/cam/scsi/scsi_xpt.c
> =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
> --- head/sys/cam/scsi/scsi_xpt.c	Wed Apr 29 15:41:19 2015	=
(r282226)
> +++ head/sys/cam/scsi/scsi_xpt.c	Wed Apr 29 15:46:57 2015	=
(r282227)
> @@ -2008,6 +2008,7 @@ scsi_scan_bus(struct cam_periph *periph,
> 				       " with status %#x, bus scan =
halted\n",
> 				       status);
> 				free(scan_info, M_CAMXPT);
> +				scan_info =3D NULL;
> 				request_ccb->ccb_h.status =3D status;
> 				xpt_free_ccb(work_ccb);
> 				xpt_done(request_ccb);
> @@ -2017,6 +2018,7 @@ scsi_scan_bus(struct cam_periph *periph,
> 			if (work_ccb =3D=3D NULL) {
> 				xpt_free_ccb((union ccb =
*)scan_info->cpi);
> 				free(scan_info, M_CAMXPT);
> +				scan_info =3D NULL;
> 				xpt_free_path(path);
> 				request_ccb->ccb_h.status =3D =
CAM_RESRC_UNAVAIL;
> 				xpt_done(request_ccb);
> @@ -2032,6 +2034,7 @@ scsi_scan_bus(struct cam_periph *periph,
> 			xpt_action(work_ccb);
> 		}
>=20
> +		free(scan_info, M_CAMXPT);
> 		mtx_lock(mtx);
> 		break;
> 	}
>=20




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?8FE78308-75E2-4161-9EC8-3B0823EEBE7E>