On Thu, Dec 12, 2013 at 02:49:27PM +0000, Aleksandr Rybalko wrote: > Author: ray > Date: Thu Dec 12 14:49:26 2013 > New Revision: 259261 > URL: http://svnweb.freebsd.org/changeset/base/259261 > > Log: > Do not try to probe/attach if attempt to add fbd child are failed. > > Sponsored by: The FreeBSD Foundation > > Modified: > head/sys/dev/drm2/drm_fb_helper.c > > Modified: head/sys/dev/drm2/drm_fb_helper.c > ============================================================================== > --- head/sys/dev/drm2/drm_fb_helper.c Thu Dec 12 14:37:25 2013 > (r259260) > +++ head/sys/dev/drm2/drm_fb_helper.c Thu Dec 12 14:49:26 2013 > (r259261) > @@ -1043,7 +1043,10 @@ int drm_fb_helper_single_fb_probe(struct > > kdev = fb_helper->dev->device; > fbd = device_add_child(kdev, "fbd", device_get_unit(kdev)); > - ret = device_probe_and_attach(fbd); > + if (fbd != NULL) > + ret = device_probe_and_attach(fbd); > + else > + ret = ENODEV; This must be -ENODEV, since linux layer operates on negative values for error. The error is negated in the drm layer, which would result in non-existent errno returned to FreeBSD code.
Also, the #ifdef __FreeBSD braces in the file are not useful, please remove them. > #ifdef DEV_VT > if (ret != 0) > DRM_ERROR("Failed to attach fbd device: %d\n", ret);
pgpthIxOu1UdY.pgp
Description: PGP signature