diff options
Diffstat (limited to 'drivers/scsi/aic7xxx/aic79xx_proc.c')
-rw-r--r-- | drivers/scsi/aic7xxx/aic79xx_proc.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/drivers/scsi/aic7xxx/aic79xx_proc.c b/drivers/scsi/aic7xxx/aic79xx_proc.c index 014bed716e7c..59c85d5a153a 100644 --- a/drivers/scsi/aic7xxx/aic79xx_proc.c +++ b/drivers/scsi/aic7xxx/aic79xx_proc.c | |||
@@ -272,33 +272,32 @@ ahd_proc_write_seeprom(struct ahd_softc *ahd, char *buffer, int length) | |||
272 | saved_modes = ahd_save_modes(ahd); | 272 | saved_modes = ahd_save_modes(ahd); |
273 | ahd_set_modes(ahd, AHD_MODE_SCSI, AHD_MODE_SCSI); | 273 | ahd_set_modes(ahd, AHD_MODE_SCSI, AHD_MODE_SCSI); |
274 | if (length != sizeof(struct seeprom_config)) { | 274 | if (length != sizeof(struct seeprom_config)) { |
275 | printf("ahd_proc_write_seeprom: incorrect buffer size\n"); | 275 | printk("ahd_proc_write_seeprom: incorrect buffer size\n"); |
276 | goto done; | 276 | goto done; |
277 | } | 277 | } |
278 | 278 | ||
279 | have_seeprom = ahd_verify_cksum((struct seeprom_config*)buffer); | 279 | have_seeprom = ahd_verify_cksum((struct seeprom_config*)buffer); |
280 | if (have_seeprom == 0) { | 280 | if (have_seeprom == 0) { |
281 | printf("ahd_proc_write_seeprom: cksum verification failed\n"); | 281 | printk("ahd_proc_write_seeprom: cksum verification failed\n"); |
282 | goto done; | 282 | goto done; |
283 | } | 283 | } |
284 | 284 | ||
285 | have_seeprom = ahd_acquire_seeprom(ahd); | 285 | have_seeprom = ahd_acquire_seeprom(ahd); |
286 | if (!have_seeprom) { | 286 | if (!have_seeprom) { |
287 | printf("ahd_proc_write_seeprom: No Serial EEPROM\n"); | 287 | printk("ahd_proc_write_seeprom: No Serial EEPROM\n"); |
288 | goto done; | 288 | goto done; |
289 | } else { | 289 | } else { |
290 | u_int start_addr; | 290 | u_int start_addr; |
291 | 291 | ||
292 | if (ahd->seep_config == NULL) { | 292 | if (ahd->seep_config == NULL) { |
293 | ahd->seep_config = malloc(sizeof(*ahd->seep_config), | 293 | ahd->seep_config = kmalloc(sizeof(*ahd->seep_config), GFP_ATOMIC); |
294 | M_DEVBUF, M_NOWAIT); | ||
295 | if (ahd->seep_config == NULL) { | 294 | if (ahd->seep_config == NULL) { |
296 | printf("aic79xx: Unable to allocate serial " | 295 | printk("aic79xx: Unable to allocate serial " |
297 | "eeprom buffer. Write failing\n"); | 296 | "eeprom buffer. Write failing\n"); |
298 | goto done; | 297 | goto done; |
299 | } | 298 | } |
300 | } | 299 | } |
301 | printf("aic79xx: Writing Serial EEPROM\n"); | 300 | printk("aic79xx: Writing Serial EEPROM\n"); |
302 | start_addr = 32 * (ahd->channel - 'A'); | 301 | start_addr = 32 * (ahd->channel - 'A'); |
303 | ahd_write_seeprom(ahd, (u_int16_t *)buffer, start_addr, | 302 | ahd_write_seeprom(ahd, (u_int16_t *)buffer, start_addr, |
304 | sizeof(struct seeprom_config)/2); | 303 | sizeof(struct seeprom_config)/2); |