diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/block/rd.c | 2 | ||||
-rw-r--r-- | drivers/media/video/tuner-core.c | 14 | ||||
-rw-r--r-- | drivers/s390/scsi/zfcp_aux.c | 2 | ||||
-rw-r--r-- | drivers/s390/scsi/zfcp_def.h | 1 | ||||
-rw-r--r-- | drivers/scsi/aacraid/linit.c | 2 | ||||
-rw-r--r-- | drivers/scsi/aic7xxx/aic7xxx_osm.c | 2 | ||||
-rw-r--r-- | drivers/scsi/aic7xxx/aic7xxx_osm.h | 6 | ||||
-rw-r--r-- | drivers/scsi/qla2xxx/qla_attr.c | 8 | ||||
-rw-r--r-- | drivers/scsi/qla2xxx/qla_gbl.h | 4 | ||||
-rw-r--r-- | drivers/scsi/qla2xxx/qla_os.c | 3 | ||||
-rw-r--r-- | drivers/scsi/scsi.c | 2 | ||||
-rw-r--r-- | drivers/scsi/scsi_transport_spi.c | 49 | ||||
-rw-r--r-- | drivers/scsi/sr_ioctl.c | 3 | ||||
-rw-r--r-- | drivers/scsi/sym53c8xx_2/sym_glue.c | 5 | ||||
-rw-r--r-- | drivers/serial/8250_pci.c | 2 |
15 files changed, 63 insertions, 42 deletions
diff --git a/drivers/block/rd.c b/drivers/block/rd.c index f8a8b68dce..145c1fbffe 100644 --- a/drivers/block/rd.c +++ b/drivers/block/rd.c | |||
@@ -74,7 +74,7 @@ static struct request_queue *rd_queue[CONFIG_BLK_DEV_RAM_COUNT]; | |||
74 | * architecture-specific setup routine (from the stored boot sector | 74 | * architecture-specific setup routine (from the stored boot sector |
75 | * information). | 75 | * information). |
76 | */ | 76 | */ |
77 | static int rd_size = CONFIG_BLK_DEV_RAM_SIZE; /* Size of the RAM disks */ | 77 | int rd_size = CONFIG_BLK_DEV_RAM_SIZE; /* Size of the RAM disks */ |
78 | /* | 78 | /* |
79 | * It would be very desirable to have a soft-blocksize (that in the case | 79 | * It would be very desirable to have a soft-blocksize (that in the case |
80 | * of the ramdisk driver is also the hardblocksize ;) of PAGE_SIZE because | 80 | * of the ramdisk driver is also the hardblocksize ;) of PAGE_SIZE because |
diff --git a/drivers/media/video/tuner-core.c b/drivers/media/video/tuner-core.c index 881a0539fc..6212388edb 100644 --- a/drivers/media/video/tuner-core.c +++ b/drivers/media/video/tuner-core.c | |||
@@ -357,8 +357,16 @@ tuner_command(struct i2c_client *client, unsigned int cmd, void *arg) | |||
357 | V4L2_TUNER_RADIO != t->mode) | 357 | V4L2_TUNER_RADIO != t->mode) |
358 | set_tv_freq(client,400*16); | 358 | set_tv_freq(client,400*16); |
359 | t->mode = f->type; | 359 | t->mode = f->type; |
360 | t->freq = f->frequency; | 360 | set_freq(client,f->frequency); |
361 | set_freq(client,t->freq); | 361 | break; |
362 | } | ||
363 | case VIDIOC_G_FREQUENCY: | ||
364 | { | ||
365 | struct v4l2_frequency *f = arg; | ||
366 | |||
367 | SWITCH_V4L2; | ||
368 | f->type = t->mode; | ||
369 | f->frequency = t->freq; | ||
362 | break; | 370 | break; |
363 | } | 371 | } |
364 | case VIDIOC_G_TUNER: | 372 | case VIDIOC_G_TUNER: |
@@ -368,6 +376,8 @@ tuner_command(struct i2c_client *client, unsigned int cmd, void *arg) | |||
368 | SWITCH_V4L2; | 376 | SWITCH_V4L2; |
369 | if (V4L2_TUNER_RADIO == t->mode && t->has_signal) | 377 | if (V4L2_TUNER_RADIO == t->mode && t->has_signal) |
370 | tuner->signal = t->has_signal(client); | 378 | tuner->signal = t->has_signal(client); |
379 | tuner->rangelow = tv_range[0] * 16; | ||
380 | tuner->rangehigh = tv_range[1] * 16; | ||
371 | break; | 381 | break; |
372 | } | 382 | } |
373 | default: | 383 | default: |
diff --git a/drivers/s390/scsi/zfcp_aux.c b/drivers/s390/scsi/zfcp_aux.c index 1f9aeb4acc..68d151aaa4 100644 --- a/drivers/s390/scsi/zfcp_aux.c +++ b/drivers/s390/scsi/zfcp_aux.c | |||
@@ -52,7 +52,7 @@ static inline int zfcp_sg_list_copy_from_user(struct zfcp_sg_list *, | |||
52 | static inline int zfcp_sg_list_copy_to_user(void __user *, | 52 | static inline int zfcp_sg_list_copy_to_user(void __user *, |
53 | struct zfcp_sg_list *, size_t); | 53 | struct zfcp_sg_list *, size_t); |
54 | 54 | ||
55 | static int zfcp_cfdc_dev_ioctl(struct file *, unsigned int, unsigned long); | 55 | static long zfcp_cfdc_dev_ioctl(struct file *, unsigned int, unsigned long); |
56 | 56 | ||
57 | #define ZFCP_CFDC_IOC_MAGIC 0xDD | 57 | #define ZFCP_CFDC_IOC_MAGIC 0xDD |
58 | #define ZFCP_CFDC_IOC \ | 58 | #define ZFCP_CFDC_IOC \ |
diff --git a/drivers/s390/scsi/zfcp_def.h b/drivers/s390/scsi/zfcp_def.h index 0afa1c4696..c5daf372f8 100644 --- a/drivers/s390/scsi/zfcp_def.h +++ b/drivers/s390/scsi/zfcp_def.h | |||
@@ -61,7 +61,6 @@ | |||
61 | #include <linux/mempool.h> | 61 | #include <linux/mempool.h> |
62 | #include <linux/syscalls.h> | 62 | #include <linux/syscalls.h> |
63 | #include <linux/ioctl.h> | 63 | #include <linux/ioctl.h> |
64 | #include <linux/ioctl32.h> | ||
65 | 64 | ||
66 | /************************ DEBUG FLAGS *****************************************/ | 65 | /************************ DEBUG FLAGS *****************************************/ |
67 | 66 | ||
diff --git a/drivers/scsi/aacraid/linit.c b/drivers/scsi/aacraid/linit.c index c9b82687ba..242fa77513 100644 --- a/drivers/scsi/aacraid/linit.c +++ b/drivers/scsi/aacraid/linit.c | |||
@@ -450,7 +450,7 @@ static int aac_cfg_open(struct inode *inode, struct file *file) | |||
450 | } | 450 | } |
451 | } | 451 | } |
452 | 452 | ||
453 | return 0; | 453 | return err; |
454 | } | 454 | } |
455 | 455 | ||
456 | /** | 456 | /** |
diff --git a/drivers/scsi/aic7xxx/aic7xxx_osm.c b/drivers/scsi/aic7xxx/aic7xxx_osm.c index e60f9338e4..d978e4a3e9 100644 --- a/drivers/scsi/aic7xxx/aic7xxx_osm.c +++ b/drivers/scsi/aic7xxx/aic7xxx_osm.c | |||
@@ -2335,8 +2335,6 @@ ahc_linux_free_target(struct ahc_softc *ahc, struct ahc_linux_target *targ) | |||
2335 | AHC_TRANS_GOAL, /*paused*/FALSE); | 2335 | AHC_TRANS_GOAL, /*paused*/FALSE); |
2336 | ahc_update_neg_request(ahc, &devinfo, tstate, tinfo, AHC_NEG_ALWAYS); | 2336 | ahc_update_neg_request(ahc, &devinfo, tstate, tinfo, AHC_NEG_ALWAYS); |
2337 | ahc->platform_data->targets[target_offset] = NULL; | 2337 | ahc->platform_data->targets[target_offset] = NULL; |
2338 | if (targ->inq_data != NULL) | ||
2339 | free(targ->inq_data, M_DEVBUF); | ||
2340 | free(targ, M_DEVBUF); | 2338 | free(targ, M_DEVBUF); |
2341 | } | 2339 | } |
2342 | 2340 | ||
diff --git a/drivers/scsi/aic7xxx/aic7xxx_osm.h b/drivers/scsi/aic7xxx/aic7xxx_osm.h index c401537067..ed9027bd8a 100644 --- a/drivers/scsi/aic7xxx/aic7xxx_osm.h +++ b/drivers/scsi/aic7xxx/aic7xxx_osm.h | |||
@@ -423,10 +423,6 @@ struct ahc_linux_device { | |||
423 | struct ahc_linux_target *target; | 423 | struct ahc_linux_target *target; |
424 | }; | 424 | }; |
425 | 425 | ||
426 | typedef enum { | ||
427 | AHC_INQ_VALID = 0x02, | ||
428 | } ahc_linux_targ_flags; | ||
429 | |||
430 | struct ahc_linux_target { | 426 | struct ahc_linux_target { |
431 | struct ahc_linux_device *devices[AHC_NUM_LUNS]; | 427 | struct ahc_linux_device *devices[AHC_NUM_LUNS]; |
432 | int channel; | 428 | int channel; |
@@ -434,8 +430,6 @@ struct ahc_linux_target { | |||
434 | int refcount; | 430 | int refcount; |
435 | struct ahc_transinfo last_tinfo; | 431 | struct ahc_transinfo last_tinfo; |
436 | struct ahc_softc *ahc; | 432 | struct ahc_softc *ahc; |
437 | ahc_linux_targ_flags flags; | ||
438 | struct scsi_inquiry_data *inq_data; | ||
439 | }; | 433 | }; |
440 | 434 | ||
441 | /********************* Definitions Required by the Core ***********************/ | 435 | /********************* Definitions Required by the Core ***********************/ |
diff --git a/drivers/scsi/qla2xxx/qla_attr.c b/drivers/scsi/qla2xxx/qla_attr.c index 2240a0cde5..9bc1f153f7 100644 --- a/drivers/scsi/qla2xxx/qla_attr.c +++ b/drivers/scsi/qla2xxx/qla_attr.c | |||
@@ -300,7 +300,7 @@ qla2x00_set_rport_loss_tmo(struct fc_rport *rport, uint32_t timeout) | |||
300 | rport->dev_loss_tmo = ha->port_down_retry_count + 5; | 300 | rport->dev_loss_tmo = ha->port_down_retry_count + 5; |
301 | } | 301 | } |
302 | 302 | ||
303 | static struct fc_function_template qla2xxx_transport_functions = { | 303 | struct fc_function_template qla2xxx_transport_functions = { |
304 | 304 | ||
305 | .show_host_node_name = 1, | 305 | .show_host_node_name = 1, |
306 | .show_host_port_name = 1, | 306 | .show_host_port_name = 1, |
@@ -322,12 +322,6 @@ static struct fc_function_template qla2xxx_transport_functions = { | |||
322 | 322 | ||
323 | }; | 323 | }; |
324 | 324 | ||
325 | struct scsi_transport_template * | ||
326 | qla2x00_alloc_transport_tmpl(void) | ||
327 | { | ||
328 | return (fc_attach_transport(&qla2xxx_transport_functions)); | ||
329 | } | ||
330 | |||
331 | void | 325 | void |
332 | qla2x00_init_host_attr(scsi_qla_host_t *ha) | 326 | qla2x00_init_host_attr(scsi_qla_host_t *ha) |
333 | { | 327 | { |
diff --git a/drivers/scsi/qla2xxx/qla_gbl.h b/drivers/scsi/qla2xxx/qla_gbl.h index e4bfe4d5bb..2efec6c24d 100644 --- a/drivers/scsi/qla2xxx/qla_gbl.h +++ b/drivers/scsi/qla2xxx/qla_gbl.h | |||
@@ -24,7 +24,6 @@ | |||
24 | #define __QLA_GBL_H | 24 | #define __QLA_GBL_H |
25 | 25 | ||
26 | #include <linux/interrupt.h> | 26 | #include <linux/interrupt.h> |
27 | #include <scsi/scsi_transport.h> | ||
28 | 27 | ||
29 | extern void qla2x00_remove_one(struct pci_dev *); | 28 | extern void qla2x00_remove_one(struct pci_dev *); |
30 | extern int qla2x00_probe_one(struct pci_dev *, struct qla_board_info *); | 29 | extern int qla2x00_probe_one(struct pci_dev *, struct qla_board_info *); |
@@ -248,9 +247,10 @@ extern void qla2x00_cancel_io_descriptors(scsi_qla_host_t *); | |||
248 | /* | 247 | /* |
249 | * Global Function Prototypes in qla_attr.c source file. | 248 | * Global Function Prototypes in qla_attr.c source file. |
250 | */ | 249 | */ |
250 | struct fc_function_template; | ||
251 | extern struct fc_function_template qla2xxx_transport_functions; | ||
251 | extern void qla2x00_alloc_sysfs_attr(scsi_qla_host_t *); | 252 | extern void qla2x00_alloc_sysfs_attr(scsi_qla_host_t *); |
252 | extern void qla2x00_free_sysfs_attr(scsi_qla_host_t *); | 253 | extern void qla2x00_free_sysfs_attr(scsi_qla_host_t *); |
253 | extern struct scsi_transport_template *qla2x00_alloc_transport_tmpl(void); | ||
254 | extern void qla2x00_init_host_attr(scsi_qla_host_t *); | 254 | extern void qla2x00_init_host_attr(scsi_qla_host_t *); |
255 | extern void qla2x00_alloc_sysfs_attr(scsi_qla_host_t *); | 255 | extern void qla2x00_alloc_sysfs_attr(scsi_qla_host_t *); |
256 | extern void qla2x00_free_sysfs_attr(scsi_qla_host_t *); | 256 | extern void qla2x00_free_sysfs_attr(scsi_qla_host_t *); |
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c index 84db911318..579448222d 100644 --- a/drivers/scsi/qla2xxx/qla_os.c +++ b/drivers/scsi/qla2xxx/qla_os.c | |||
@@ -2350,7 +2350,8 @@ qla2x00_module_init(void) | |||
2350 | #if DEBUG_QLA2100 | 2350 | #if DEBUG_QLA2100 |
2351 | strcat(qla2x00_version_str, "-debug"); | 2351 | strcat(qla2x00_version_str, "-debug"); |
2352 | #endif | 2352 | #endif |
2353 | qla2xxx_transport_template = qla2x00_alloc_transport_tmpl(); | 2353 | qla2xxx_transport_template = |
2354 | fc_attach_transport(&qla2xxx_transport_functions); | ||
2354 | if (!qla2xxx_transport_template) | 2355 | if (!qla2xxx_transport_template) |
2355 | return -ENODEV; | 2356 | return -ENODEV; |
2356 | 2357 | ||
diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c index 05d2bd075f..184bcaeaf8 100644 --- a/drivers/scsi/scsi.c +++ b/drivers/scsi/scsi.c | |||
@@ -542,7 +542,7 @@ int scsi_dispatch_cmd(struct scsi_cmnd *cmd) | |||
542 | * that the device is no longer present */ | 542 | * that the device is no longer present */ |
543 | cmd->result = DID_NO_CONNECT << 16; | 543 | cmd->result = DID_NO_CONNECT << 16; |
544 | atomic_inc(&cmd->device->iorequest_cnt); | 544 | atomic_inc(&cmd->device->iorequest_cnt); |
545 | scsi_done(cmd); | 545 | __scsi_done(cmd); |
546 | /* return 0 (because the command has been processed) */ | 546 | /* return 0 (because the command has been processed) */ |
547 | goto out; | 547 | goto out; |
548 | } | 548 | } |
diff --git a/drivers/scsi/scsi_transport_spi.c b/drivers/scsi/scsi_transport_spi.c index 303d7656f7..28966d0543 100644 --- a/drivers/scsi/scsi_transport_spi.c +++ b/drivers/scsi/scsi_transport_spi.c | |||
@@ -22,6 +22,7 @@ | |||
22 | #include <linux/init.h> | 22 | #include <linux/init.h> |
23 | #include <linux/module.h> | 23 | #include <linux/module.h> |
24 | #include <linux/workqueue.h> | 24 | #include <linux/workqueue.h> |
25 | #include <linux/blkdev.h> | ||
25 | #include <asm/semaphore.h> | 26 | #include <asm/semaphore.h> |
26 | #include <scsi/scsi.h> | 27 | #include <scsi/scsi.h> |
27 | #include "scsi_priv.h" | 28 | #include "scsi_priv.h" |
@@ -41,6 +42,11 @@ | |||
41 | 42 | ||
42 | #define SPI_MAX_ECHO_BUFFER_SIZE 4096 | 43 | #define SPI_MAX_ECHO_BUFFER_SIZE 4096 |
43 | 44 | ||
45 | #define DV_LOOPS 3 | ||
46 | #define DV_TIMEOUT (10*HZ) | ||
47 | #define DV_RETRIES 3 /* should only need at most | ||
48 | * two cc/ua clears */ | ||
49 | |||
44 | /* Private data accessors (keep these out of the header file) */ | 50 | /* Private data accessors (keep these out of the header file) */ |
45 | #define spi_dv_pending(x) (((struct spi_transport_attrs *)&(x)->starget_data)->dv_pending) | 51 | #define spi_dv_pending(x) (((struct spi_transport_attrs *)&(x)->starget_data)->dv_pending) |
46 | #define spi_dv_sem(x) (((struct spi_transport_attrs *)&(x)->starget_data)->dv_sem) | 52 | #define spi_dv_sem(x) (((struct spi_transport_attrs *)&(x)->starget_data)->dv_sem) |
@@ -100,6 +106,29 @@ static int sprint_frac(char *dest, int value, int denom) | |||
100 | return result; | 106 | return result; |
101 | } | 107 | } |
102 | 108 | ||
109 | /* Modification of scsi_wait_req that will clear UNIT ATTENTION conditions | ||
110 | * resulting from (likely) bus and device resets */ | ||
111 | static void spi_wait_req(struct scsi_request *sreq, const void *cmd, | ||
112 | void *buffer, unsigned bufflen) | ||
113 | { | ||
114 | int i; | ||
115 | |||
116 | for(i = 0; i < DV_RETRIES; i++) { | ||
117 | sreq->sr_request->flags |= REQ_FAILFAST; | ||
118 | |||
119 | scsi_wait_req(sreq, cmd, buffer, bufflen, | ||
120 | DV_TIMEOUT, /* retries */ 1); | ||
121 | if (sreq->sr_result & DRIVER_SENSE) { | ||
122 | struct scsi_sense_hdr sshdr; | ||
123 | |||
124 | if (scsi_request_normalize_sense(sreq, &sshdr) | ||
125 | && sshdr.sense_key == UNIT_ATTENTION) | ||
126 | continue; | ||
127 | } | ||
128 | break; | ||
129 | } | ||
130 | } | ||
131 | |||
103 | static struct { | 132 | static struct { |
104 | enum spi_signal_type value; | 133 | enum spi_signal_type value; |
105 | char *name; | 134 | char *name; |
@@ -378,11 +407,6 @@ static CLASS_DEVICE_ATTR(signalling, S_IRUGO | S_IWUSR, | |||
378 | if(i->f->set_##x) \ | 407 | if(i->f->set_##x) \ |
379 | i->f->set_##x(sdev->sdev_target, y) | 408 | i->f->set_##x(sdev->sdev_target, y) |
380 | 409 | ||
381 | #define DV_LOOPS 3 | ||
382 | #define DV_TIMEOUT (10*HZ) | ||
383 | #define DV_RETRIES 3 /* should only need at most | ||
384 | * two cc/ua clears */ | ||
385 | |||
386 | enum spi_compare_returns { | 410 | enum spi_compare_returns { |
387 | SPI_COMPARE_SUCCESS, | 411 | SPI_COMPARE_SUCCESS, |
388 | SPI_COMPARE_FAILURE, | 412 | SPI_COMPARE_FAILURE, |
@@ -446,8 +470,7 @@ spi_dv_device_echo_buffer(struct scsi_request *sreq, u8 *buffer, | |||
446 | for (r = 0; r < retries; r++) { | 470 | for (r = 0; r < retries; r++) { |
447 | sreq->sr_cmd_len = 0; /* wait_req to fill in */ | 471 | sreq->sr_cmd_len = 0; /* wait_req to fill in */ |
448 | sreq->sr_data_direction = DMA_TO_DEVICE; | 472 | sreq->sr_data_direction = DMA_TO_DEVICE; |
449 | scsi_wait_req(sreq, spi_write_buffer, buffer, len, | 473 | spi_wait_req(sreq, spi_write_buffer, buffer, len); |
450 | DV_TIMEOUT, DV_RETRIES); | ||
451 | if(sreq->sr_result || !scsi_device_online(sdev)) { | 474 | if(sreq->sr_result || !scsi_device_online(sdev)) { |
452 | struct scsi_sense_hdr sshdr; | 475 | struct scsi_sense_hdr sshdr; |
453 | 476 | ||
@@ -471,8 +494,7 @@ spi_dv_device_echo_buffer(struct scsi_request *sreq, u8 *buffer, | |||
471 | memset(ptr, 0, len); | 494 | memset(ptr, 0, len); |
472 | sreq->sr_cmd_len = 0; /* wait_req to fill in */ | 495 | sreq->sr_cmd_len = 0; /* wait_req to fill in */ |
473 | sreq->sr_data_direction = DMA_FROM_DEVICE; | 496 | sreq->sr_data_direction = DMA_FROM_DEVICE; |
474 | scsi_wait_req(sreq, spi_read_buffer, ptr, len, | 497 | spi_wait_req(sreq, spi_read_buffer, ptr, len); |
475 | DV_TIMEOUT, DV_RETRIES); | ||
476 | scsi_device_set_state(sdev, SDEV_QUIESCE); | 498 | scsi_device_set_state(sdev, SDEV_QUIESCE); |
477 | 499 | ||
478 | if (memcmp(buffer, ptr, len) != 0) | 500 | if (memcmp(buffer, ptr, len) != 0) |
@@ -500,8 +522,7 @@ spi_dv_device_compare_inquiry(struct scsi_request *sreq, u8 *buffer, | |||
500 | 522 | ||
501 | memset(ptr, 0, len); | 523 | memset(ptr, 0, len); |
502 | 524 | ||
503 | scsi_wait_req(sreq, spi_inquiry, ptr, len, | 525 | spi_wait_req(sreq, spi_inquiry, ptr, len); |
504 | DV_TIMEOUT, DV_RETRIES); | ||
505 | 526 | ||
506 | if(sreq->sr_result || !scsi_device_online(sdev)) { | 527 | if(sreq->sr_result || !scsi_device_online(sdev)) { |
507 | scsi_device_set_state(sdev, SDEV_QUIESCE); | 528 | scsi_device_set_state(sdev, SDEV_QUIESCE); |
@@ -593,8 +614,7 @@ spi_dv_device_get_echo_buffer(struct scsi_request *sreq, u8 *buffer) | |||
593 | * (reservation conflict, device not ready, etc) just | 614 | * (reservation conflict, device not ready, etc) just |
594 | * skip the write tests */ | 615 | * skip the write tests */ |
595 | for (l = 0; ; l++) { | 616 | for (l = 0; ; l++) { |
596 | scsi_wait_req(sreq, spi_test_unit_ready, NULL, 0, | 617 | spi_wait_req(sreq, spi_test_unit_ready, NULL, 0); |
597 | DV_TIMEOUT, DV_RETRIES); | ||
598 | 618 | ||
599 | if(sreq->sr_result) { | 619 | if(sreq->sr_result) { |
600 | if(l >= 3) | 620 | if(l >= 3) |
@@ -608,8 +628,7 @@ spi_dv_device_get_echo_buffer(struct scsi_request *sreq, u8 *buffer) | |||
608 | sreq->sr_cmd_len = 0; | 628 | sreq->sr_cmd_len = 0; |
609 | sreq->sr_data_direction = DMA_FROM_DEVICE; | 629 | sreq->sr_data_direction = DMA_FROM_DEVICE; |
610 | 630 | ||
611 | scsi_wait_req(sreq, spi_read_buffer_descriptor, buffer, 4, | 631 | spi_wait_req(sreq, spi_read_buffer_descriptor, buffer, 4); |
612 | DV_TIMEOUT, DV_RETRIES); | ||
613 | 632 | ||
614 | if (sreq->sr_result) | 633 | if (sreq->sr_result) |
615 | /* Device has no echo buffer */ | 634 | /* Device has no echo buffer */ |
diff --git a/drivers/scsi/sr_ioctl.c b/drivers/scsi/sr_ioctl.c index 3471be0577..82d68fdb15 100644 --- a/drivers/scsi/sr_ioctl.c +++ b/drivers/scsi/sr_ioctl.c | |||
@@ -281,6 +281,9 @@ int sr_get_mcn(struct cdrom_device_info *cdi, struct cdrom_mcn *mcn) | |||
281 | char *buffer = kmalloc(32, GFP_KERNEL | SR_GFP_DMA(cd)); | 281 | char *buffer = kmalloc(32, GFP_KERNEL | SR_GFP_DMA(cd)); |
282 | int result; | 282 | int result; |
283 | 283 | ||
284 | if (!buffer) | ||
285 | return -ENOMEM; | ||
286 | |||
284 | memset(&cgc, 0, sizeof(struct packet_command)); | 287 | memset(&cgc, 0, sizeof(struct packet_command)); |
285 | cgc.cmd[0] = GPCMD_READ_SUBCHANNEL; | 288 | cgc.cmd[0] = GPCMD_READ_SUBCHANNEL; |
286 | cgc.cmd[2] = 0x40; /* I do want the subchannel info */ | 289 | cgc.cmd[2] = 0x40; /* I do want the subchannel info */ |
diff --git a/drivers/scsi/sym53c8xx_2/sym_glue.c b/drivers/scsi/sym53c8xx_2/sym_glue.c index 5ff83d214f..5b07c6ec3e 100644 --- a/drivers/scsi/sym53c8xx_2/sym_glue.c +++ b/drivers/scsi/sym53c8xx_2/sym_glue.c | |||
@@ -2038,8 +2038,9 @@ static void sym2_set_period(struct scsi_target *starget, int period) | |||
2038 | struct sym_hcb *np = sym_get_hcb(shost); | 2038 | struct sym_hcb *np = sym_get_hcb(shost); |
2039 | struct sym_tcb *tp = &np->target[starget->id]; | 2039 | struct sym_tcb *tp = &np->target[starget->id]; |
2040 | 2040 | ||
2041 | /* have to have DT for these transfers */ | 2041 | /* have to have DT for these transfers, but DT will also |
2042 | if (period <= np->minsync) | 2042 | * set width, so check that this is allowed */ |
2043 | if (period <= np->minsync && spi_width(starget)) | ||
2043 | tp->tgoal.dt = 1; | 2044 | tp->tgoal.dt = 1; |
2044 | 2045 | ||
2045 | tp->tgoal.period = period; | 2046 | tp->tgoal.period = period; |
diff --git a/drivers/serial/8250_pci.c b/drivers/serial/8250_pci.c index f8d90d0ecf..de54bdc539 100644 --- a/drivers/serial/8250_pci.c +++ b/drivers/serial/8250_pci.c | |||
@@ -1009,6 +1009,8 @@ get_pci_irq(struct pci_dev *dev, struct pci_board *board, int idx) | |||
1009 | * n = number of serial ports | 1009 | * n = number of serial ports |
1010 | * baud = baud rate | 1010 | * baud = baud rate |
1011 | * | 1011 | * |
1012 | * This table is sorted by (in order): baud, bt, bn, n. | ||
1013 | * | ||
1012 | * Please note: in theory if n = 1, _bt infix should make no difference. | 1014 | * Please note: in theory if n = 1, _bt infix should make no difference. |
1013 | * ie, pbn_b0_1_115200 is the same as pbn_b0_bt_1_115200 | 1015 | * ie, pbn_b0_1_115200 is the same as pbn_b0_bt_1_115200 |
1014 | */ | 1016 | */ |