Index: kbd-2.3.0/src/libkfont/kdfontop.c =================================================================== --- kbd-2.3.0.orig/src/libkfont/kdfontop.c +++ kbd-2.3.0/src/libkfont/kdfontop.c @@ -321,6 +321,23 @@ kfont_put_font(struct kfont_context *ctx if (ret <= 0) return ret; +#if 1 + // We no longer try PIO_FONT* calls. + // A former patch even added a possible 5 seconds delay loop here, in an attempt to + // gain victory over kdm. We no do this fight, as it can only result in races. + // https://bugzilla.novell.com/show_bug.cgi?id=302010 + // + // Two effects: + // a) Without the delay loop, we are fast enough to run early. + // Moving setfont calls to an earlier point most likly + // avoids the race. + // b) Without the old compat calls, it should be easier to + // fix this in kernel side. + // + fprintf(stderr, "%s: putfont: %d,%dx%d: failed: %d\n", get_progname(), count, width, height, ret); + perror("putfont: KDFONTOP"); + return -1; +#else /* Second attempt: PIO_FONTX */ ret = put_font_piofontx(ctx, fd, buf, count, width, height); if (ret <= 0) @@ -328,4 +345,5 @@ kfont_put_font(struct kfont_context *ctx /* Third attempt: PIO_FONT */ return put_font_piofont(ctx, fd, buf, count, width, height); +#endif }