Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'fixes_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbglaw/vax-linux

* 'fixes_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbglaw/vax-linux:
Update for the srm_env driver.

+27 -57
+27 -57
arch/alpha/kernel/srm_env.c
··· 2 2 * srm_env.c - Access to SRM environment 3 3 * variables through linux' procfs 4 4 * 5 - * Copyright (C) 2001-2002 Jan-Benedict Glaw <jbglaw@lug-owl.de> 5 + * (C) 2001,2002,2006 by Jan-Benedict Glaw <jbglaw@lug-owl.de> 6 6 * 7 7 * This driver is at all a modified version of Erik Mouw's 8 8 * Documentation/DocBook/procfs_example.c, so: thank ··· 21 21 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 22 22 * PURPOSE. See the GNU General Public License for more 23 23 * details. 24 - * 24 + * 25 25 * You should have received a copy of the GNU General Public 26 26 * License along with this program; if not, write to the 27 27 * Free Software Foundation, Inc., 59 Temple Place, 28 28 * Suite 330, Boston, MA 02111-1307 USA 29 - * 30 - */ 31 - 32 - /* 33 - * Changelog 34 - * ~~~~~~~~~ 35 - * 36 - * Thu, 22 Aug 2002 15:10:43 +0200 37 - * - Update Config.help entry. I got a number of emails asking 38 - * me to tell their senders if they could make use of this 39 - * piece of code... So: "SRM is something like BIOS for your 40 - * Alpha" 41 - * - Update code formatting a bit to better conform CodingStyle 42 - * rules. 43 - * - So this is v0.0.5, with no changes (except formatting) 44 - * 45 - * Wed, 22 May 2002 00:11:21 +0200 46 - * - Fix typo on comment (SRC -> SRM) 47 - * - Call this "Version 0.0.4" 48 - * 49 - * Tue, 9 Apr 2002 18:44:40 +0200 50 - * - Implement access by variable name and additionally 51 - * by number. This is done by creating two subdirectories 52 - * where one holds all names (like the old directory 53 - * did) and the other holding 256 files named like "0", 54 - * "1" and so on. 55 - * - Call this "Version 0.0.3" 56 29 * 57 30 */ 58 31 ··· 40 67 #define BASE_DIR "srm_environment" /* Subdir in /proc/ */ 41 68 #define NAMED_DIR "named_variables" /* Subdir for known variables */ 42 69 #define NUMBERED_DIR "numbered_variables" /* Subdir for all variables */ 43 - #define VERSION "0.0.5" /* Module version */ 70 + #define VERSION "0.0.6" /* Module version */ 44 71 #define NAME "srm_env" /* Module name */ 45 72 46 73 MODULE_AUTHOR("Jan-Benedict Glaw <jbglaw@lug-owl.de>"); ··· 79 106 static srm_env_t srm_numbered_entries[256]; 80 107 81 108 82 - 83 109 static int 84 110 srm_env_read(char *page, char **start, off_t off, int count, int *eof, 85 111 void *data) ··· 87 115 unsigned long ret; 88 116 srm_env_t *entry; 89 117 90 - if(off != 0) 91 - return -EFAULT; 118 + if (off != 0) { 119 + *eof = 1; 120 + return 0; 121 + } 92 122 93 123 entry = (srm_env_t *) data; 94 124 ret = callback_getenv(entry->id, page, count); 95 125 96 - if((ret >> 61) == 0) 126 + if ((ret >> 61) == 0) { 97 127 nbytes = (int) ret; 98 - else 128 + *eof = 1; 129 + } else 99 130 nbytes = -EFAULT; 100 131 101 132 return nbytes; 102 133 } 103 - 104 134 105 135 static int 106 136 srm_env_write(struct file *file, const char __user *buffer, unsigned long count, ··· 129 155 130 156 ret1 = callback_setenv(entry->id, buf, count); 131 157 if ((ret1 >> 61) == 0) { 132 - do 158 + do 133 159 ret2 = callback_save_env(); 134 160 while((ret2 >> 61) == 1); 135 161 res = (int) ret1; ··· 146 172 srm_env_t *entry; 147 173 unsigned long var_num; 148 174 149 - if(base_dir) { 175 + if (base_dir) { 150 176 /* 151 177 * Remove named entries 152 178 */ 153 - if(named_dir) { 179 + if (named_dir) { 154 180 entry = srm_named_entries; 155 - while(entry->name != NULL && entry->id != 0) { 156 - if(entry->proc_entry) { 181 + while (entry->name != NULL && entry->id != 0) { 182 + if (entry->proc_entry) { 157 183 remove_proc_entry(entry->name, 158 184 named_dir); 159 185 entry->proc_entry = NULL; ··· 166 192 /* 167 193 * Remove numbered entries 168 194 */ 169 - if(numbered_dir) { 170 - for(var_num = 0; var_num <= 255; var_num++) { 195 + if (numbered_dir) { 196 + for (var_num = 0; var_num <= 255; var_num++) { 171 197 entry = &srm_numbered_entries[var_num]; 172 198 173 - if(entry->proc_entry) { 199 + if (entry->proc_entry) { 174 200 remove_proc_entry(entry->name, 175 201 numbered_dir); 176 202 entry->proc_entry = NULL; ··· 186 212 return; 187 213 } 188 214 189 - 190 215 static int __init 191 216 srm_env_init(void) 192 217 { ··· 195 222 /* 196 223 * Check system 197 224 */ 198 - if(!alpha_using_srm) { 225 + if (!alpha_using_srm) { 199 226 printk(KERN_INFO "%s: This Alpha system doesn't " 200 227 "know about SRM (or you've booted " 201 228 "SRM->MILO->Linux, which gets " ··· 206 233 /* 207 234 * Init numbers 208 235 */ 209 - for(var_num = 0; var_num <= 255; var_num++) 236 + for (var_num = 0; var_num <= 255; var_num++) 210 237 sprintf(number[var_num], "%ld", var_num); 211 238 212 239 /* 213 240 * Create base directory 214 241 */ 215 242 base_dir = proc_mkdir(BASE_DIR, NULL); 216 - if(base_dir == NULL) { 243 + if (!base_dir) { 217 244 printk(KERN_ERR "Couldn't create base dir /proc/%s\n", 218 245 BASE_DIR); 219 246 goto cleanup; ··· 224 251 * Create per-name subdirectory 225 252 */ 226 253 named_dir = proc_mkdir(NAMED_DIR, base_dir); 227 - if(named_dir == NULL) { 254 + if (!named_dir) { 228 255 printk(KERN_ERR "Couldn't create dir /proc/%s/%s\n", 229 256 BASE_DIR, NAMED_DIR); 230 257 goto cleanup; ··· 235 262 * Create per-number subdirectory 236 263 */ 237 264 numbered_dir = proc_mkdir(NUMBERED_DIR, base_dir); 238 - if(numbered_dir == NULL) { 265 + if (!numbered_dir) { 239 266 printk(KERN_ERR "Couldn't create dir /proc/%s/%s\n", 240 267 BASE_DIR, NUMBERED_DIR); 241 268 goto cleanup; ··· 247 274 * Create all named nodes 248 275 */ 249 276 entry = srm_named_entries; 250 - while(entry->name != NULL && entry->id != 0) { 277 + while (entry->name && entry->id) { 251 278 entry->proc_entry = create_proc_entry(entry->name, 252 279 0644, named_dir); 253 - if(entry->proc_entry == NULL) 280 + if (!entry->proc_entry) 254 281 goto cleanup; 255 282 256 283 entry->proc_entry->data = (void *) entry; ··· 264 291 /* 265 292 * Create all numbered nodes 266 293 */ 267 - for(var_num = 0; var_num <= 255; var_num++) { 294 + for (var_num = 0; var_num <= 255; var_num++) { 268 295 entry = &srm_numbered_entries[var_num]; 269 296 entry->name = number[var_num]; 270 297 271 298 entry->proc_entry = create_proc_entry(entry->name, 272 299 0644, numbered_dir); 273 - if(entry->proc_entry == NULL) 300 + if (!entry->proc_entry) 274 301 goto cleanup; 275 302 276 303 entry->id = var_num; ··· 291 318 return -ENOMEM; 292 319 } 293 320 294 - 295 321 static void __exit 296 322 srm_env_exit(void) 297 323 { ··· 300 328 return; 301 329 } 302 330 303 - 304 331 module_init(srm_env_init); 305 332 module_exit(srm_env_exit); 306 -