pmspcv panic on boot on this box

Warner Losh imp at bsdimp.com
Fri Jul 31 17:24:07 UTC 2015


Try the following patch. There’s a fundamental misunderstanding of newbus that’s screwing things up…

Also available at http://people.freebsd.org/~imp/patch-queue/pms

The problem is that the first time through for ahd0 we’re setting cardMap[0] to 5. The second time through it is  already 5, so we say ‘oh, this has been probed before’ and return 2. This causes antiapi_probe() to return 0, because the card has already been probed before. This is wrong on so many levels, but I’ll suppress channelling my inner bde and stop here.

Warner

diff -r 1805eb187340 sys/dev/pms/freebsd/driver/common/lxutil.c
--- a/sys/dev/pms/freebsd/driver/common/lxutil.c
+++ b/sys/dev/pms/freebsd/driver/common/lxutil.c
@@ -757,18 +757,25 @@ STATIC int agtiapi_ProbeCard( device_t d
 {
   int idx;
   static U32 cardMap[4] = { 0, 0, 0, 0 };
+  u_int16_t agtiapi_vendor; // PCI vendor ID
   u_int16_t agtiapi_dev; // PCI device ID
   AGTIAPI_PRINTK("agtiapi_ProbeCard: start\n");

+#if 0
   if ( ! atomic_cmpset_32( &cardMap[thisCard], 0, 5 ) ) { // card already ran
     AGTIAPI_PRINTK( "We'll only ID this card once -- %d\n", thisCard );
     return 2; // error return value; card already ran this function
   }
   else {
+#else
+  {
+#endif
+    agtiapi_vendor = pci_get_vendor( dev ); // get PCI vendor ID
     agtiapi_dev = pci_get_device( dev ); // get PCI device ID
     for( idx = 0; idx < COUNT(ag_card_type); idx++ )
     {
-      if( ag_card_type[idx].deviceId == agtiapi_dev )
+      if( ag_card_type[idx].deviceId == agtiapi_dev &&
+	  ag_card_type[idx].vendorId == agtiapi_vendor)
       { // device ID match
         memset( (void *)&agCardInfoList[ thisCard ], 0,
                 sizeof(ag_card_info_t) );



> On Jul 31, 2015, at 8:41 AM, Larry Rosenman <ler at lerctr.org> wrote:
> 
> Please do pull it from GENERIC until this is fixed in HEAD  and RELENG/10.
> 
> 
> On July 31, 2015 8:32:17 AM Glen Barber <gjb at FreeBSD.org> wrote:
> 
>> On Fri, Jul 31, 2015 at 05:27:22AM -0500, Larry Rosenman wrote:
>> > Ok, I made a GENERIC-NOPMS, without the device pmspcv, and adjusted my custom
>> > to include GENERIC-NOPMS.   And we boot (I'm typing this from a ssh session
>> > to the box).
>> >
>> 
>> Larry, thank you very much for testing this.
>> 
>> Benno, for 10.2-RELEASE, I think we're going to pull pmspcv from GENERIC
>> and issue an EN for the driver update when this is fixed.
>> 
>> I think this should be pulled from GENERIC in head and stable/10 in the
>> meantime, as well.
>> 
>> Glen
>> 
> 
> 
> _______________________________________________
> freebsd-current at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe at freebsd.org"

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 842 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.freebsd.org/pipermail/freebsd-current/attachments/20150731/f29e93ca/attachment.bin>


More information about the freebsd-current mailing list