From owner-svn-src-head@FreeBSD.ORG Wed Mar 18 20:52:35 2015 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id E3D36FAB; Wed, 18 Mar 2015 20:52:35 +0000 (UTC) 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)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B3CC39CE; Wed, 18 Mar 2015 20:52:35 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t2IKqZ1l084768; Wed, 18 Mar 2015 20:52:35 GMT (envelope-from ken@FreeBSD.org) Received: (from ken@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t2IKqZC1084766; Wed, 18 Mar 2015 20:52:35 GMT (envelope-from ken@FreeBSD.org) Message-Id: <201503182052.t2IKqZC1084766@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ken set sender to ken@FreeBSD.org using -f From: "Kenneth D. Merry" Date: Wed, 18 Mar 2015 20:52:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r280230 - in head: sys/cam/scsi usr.bin/mt X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Mar 2015 20:52:36 -0000 Author: ken Date: Wed Mar 18 20:52:34 2015 New Revision: 280230 URL: https://svnweb.freebsd.org/changeset/base/280230 Log: Fix a couple of problems in the sa(4) media type reports. The only drives I have discovered so far that support medium type reports are newer HP LTO (LTO-5 and LTO-6) drives. IBM drives only support the density reports. sys/cam/scsi/scsi_sa.h: The number of possible density codes in the medium type report is 9, not 8. This caused problems parsing all of the medium type report after this point in the structure. usr.bin/mt/mt.c: Run the density codes returned in the medium type report through denstostring(), just like the primary and secondary density codes in the density report. This will print the density code in hex, and give a text description if it is available. Thanks to Rudolf Cejka for doing extensive testing with HP LTO drives and Bacula and discovering these problems. Tested by: Rudolf Cejka Sponsored by: Spectra Logic MFC after: 4 days Modified: head/sys/cam/scsi/scsi_sa.h head/usr.bin/mt/mt.c Modified: head/sys/cam/scsi/scsi_sa.h ============================================================================== --- head/sys/cam/scsi/scsi_sa.h Wed Mar 18 20:40:42 2015 (r280229) +++ head/sys/cam/scsi/scsi_sa.h Wed Mar 18 20:52:34 2015 (r280230) @@ -477,7 +477,7 @@ struct scsi_medium_type_data { u_int8_t length[2]; #define SMTD_DEFAULT_LENGTH 52 u_int8_t num_density_codes; - u_int8_t primary_density_codes[8]; + u_int8_t primary_density_codes[9]; u_int8_t media_width[2]; u_int8_t medium_length[2]; u_int8_t reserved2[2]; Modified: head/usr.bin/mt/mt.c ============================================================================== --- head/usr.bin/mt/mt.c Wed Mar 18 20:40:42 2015 (r280229) +++ head/usr.bin/mt/mt.c Wed Mar 18 20:52:34 2015 (r280230) @@ -1406,9 +1406,9 @@ mt_print_density_entry(struct mt_status_ continue; } if ((strcmp(entry->entry_name, "primary_density_code") == 0) - || (strcmp(entry->entry_name, "secondary_density_code") == 0)){ + || (strcmp(entry->entry_name, "secondary_density_code") == 0) + || (strcmp(entry->entry_name, "density_code") == 0)) { - /* XXX KDM this should really be unsigned */ printf("%*s%s (%s): %s\n", indent, "", entry->desc ? entry->desc : "", entry->entry_name, denstostring(entry->value_unsigned));