From owner-freebsd-bugs@FreeBSD.ORG Fri Aug 20 02:45:57 2004 Return-Path: Delivered-To: freebsd-bugs@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4489B16A4CE; Fri, 20 Aug 2004 02:45:57 +0000 (GMT) Received: from szamoca.krvarr.bc.ca (s142-179-111-232.bc.hsia.telus.net [142.179.111.232]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4F12243D2F; Fri, 20 Aug 2004 02:45:56 +0000 (GMT) (envelope-from sandy@krvarr.bc.ca) Received: from szamoca.krvarr.bc.ca (localhost [127.0.0.1]) by szamoca.krvarr.bc.ca (8.12.11/8.12.6) with ESMTP id i7K2jr84008193; Thu, 19 Aug 2004 19:45:53 -0700 (PDT) Received: (from sandy@localhost) by szamoca.krvarr.bc.ca (8.12.11/8.12.11/Submit) id i7K2jr3u008190; Thu, 19 Aug 2004 19:45:53 -0700 (PDT) (envelope-from sandy) From: Sandy Rutherford MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="DqtoqZrip3" Content-Transfer-Encoding: 7bit Message-ID: <16677.26081.228866.733818@szamoca.krvarr.bc.ca> Date: Thu, 19 Aug 2004 19:45:53 -0700 To: FreeBSD-gnats-submit@FreeBSD.org, freebsd-bugs@FreeBSD.org In-Reply-To: <200408011340.i71DeJ8f015505@freefall.freebsd.org> References: <200408011339.i71DdPV8003732@szamoca.krvarr.bc.ca> <200408011340.i71DeJ8f015505@freefall.freebsd.org> X-Mailer: VM 7.07 under Emacs 21.3.1 Subject: Re: bin/69875: `mlxcontrol status ' hangs with Mylex DAC1100 RAID controller X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 20 Aug 2004 02:45:57 -0000 --DqtoqZrip3 Content-Type: text/plain; charset=us-ascii Content-Description: message body text Content-Transfer-Encoding: 7bit Here is a patch for this problem report. The bug is in the subr's `mlxd_foreach_ctrlr' and `mlxd_find_ctrlr_search', both in interface.c. Both of these subroutines use `ioctl(fd, MLX_NEXT_CHILD, &i)' to iterate over the configured mlxd(4) devices. However, in FreeBSD 4.10-RELEASE, this simply sets i to 0. I have replaced this code with a simple-minded loop from i=0 to 63, which is a large enough loop to find any devices on the RAID controllers supported by mlxd(4). It is likely that there is a more clever fix, but this does the job for me. If anybody has a better fix, I would be happy to test it. Attached is a patch file for /usr/src/usr.sbin/mlxcontrol/interface.c in FreeBSD 4.10-RELEASE. ...Sandy --DqtoqZrip3 Content-Type: application/octet-stream Content-Description: Context diff for /usr/src/usr/sbin/mlxcontrol/interface.c Content-Disposition: attachment; filename="interface.c.diff" Content-Transfer-Encoding: base64 KioqIGludGVyZmFjZS5jLm9yaWcJRnJpIEF1ZyAgNiAwMzozOToyNCAyMDA0Ci0tLSBpbnRlcmZh Y2UuYwlGcmkgQXVnICA2IDA0OjA2OjU1IDIwMDQKKioqKioqKioqKioqKioqCioqKiA4NSw5NSAq KioqCiAgICAgIGlmICgoZmQgPSBvcGVuKGN0cmxycGF0aCh1bml0KSwgMCkpIDwgMCkKICAJcmV0 dXJuOwogICAgICAKISAgICAgZm9yIChpID0gLTE7IDspIHsKICAJLyogR2V0IHRoZSB1bml0IG51 bWJlciBvZiB0aGUgbmV4dCBjaGlsZCBkZXZpY2UgKi8KISAJaWYgKGlvY3RsKGZkLCBNTFhfTkVY VF9DSElMRCwgJmkpIDwgMCkKISAJICAgIHJldHVybjsKISAJCiAgCS8qIGNoZWNrIHRoYXQgd2Ug Y2FuIG9wZW4gdGhpcyB1bml0ICovCiAgCWlmICgoZmQgPSBvcGVuKGRyaXZlcGF0aChpKSwgMCkp ID49IDApCiAgCSAgICBjbG9zZShmZCk7Ci0tLSA4NSw5NyAtLS0tCiAgICAgIGlmICgoZmQgPSBv cGVuKGN0cmxycGF0aCh1bml0KSwgMCkpIDwgMCkKICAJcmV0dXJuOwogICAgICAKISAgICAgZm9y IChpID0gMDsgaSA8IDY0IDsgaSsrKSB7CiAgCS8qIEdldCB0aGUgdW5pdCBudW1iZXIgb2YgdGhl IG5leHQgY2hpbGQgZGV2aWNlICovCiEgICAgICAgICAvKiBIZXJlLCB0aGlzIGFsd2F5cyBzZXRz IGkgdG8gMCwgaW5zdGVhZCBvZiBpdGVyYXRpbmcgb3ZlciAqLwohICAgICAgICAgLyogZGV2aWNl cy4gIEFzIEEgd29yay1hcm91bmQsIEkgaGF2ZSBoYXJkLWNvZGVkIGEgbG9vcCAgICAgKi8KISAg ICAgICAgIC8qIGZyb20gMCB0byA2NC4gIC4uLnNhbmR5ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICovCiEgCS8qIGlmIChpb2N0bChmZCwgTUxYX05FWFRfQ0hJTEQsICZpKSA8IDAp ICAqLwohIAkvKiAgcmV0dXJuOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KICAJ LyogY2hlY2sgdGhhdCB3ZSBjYW4gb3BlbiB0aGlzIHVuaXQgKi8KICAJaWYgKChmZCA9IG9wZW4o ZHJpdmVwYXRoKGkpLCAwKSkgPj0gMCkKICAJICAgIGNsb3NlKGZkKTsKKioqKioqKioqKioqKioq CioqKiAxMjgsMTM3ICoqKioKICAgICAgCiAgICAgIC8qIEdldCB0aGUgZGV2aWNlICovCiAgICAg IGlmICgoZmQgPSBvcGVuKGN0cmxycGF0aCh1bml0KSwgMCkpID49IDApIHsKISAJZm9yIChpID0g LTE7IDspIHsKICAJICAgIC8qIEdldCB0aGUgdW5pdCBudW1iZXIgb2YgdGhlIG5leHQgY2hpbGQg ZGV2aWNlICovCiEgCSAgICBpZiAoaW9jdGwoZmQsIE1MWF9ORVhUX0NISUxELCAmaSkgPCAwKQoh IAkJYnJlYWs7CiAgCiAgCSAgICAvKiBpcyB0aGlzIGNoaWxkIHRoZSB1bml0IHdlIHdhbnQ/ICov CiAgCSAgICBpZiAoaSA9PSBtbHhkX2ZpbmRfY3RybHJfcGFyYW0udW5pdCkgewotLS0gMTMwLDE0 NCAtLS0tCiAgICAgIAogICAgICAvKiBHZXQgdGhlIGRldmljZSAqLwogICAgICBpZiAoKGZkID0g b3BlbihjdHJscnBhdGgodW5pdCksIDApKSA+PSAwKSB7CiEgCWZvciAoaSA9IDA7IGkgPCA2NCA7 IGkrKykgewohICAgICAvKiAgZm9yIChpID0gLTE7IDspeyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKi8KICAJICAgIC8qIEdldCB0aGUgdW5pdCBudW1iZXIgb2YgdGhl IG5leHQgY2hpbGQgZGV2aWNlICovCiEgICAgICAgICAgICAgLyogVGhpcyBzZXRzIGkgdG8gMCBh bmQgbmV2ZXIgcmV0dXJucyAtMS4gICAgICAgICAgICAqLwohICAgICAgICAgICAgIC8qIFRoZXJl Zm9yZSwgdGhlIGZvciBsb29wIG5ldmVyIGNvbXBsZXRlcy4gICAgICAgICAgKi8KISAJICAgIC8q IEFzIGEgd29yay1hcm91bmQsIEkgc2ltcGx5IGxvb3AgZnJvbSBmcm9tIDAgdG8gNjQgKi8KISAJ ICAgIC8qIGxvb2tpbmcgZm9yIGNvbnRyb2xsZXJzLiAuLi5zYW5keSAgICAgICAgICAgICAgICAg Ki8KISAJICAvKiBpZiAoaW9jdGwoZmQsIE1MWF9ORVhUX0NISUxELCAmaSkgPCAwKSAgICAgICAg ICAgICAgKi8KISAJICAvKglicmVhazsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKi8KICAKICAJICAgIC8qIGlzIHRoaXMgY2hpbGQgdGhlIHVuaXQgd2Ugd2FudD8g Ki8KICAJICAgIGlmIChpID09IG1seGRfZmluZF9jdHJscl9wYXJhbS51bml0KSB7Cg== --DqtoqZrip3--