diff options
author | Aaron Plattner <aplattner@nvidia.com> | 2011-04-19 14:52:40 -0700 |
---|---|---|
committer | Aaron Plattner <aplattner@nvidia.com> | 2011-04-19 14:52:40 -0700 |
commit | 5b1b4af55d2cbc871f666726290d23909d7a2bfd (patch) | |
tree | e0bd8461ada437a3cf8db28eaa9b95b318bb0da6 | |
parent | 5f3388a9b218978b5e2bb50a97fdd8f6df483934 (diff) |
173.14.30173.14.30
-rw-r--r-- | DRIVER_VERSION | 2 | ||||
-rw-r--r-- | backup.c | 14 |
2 files changed, 13 insertions, 3 deletions
diff --git a/DRIVER_VERSION b/DRIVER_VERSION index 3676236..a924154 100644 --- a/DRIVER_VERSION +++ b/DRIVER_VERSION @@ -1 +1 @@ -173.14.28 +173.14.30 @@ -49,6 +49,8 @@ #define BACKUP_DIRECTORY "/var/lib/nvidia" #define BACKUP_LOG (BACKUP_DIRECTORY "/log") +#define RMMOD_MODULE_NAME "nvidia" + /* * XXX when uninstalling should we remove directories that were * created by our installation? @@ -117,7 +119,6 @@ typedef struct { } BackupInfo; - static BackupInfo *read_backup_log_file(Options *op); static void free_backup_info(BackupInfo *b); @@ -500,7 +501,7 @@ static int do_uninstall(Options *op) BackupLogEntry *e; BackupInfo *b; int i, len, ok; - char *tmpstr; + char *tmpstr, *cmd; float percent; static const char existing_installation_is_borked[] = @@ -658,6 +659,15 @@ static int do_uninstall(Options *op) /* XXX what to do if this fails?... nothing */ } + /* + * attempt to unload the kernel module, but don't abort if this fails: the + * kernel may not have been configured with support for module unloading + * (Linux 2.6) or the user might have unloaded it themselves. + */ + cmd = nvstrcat(op->utils[RMMOD], " ", RMMOD_MODULE_NAME, NULL); + run_command(op, cmd, NULL, FALSE, 0, TRUE); + nvfree(cmd); + run_distro_hook(op, "post-uninstall"); free_backup_info(b); |