From owner-svn-src-projects@FreeBSD.ORG Sat Aug 10 16:23:32 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 290A43E5; Sat, 10 Aug 2013 16:23:32 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 146EF2451; Sat, 10 Aug 2013 16:23:32 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7AGNVTW073256; Sat, 10 Aug 2013 16:23:31 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7AGNTnn073237; Sat, 10 Aug 2013 16:23:29 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <201308101623.r7AGNTnn073237@svn.freebsd.org> From: Alexander Motin Date: Sat, 10 Aug 2013 16:23:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r254181 - in projects/camlock/sys/cam: ata scsi X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 10 Aug 2013 16:23:32 -0000 Author: mav Date: Sat Aug 10 16:23:29 2013 New Revision: 254181 URL: http://svnweb.freebsd.org/changeset/base/254181 Log: When creating periph on AC_FOUND_DEVICE, use the path from the call, but not the one referenced by CCB passed as the argument. If async is queued, the argument pointer should stay valid, but references from it may not. Modified: projects/camlock/sys/cam/ata/ata_da.c projects/camlock/sys/cam/ata/ata_pmp.c projects/camlock/sys/cam/scsi/scsi_cd.c projects/camlock/sys/cam/scsi/scsi_ch.c projects/camlock/sys/cam/scsi/scsi_da.c projects/camlock/sys/cam/scsi/scsi_enc.c projects/camlock/sys/cam/scsi/scsi_pass.c projects/camlock/sys/cam/scsi/scsi_pt.c projects/camlock/sys/cam/scsi/scsi_sa.c projects/camlock/sys/cam/scsi/scsi_sg.c Modified: projects/camlock/sys/cam/ata/ata_da.c ============================================================================== --- projects/camlock/sys/cam/ata/ata_da.c Sat Aug 10 14:33:56 2013 (r254180) +++ projects/camlock/sys/cam/ata/ata_da.c Sat Aug 10 16:23:29 2013 (r254181) @@ -931,7 +931,7 @@ adaasync(void *callback_arg, u_int32_t c status = cam_periph_alloc(adaregister, adaoninvalidate, adacleanup, adastart, "ada", CAM_PERIPH_BIO, - cgd->ccb_h.path, adaasync, + path, adaasync, AC_FOUND_DEVICE, cgd); if (status != CAM_REQ_CMP Modified: projects/camlock/sys/cam/ata/ata_pmp.c ============================================================================== --- projects/camlock/sys/cam/ata/ata_pmp.c Sat Aug 10 14:33:56 2013 (r254180) +++ projects/camlock/sys/cam/ata/ata_pmp.c Sat Aug 10 16:23:29 2013 (r254181) @@ -295,7 +295,7 @@ pmpasync(void *callback_arg, u_int32_t c status = cam_periph_alloc(pmpregister, pmponinvalidate, pmpcleanup, pmpstart, "pmp", CAM_PERIPH_BIO, - cgd->ccb_h.path, pmpasync, + path, pmpasync, AC_FOUND_DEVICE, cgd); if (status != CAM_REQ_CMP Modified: projects/camlock/sys/cam/scsi/scsi_cd.c ============================================================================== --- projects/camlock/sys/cam/scsi/scsi_cd.c Sat Aug 10 14:33:56 2013 (r254180) +++ projects/camlock/sys/cam/scsi/scsi_cd.c Sat Aug 10 16:23:29 2013 (r254181) @@ -551,7 +551,7 @@ cdasync(void *callback_arg, u_int32_t co status = cam_periph_alloc(cdregister, cdoninvalidate, cdcleanup, cdstart, "cd", CAM_PERIPH_BIO, - cgd->ccb_h.path, cdasync, + path, cdasync, AC_FOUND_DEVICE, cgd); if (status != CAM_REQ_CMP Modified: projects/camlock/sys/cam/scsi/scsi_ch.c ============================================================================== --- projects/camlock/sys/cam/scsi/scsi_ch.c Sat Aug 10 14:33:56 2013 (r254180) +++ projects/camlock/sys/cam/scsi/scsi_ch.c Sat Aug 10 16:23:29 2013 (r254181) @@ -354,7 +354,7 @@ chasync(void *callback_arg, u_int32_t co */ status = cam_periph_alloc(chregister, choninvalidate, chcleanup, chstart, "ch", - CAM_PERIPH_BIO, cgd->ccb_h.path, + CAM_PERIPH_BIO, path, chasync, AC_FOUND_DEVICE, cgd); if (status != CAM_REQ_CMP Modified: projects/camlock/sys/cam/scsi/scsi_da.c ============================================================================== --- projects/camlock/sys/cam/scsi/scsi_da.c Sat Aug 10 14:33:56 2013 (r254180) +++ projects/camlock/sys/cam/scsi/scsi_da.c Sat Aug 10 16:23:29 2013 (r254181) @@ -1592,7 +1592,7 @@ daasync(void *callback_arg, u_int32_t co status = cam_periph_alloc(daregister, daoninvalidate, dacleanup, dastart, "da", CAM_PERIPH_BIO, - cgd->ccb_h.path, daasync, + path, daasync, AC_FOUND_DEVICE, cgd); if (status != CAM_REQ_CMP Modified: projects/camlock/sys/cam/scsi/scsi_enc.c ============================================================================== --- projects/camlock/sys/cam/scsi/scsi_enc.c Sat Aug 10 14:33:56 2013 (r254180) +++ projects/camlock/sys/cam/scsi/scsi_enc.c Sat Aug 10 16:23:29 2013 (r254181) @@ -246,7 +246,7 @@ enc_async(void *callback_arg, uint32_t c status = cam_periph_alloc(enc_ctor, enc_oninvalidate, enc_dtor, NULL, "ses", CAM_PERIPH_BIO, - cgd->ccb_h.path, enc_async, AC_FOUND_DEVICE, cgd); + path, enc_async, AC_FOUND_DEVICE, cgd); if (status != CAM_REQ_CMP && status != CAM_REQ_INPROG) { printf("enc_async: Unable to probe new device due to " Modified: projects/camlock/sys/cam/scsi/scsi_pass.c ============================================================================== --- projects/camlock/sys/cam/scsi/scsi_pass.c Sat Aug 10 14:33:56 2013 (r254180) +++ projects/camlock/sys/cam/scsi/scsi_pass.c Sat Aug 10 16:23:29 2013 (r254181) @@ -299,7 +299,7 @@ passasync(void *callback_arg, u_int32_t */ status = cam_periph_alloc(passregister, passoninvalidate, passcleanup, NULL, "pass", - CAM_PERIPH_BIO, cgd->ccb_h.path, + CAM_PERIPH_BIO, path, passasync, AC_FOUND_DEVICE, cgd); if (status != CAM_REQ_CMP Modified: projects/camlock/sys/cam/scsi/scsi_pt.c ============================================================================== --- projects/camlock/sys/cam/scsi/scsi_pt.c Sat Aug 10 14:33:56 2013 (r254180) +++ projects/camlock/sys/cam/scsi/scsi_pt.c Sat Aug 10 16:23:29 2013 (r254181) @@ -380,7 +380,7 @@ ptasync(void *callback_arg, u_int32_t co */ status = cam_periph_alloc(ptctor, ptoninvalidate, ptdtor, ptstart, "pt", CAM_PERIPH_BIO, - cgd->ccb_h.path, ptasync, + path, ptasync, AC_FOUND_DEVICE, cgd); if (status != CAM_REQ_CMP Modified: projects/camlock/sys/cam/scsi/scsi_sa.c ============================================================================== --- projects/camlock/sys/cam/scsi/scsi_sa.c Sat Aug 10 14:33:56 2013 (r254180) +++ projects/camlock/sys/cam/scsi/scsi_sa.c Sat Aug 10 16:23:29 2013 (r254181) @@ -1430,7 +1430,7 @@ saasync(void *callback_arg, u_int32_t co */ status = cam_periph_alloc(saregister, saoninvalidate, sacleanup, sastart, - "sa", CAM_PERIPH_BIO, cgd->ccb_h.path, + "sa", CAM_PERIPH_BIO, path, saasync, AC_FOUND_DEVICE, cgd); if (status != CAM_REQ_CMP Modified: projects/camlock/sys/cam/scsi/scsi_sg.c ============================================================================== --- projects/camlock/sys/cam/scsi/scsi_sg.c Sat Aug 10 14:33:56 2013 (r254180) +++ projects/camlock/sys/cam/scsi/scsi_sg.c Sat Aug 10 16:23:29 2013 (r254181) @@ -281,7 +281,7 @@ sgasync(void *callback_arg, uint32_t cod */ status = cam_periph_alloc(sgregister, sgoninvalidate, sgcleanup, NULL, "sg", - CAM_PERIPH_BIO, cgd->ccb_h.path, + CAM_PERIPH_BIO, path, sgasync, AC_FOUND_DEVICE, cgd); if ((status != CAM_REQ_CMP) && (status != CAM_REQ_INPROG)) { const struct cam_status_entry *entry;