xfree86: compat: re-export MarkClientException() for horryibly maintained Nvidia
NVidia yet again doing crazy shit in their proprietary drivers: This is an DIX-*internal* function for triggering client teardown when connection broke or somehow lack of resources to accept new connections. Video drivers have no business with that whatsoever - having them messing with client client connections is just insane. But still trying to be kind with Nvidia victims, thus adding a little wrapper function under the old name. It spills out a log warning calling users to file bug reports their driver vendor. Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
This commit is contained in:
parent
0b9a2fc6b0
commit
f25bf57cc2
|
@ -0,0 +1,24 @@
|
||||||
|
#include <dix-config.h>
|
||||||
|
|
||||||
|
#include <X11/Xfuncproto.h>
|
||||||
|
|
||||||
|
#include "dix/dix_priv.h"
|
||||||
|
|
||||||
|
/*
|
||||||
|
* this is specifically for NVidia proprietary driver: they're again lagging
|
||||||
|
* behind a year, doing at least some minimal cleanup of their code base.
|
||||||
|
* All attempts to get in direct contact with them have failed.
|
||||||
|
*/
|
||||||
|
_X_EXPORT void MarkClientException(ClientPtr pClient);
|
||||||
|
|
||||||
|
void MarkClientException(ClientPtr pClient)
|
||||||
|
{
|
||||||
|
LogMessageVerb(X_WARNING, 0, "Bogus driver calling DIX-internal function MarkClientException() !\n");
|
||||||
|
LogMessageVerb(X_WARNING, 0, "External drivers really should never ever call this function.\n");
|
||||||
|
LogMessageVerb(X_WARNING, 0, "Nor should they ever DIX-internal fields like ClientRec->noClientException\n");
|
||||||
|
LogMessageVerb(X_WARNING, 0, "File a bug report to driver vendor or use a FOSS driver.\n");
|
||||||
|
LogMessageVerb(X_WARNING, 0, "Proprietary drivers are inherently unstable, they just can't be done right.\n");
|
||||||
|
LogMessageVerb(X_WARNING, 0, "And just don't buy Nvidia hardware, ever.\n");
|
||||||
|
|
||||||
|
dixMarkClientException(pClient);
|
||||||
|
}
|
|
@ -1,8 +1,10 @@
|
||||||
srcs_xorg_compat = [
|
srcs_xorg_compat = [
|
||||||
|
'clientexception.c',
|
||||||
'log.c',
|
'log.c',
|
||||||
]
|
]
|
||||||
|
|
||||||
xorg_compat = static_library('xorg_compat',
|
xorg_compat = static_library('xorg_compat',
|
||||||
srcs_xorg_compat,
|
srcs_xorg_compat,
|
||||||
|
dependencies: common_dep,
|
||||||
include_directories: [inc, xorg_inc, top_dir_inc],
|
include_directories: [inc, xorg_inc, top_dir_inc],
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in New Issue