View | Details | Raw Unified | Return to bug 219456
Collapse All | Expand All

(-)gdm-2.16.1.orig/daemon/display.c (-1 / +3 lines)
Lines 225-232 Link Here
225
		    if (d->chooserpid > 1)
225
		    if (d->chooserpid > 1)
226
			    kill (-(d->chooserpid), SIGTERM);
226
			    kill (-(d->chooserpid), SIGTERM);
227
		    d->chooserpid = 0;
227
		    d->chooserpid = 0;
228
		    if (d->servpid > 1)
228
		    if (d->servpid > 1) {
229
			    kill (d->servpid, SIGTERM);
229
			    kill (d->servpid, SIGTERM);
230
			    system("/sbin/rmmod nvidia fglrx");
231
		    }
230
		    d->servpid = 0;
232
		    d->servpid = 0;
231
	    }
233
	    }
232
    }
234
    }
(-)gdm-2.16.1.orig/daemon/gdm.c (-1 / +3 lines)
Lines 776-783 Link Here
776
	    if (d->chooserpid > 1)
776
	    if (d->chooserpid > 1)
777
		    kill (-(d->chooserpid), SIGTERM);
777
		    kill (-(d->chooserpid), SIGTERM);
778
	    d->chooserpid = 0;
778
	    d->chooserpid = 0;
779
	    if (d->servpid > 1)
779
	    if (d->servpid > 1) {
780
		    kill (d->servpid, SIGTERM);
780
		    kill (d->servpid, SIGTERM);
781
		    system("/sbin/rmmod nvidia fglrx");
782
	    }
781
	    d->servpid = 0;
783
	    d->servpid = 0;
782
784
783
            if (gdm_get_value_bool (GDM_KEY_DYNAMIC_XSERVERS)) {
785
            if (gdm_get_value_bool (GDM_KEY_DYNAMIC_XSERVERS)) {
(-)gdm-2.16.1.orig/daemon/server.c (-2 / +7 lines)
Lines 301-312 Link Here
301
301
302
	    if (waiting_for_server) {
302
	    if (waiting_for_server) {
303
		    gdm_error ("gdm_server_stop: Some problem killing server, whacking with SIGKILL");
303
		    gdm_error ("gdm_server_stop: Some problem killing server, whacking with SIGKILL");
304
		    if (disp->servpid > 1)
304
		    if (disp->servpid > 1) {
305
			    kill (disp->servpid, SIGKILL);
305
			    kill (disp->servpid, SIGKILL);
306
			    system("/sbin/rmmod nvidia fglrx");
307
		    }
306
308
307
	    } else {
309
	    } else {
308
		    if (disp->servpid > 1 &&
310
		    if (disp->servpid > 1 &&
309
			kill (disp->servpid, SIGTERM) == 0) {
311
			kill (disp->servpid, SIGTERM) == 0) {
312
			    system("/sbin/rmmod nvidia fglrx");
310
			    waiting_for_server = TRUE;
313
			    waiting_for_server = TRUE;
311
			    ve_waitpid_no_signal (disp->servpid, NULL, 0);
314
			    ve_waitpid_no_signal (disp->servpid, NULL, 0);
312
			    waiting_for_server = FALSE;
315
			    waiting_for_server = FALSE;
Lines 1105-1112 Link Here
1105
	    pid_t pid = d->servpid;
1108
	    pid_t pid = d->servpid;
1106
	    d->servpid = 0;
1109
	    d->servpid = 0;
1107
	    if (pid > 1 &&
1110
	    if (pid > 1 &&
1108
		kill (pid, SIGTERM) == 0)
1111
		kill (pid, SIGTERM) == 0) {
1112
		    system("/sbin/rmmod nvidia fglrx");
1109
		    ve_waitpid_no_signal (pid, NULL, 0);
1113
		    ve_waitpid_no_signal (pid, NULL, 0);
1114
	        }
1110
    }
1115
    }
1111
1116
1112
    /* Figure out the server command */
1117
    /* Figure out the server command */
(-)gdm-2.16.1.orig/daemon/slave.c (-2 / +6 lines)
Lines 4545-4552 Link Here
4545
		if (extra_process > 1)
4545
		if (extra_process > 1)
4546
			kill (-(extra_process), SIGKILL);
4546
			kill (-(extra_process), SIGKILL);
4547
		/* also be very nasty to the X server at this stage */
4547
		/* also be very nasty to the X server at this stage */
4548
		if (d->servpid > 1)
4548
		if (d->servpid > 1) {
4549
			kill (d->servpid, SIGKILL);
4549
			kill (d->servpid, SIGKILL);
4550
			system("/sbin/rmmod nvidia fglrx");
4551
		}
4550
		gdm_sigchld_block_pop ();
4552
		gdm_sigchld_block_pop ();
4551
		gdm_in_signal--;
4553
		gdm_in_signal--;
4552
		got_term_before = TRUE;
4554
		got_term_before = TRUE;
Lines 5076-5083 Link Here
5076
	    gdm_verify_cleanup (d);
5078
	    gdm_verify_cleanup (d);
5077
	    gdm_server_stop (d);
5079
	    gdm_server_stop (d);
5078
5080
5079
	    if (d->servpid > 1)
5081
	    if (d->servpid > 1) {
5080
		    kill (d->servpid, SIGTERM);
5082
		    kill (d->servpid, SIGTERM);
5083
		    system("/sbin/rmmod nvidia fglrx");
5084
	    }
5081
	    d->servpid = 0;
5085
	    d->servpid = 0;
5082
5086
5083
	    gdm_debug ("gdm_slave_quick_exit: Killed everything from the display");
5087
	    gdm_debug ("gdm_slave_quick_exit: Killed everything from the display");

Return to bug 219456