Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 24 Nov 2016 09:47:56 +0000 (UTC)
From:      Andriy Gapon <avg@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r309093 - head/sys/dev/firewire
Message-ID:  <201611240947.uAO9lurA056927@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: avg
Date: Thu Nov 24 09:47:56 2016
New Revision: 309093
URL: https://svnweb.freebsd.org/changeset/base/309093

Log:
  firewire: initialize tag label to -1 in fw_xfer_alloc()
  
  Zero can be confused for a potentially valid value.
  For example, if I load and unload sbp driver I get a lot of messages
  like the following:
  
  fw_tl_free: the xfer is not in the queue (tlabel=0, flag=0x0)
  send: dst=0x00 tl=0x00 rt=0 tcode=0x0 pri=0x0 src=0x000
  recv: dst=0x01 tl=0x21 rt=1 tcode=0x1 pri=0x0 src=0xffc0
  KDB: stack backtrace:
  db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfffffe04464407e0
  fw_tl_free() at fw_tl_free+0x18d/frame 0xfffffe0446440820
  fw_xfer_unload() at fw_xfer_unload+0xca/frame 0xfffffe0446440840
  fw_xferlist_remove() at fw_xferlist_remove+0x2f/frame 0xfffffe0446440870
  sbp_detach() at sbp_detach+0x1e0/frame 0xfffffe04464408e0
  device_detach() at device_detach+0x80/frame 0xfffffe0446440900
  devclass_driver_deleted() at devclass_driver_deleted+0x6a/frame 0xfffffe0446440940
  devclass_delete_driver() at devclass_delete_driver+0x7d/frame 0xfffffe0446440980
  driver_module_handler() at driver_module_handler+0xff/frame 0xfffffe04464409d0
  module_unload() at module_unload+0x32/frame 0xfffffe04464409f0
  linker_file_unload() at linker_file_unload+0x24b/frame 0xfffffe0446440a40
  kern_kldunload() at kern_kldunload+0xbc/frame 0xfffffe0446440a70
  amd64_syscall() at amd64_syscall+0x314/frame 0xfffffe0446440bf0
  Xfast_syscall() at Xfast_syscall+0xfb/frame 0xfffffe0446440bf0
  
  MFC after:	2 weeks

Modified:
  head/sys/dev/firewire/firewire.c

Modified: head/sys/dev/firewire/firewire.c
==============================================================================
--- head/sys/dev/firewire/firewire.c	Thu Nov 24 09:43:42 2016	(r309092)
+++ head/sys/dev/firewire/firewire.c	Thu Nov 24 09:47:56 2016	(r309093)
@@ -1098,6 +1098,7 @@ fw_xfer_alloc(struct malloc_type *type)
 		return xfer;
 
 	xfer->malloc = type;
+	xfer->tl = -1;
 
 	return xfer;
 }



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