Currently, libata creates a Scsi_Host per port. This was originally done to leverage SCSI's infrastructure to arbitrate among master/slave devices, but is not needed for most modern SATA controllers. And I _think_ it is not needed for master/slave if done properly, either. The patch below converts libata such that there is now a 1:1 correspondence between struct Scsi_Host and struct ata_host. ATA ports are represented as SCSI layer 'channels', which is more natural. This patch is an experiment, and not meant for upstream anytime soon. I just wanted to see what kind of effort would be required to get it to work. I was able to successfully boot the following patch on AHCI/x86-64/Fedora. It may work with other controllers -- TRY AT YOUR OWN RISK. It will probably fail for master/slave configurations, and SAS & PMP also need looking at. It yielded this lsscsi output on my AHCI box: [0:0:0:0] disk ATA ST3500320AS SD15 /dev/sda [0:2:0:0] disk ATA G.SKILL 128GB SS 02.1 /dev/sdb [0:5:0:0] cd/dvd PIONEER BD-ROM BDC-202 1.04 /dev/sr0 NOT-signed-off-by: me drivers/ata/ahci.c | 4 drivers/ata/libata-core.c | 17 +-- drivers/ata/libata-eh.c | 47 ++++++-- drivers/ata/libata-scsi.c | 237 +++++++++++++++++++++--------------------- drivers/ata/libata.h | 3 drivers/scsi/libsas/sas_ata.c | 2 include/linux/libata.h | 9 - 7 files changed, 184 insertions(+), 135 deletions(-) diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c index 08186ec..b0468a8 100644 --- a/drivers/ata/ahci.c +++ b/drivers/ata/ahci.c @@ -326,14 +326,18 @@ static ssize_t ahci_activity_store(struct ata_device *dev, static void ahci_init_sw_activity(struct ata_link *link); static struct device_attribute *ahci_shost_attrs[] = { +#if 0 &dev_attr_link_power_management_policy, &dev_attr_em_message_type, &dev_attr_em_message, +#endif NULL }; static struct device_attribute *ahci_sdev_attrs[] = { +#if 0 &dev_attr_sw_activity, +#endif &dev_attr_unload_heads, NULL }; diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c index 17c5d48..71f32dc 100644 --- a/drivers/ata/libata-core.c +++ b/drivers/ata/libata-core.c @@ -95,6 +95,7 @@ static void ata_dev_xfermask(struct ata_device *dev); static unsigned long ata_dev_blacklisted(const struct ata_device *dev); unsigned int ata_print_id = 1; +unsigned int ata_host_print_id = 1; static struct workqueue_struct *ata_wq; struct workqueue_struct *ata_aux_wq; @@ -2308,7 +2309,7 @@ static void ata_dev_config_ncq(struct ata_device *dev, return; } if (ap->flags & ATA_FLAG_NCQ) { - hdepth = min(ap->scsi_host->can_queue, ATA_MAX_QUEUE - 1); + hdepth = min(ap->host->scsi_host->can_queue, ATA_MAX_QUEUE - 1); dev->flags |= ATA_DFLAG_NCQ; } @@ -5635,15 +5636,15 @@ static void ata_host_release(struct device *gendev, void *res) if (!ap) continue; - if (ap->scsi_host) - scsi_host_put(ap->scsi_host); - kfree(ap->pmp_link); kfree(ap->slave_link); kfree(ap); host->ports[i] = NULL; } + if (host->scsi_host) + scsi_host_put(host->scsi_host); + dev_set_drvdata(gendev, NULL); } @@ -6089,6 +6090,8 @@ int ata_host_register(struct ata_host *host, struct scsi_host_template *sht) for (i = 0; i < host->n_ports; i++) host->ports[i]->print_id = ata_print_id++; + host->print_id = ata_host_print_id++; + rc = ata_scsi_add_hosts(host, sht); if (rc) return rc; @@ -6222,8 +6225,7 @@ static void ata_port_detach(struct ata_port *ap) cancel_rearming_delayed_work(&ap->hotplug_task); skip_eh: - /* remove the associated SCSI host */ - scsi_remove_host(ap->scsi_host); + return; } /** @@ -6242,6 +6244,9 @@ void ata_host_detach(struct ata_host *host) for (i = 0; i < host->n_ports; i++) ata_port_detach(host->ports[i]); + /* remove the associated SCSI host */ + scsi_remove_host(host->scsi_host); + /* the host is dead now, dissociate ACPI */ ata_acpi_dissociate(host); } diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c index 0183131..db8a66f 100644 --- a/drivers/ata/libata-eh.c +++ b/drivers/ata/libata-eh.c @@ -466,14 +466,22 @@ static void ata_eh_clear_action(struct ata_link *link, struct ata_device *dev, */ enum blk_eh_timer_return ata_scsi_timed_out(struct scsi_cmnd *cmd) { - struct Scsi_Host *host = cmd->device->host; - struct ata_port *ap = ata_shost_to_port(host); + struct Scsi_Host *shost = cmd->device->host; + struct ata_port *ap; + struct ata_host *host; + struct ata_device *atadev; unsigned long flags; struct ata_queued_cmd *qc; - enum blk_eh_timer_return ret; + enum blk_eh_timer_return ret = BLK_EH_NOT_HANDLED; DPRINTK("ENTER\n"); + host = ata_shost_to_host(shost); + atadev = ata_scsi_find_dev(host, cmd->device); + if (!atadev) + goto out; + ap = atadev->link->ap; + if (ap->ops->error_handler) { ret = BLK_EH_NOT_HANDLED; goto out; @@ -532,13 +540,12 @@ static void ata_eh_unload(struct ata_port *ap) * RETURNS: * Zero. */ -void ata_scsi_error(struct Scsi_Host *host) +static void __ata_scsi_error(struct Scsi_Host *shost, struct ata_port *ap) { - struct ata_port *ap = ata_shost_to_port(host); int i; unsigned long flags; - DPRINTK("ENTER\n"); + DPRINTK("ENTER, port_no %u\n", ap->port_no); /* synchronize with port task */ ata_port_flush_task(ap); @@ -575,7 +582,7 @@ void ata_scsi_error(struct Scsi_Host *host) if (ap->ops->lost_interrupt) ap->ops->lost_interrupt(ap); - list_for_each_entry_safe(scmd, tmp, &host->eh_cmd_q, eh_entry) { + list_for_each_entry_safe(scmd, tmp, &shost->eh_cmd_q, eh_entry) { struct ata_queued_cmd *qc; for (i = 0; i < ATA_MAX_QUEUE; i++) { @@ -698,7 +705,7 @@ void ata_scsi_error(struct Scsi_Host *host) * before EH completion, SCSI midlayer will * re-initiate EH. */ - host->host_eh_scheduled = 0; + shost->host_eh_scheduled = 0; spin_unlock_irqrestore(ap->lock, flags); } else { @@ -707,7 +714,7 @@ void ata_scsi_error(struct Scsi_Host *host) } /* finish or retry handled scmd's and clean up */ - WARN_ON(host->host_failed || !list_empty(&host->eh_cmd_q)); + WARN_ON(shost->host_failed || !list_empty(&shost->eh_cmd_q)); scsi_eh_flush_done_q(&ap->eh_done_q); @@ -733,6 +740,24 @@ void ata_scsi_error(struct Scsi_Host *host) DPRINTK("EXIT\n"); } +void ata_scsi_error(struct Scsi_Host *shost) +{ + struct ata_host *host = ata_shost_to_host(shost); + unsigned int i; + + DPRINTK("ENTER\n"); + + for (i = 0; i < host->n_ports; i++) { + struct ata_port *ap = host->ports[i]; + + if (ap->pflags & ATA_PFLAG_EH_PENDING) + __ata_scsi_error(shost, ap); + } + + DPRINTK("EXIT\n"); +} + + /** * ata_port_wait_eh - Wait for the currently pending EH to complete * @ap: Port to wait EH for @@ -761,7 +786,7 @@ void ata_port_wait_eh(struct ata_port *ap) spin_unlock_irqrestore(ap->lock, flags); /* make sure SCSI EH is complete */ - if (scsi_host_in_recovery(ap->scsi_host)) { + if (scsi_host_in_recovery(ap->host->scsi_host)) { msleep(10); goto retry; } @@ -901,7 +926,7 @@ void ata_port_schedule_eh(struct ata_port *ap) return; ata_eh_set_pending(ap, 1); - scsi_schedule_eh(ap->scsi_host); + scsi_schedule_eh(ap->host->scsi_host); DPRINTK("port EH scheduled\n"); } diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c index 2733b0c..7aa6aa6 100644 --- a/drivers/ata/libata-scsi.c +++ b/drivers/ata/libata-scsi.c @@ -58,10 +58,8 @@ static u8 ata_scsi_rbuf[ATA_SCSI_RBUF_SIZE]; typedef unsigned int (*ata_xlat_func_t)(struct ata_queued_cmd *qc); -static struct ata_device *__ata_scsi_find_dev(struct ata_port *ap, +static struct ata_device *__ata_scsi_find_dev(struct ata_host *, const struct scsi_device *scsidev); -static struct ata_device *ata_scsi_find_dev(struct ata_port *ap, - const struct scsi_device *scsidev); static int ata_scsi_user_scan(struct Scsi_Host *shost, unsigned int channel, unsigned int id, unsigned int lun); @@ -136,6 +134,7 @@ static const char *ata_scsi_lpm_get(enum link_pm policy) return NULL; } +#if 0 static ssize_t ata_scsi_lpm_put(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) @@ -183,6 +182,7 @@ ata_scsi_lpm_show(struct device *dev, struct device_attribute *attr, char *buf) DEVICE_ATTR(link_power_management_policy, S_IRUGO | S_IWUSR, ata_scsi_lpm_show, ata_scsi_lpm_put); EXPORT_SYMBOL_GPL(dev_attr_link_power_management_policy); +#endif static ssize_t ata_scsi_park_show(struct device *device, struct device_attribute *attr, char *buf) @@ -190,19 +190,21 @@ static ssize_t ata_scsi_park_show(struct device *device, struct scsi_device *sdev = to_scsi_device(device); struct ata_port *ap; struct ata_link *link; + struct ata_host *host; struct ata_device *dev; unsigned long flags, now; unsigned int uninitialized_var(msecs); int rc = 0; - ap = ata_shost_to_port(sdev->host); + host = ata_shost_to_host(sdev->host); - spin_lock_irqsave(ap->lock, flags); - dev = ata_scsi_find_dev(ap, sdev); + spin_lock_irqsave(&host->lock, flags); + dev = ata_scsi_find_dev(host, sdev); if (!dev) { rc = -ENODEV; goto unlock; } + ap = dev->link->ap; if (dev->flags & ATA_DFLAG_NO_UNLOAD) { rc = -EOPNOTSUPP; goto unlock; @@ -218,7 +220,7 @@ static ssize_t ata_scsi_park_show(struct device *device, msecs = 0; unlock: - spin_unlock_irq(ap->lock); + spin_unlock_irq(&host->lock); return rc ? rc : snprintf(buf, 20, "%u\n", msecs); } @@ -230,6 +232,7 @@ static ssize_t ata_scsi_park_store(struct device *device, struct scsi_device *sdev = to_scsi_device(device); struct ata_port *ap; struct ata_device *dev; + struct ata_host *host; long int input; unsigned long flags; int rc; @@ -242,14 +245,15 @@ static ssize_t ata_scsi_park_store(struct device *device, input = ATA_TMOUT_MAX_PARK; } - ap = ata_shost_to_port(sdev->host); + host = ata_shost_to_host(sdev->host); - spin_lock_irqsave(ap->lock, flags); - dev = ata_scsi_find_dev(ap, sdev); + spin_lock_irqsave(&host->lock, flags); + dev = ata_scsi_find_dev(host, sdev); if (unlikely(!dev)) { rc = -ENODEV; goto unlock; } + ap = dev->link->ap; if (dev->class != ATA_DEV_ATA) { rc = -EOPNOTSUPP; goto unlock; @@ -276,7 +280,7 @@ static ssize_t ata_scsi_park_store(struct device *device, } } unlock: - spin_unlock_irqrestore(ap->lock, flags); + spin_unlock_irqrestore(&host->lock, flags); return rc ? rc : len; } @@ -291,6 +295,7 @@ static void ata_scsi_set_sense(struct scsi_cmnd *cmd, u8 sk, u8 asc, u8 ascq) scsi_build_sense_buffer(0, cmd->sense_buffer, sk, asc, ascq); } +#if 0 static ssize_t ata_scsi_em_message_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) @@ -335,8 +340,9 @@ ata_scsi_activity_show(struct device *dev, struct device_attribute *attr, char *buf) { struct scsi_device *sdev = to_scsi_device(dev); - struct ata_port *ap = ata_shost_to_port(sdev->host); - struct ata_device *atadev = ata_scsi_find_dev(ap, sdev); + struct ata_host *host = ata_shost_to_host(sdev->host); + struct ata_device *atadev = ata_scsi_find_dev(host, sdev); + struct ata_port *ap = atadev->ap; if (ap->ops->sw_activity_show && (ap->flags & ATA_FLAG_SW_ACTIVITY)) return ap->ops->sw_activity_show(atadev, buf); @@ -348,8 +354,9 @@ ata_scsi_activity_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { struct scsi_device *sdev = to_scsi_device(dev); - struct ata_port *ap = ata_shost_to_port(sdev->host); - struct ata_device *atadev = ata_scsi_find_dev(ap, sdev); + struct ata_host *host = ata_shost_to_host(sdev->host); + struct ata_device *atadev = ata_scsi_find_dev(host, sdev); + struct ata_port *ap = atadev->ap; enum sw_activity val; int rc; @@ -369,6 +376,7 @@ ata_scsi_activity_store(struct device *dev, struct device_attribute *attr, DEVICE_ATTR(sw_activity, S_IWUGO | S_IRUGO, ata_scsi_activity_show, ata_scsi_activity_store); EXPORT_SYMBOL_GPL(dev_attr_sw_activity); +#endif struct device_attribute *ata_common_sdev_attrs[] = { &dev_attr_unload_heads, @@ -425,10 +433,10 @@ int ata_std_bios_param(struct scsi_device *sdev, struct block_device *bdev, * RETURNS: * Zero on success, negative errno on error. */ -static int ata_get_identity(struct ata_port *ap, struct scsi_device *sdev, +static int ata_get_identity(struct ata_host *host, struct scsi_device *sdev, void __user *arg) { - struct ata_device *dev = ata_scsi_find_dev(ap, sdev); + struct ata_device *dev = ata_scsi_find_dev(host, sdev); u16 __user *dst = arg; char buf[40]; @@ -656,11 +664,18 @@ static int ata_ioc32(struct ata_port *ap) return 0; } -int ata_sas_scsi_ioctl(struct ata_port *ap, struct scsi_device *scsidev, +int ata_sas_scsi_ioctl(struct ata_host *host, struct scsi_device *scsidev, int cmd, void __user *arg) { int val = -EINVAL, rc = -EINVAL; unsigned long flags; + struct ata_port *ap; + struct ata_device *atadev; + + atadev = ata_scsi_find_dev(host, scsidev); + if (!atadev) + return -ENOENT; + ap = atadev->link->ap; switch (cmd) { case ATA_IOC_GET_IO32: @@ -688,7 +703,7 @@ int ata_sas_scsi_ioctl(struct ata_port *ap, struct scsi_device *scsidev, return rc; case HDIO_GET_IDENTITY: - return ata_get_identity(ap, scsidev, arg); + return ata_get_identity(host, scsidev, arg); case HDIO_DRIVE_CMD: if (!capable(CAP_SYS_ADMIN) || !capable(CAP_SYS_RAWIO)) @@ -711,7 +726,7 @@ EXPORT_SYMBOL_GPL(ata_sas_scsi_ioctl); int ata_scsi_ioctl(struct scsi_device *scsidev, int cmd, void __user *arg) { - return ata_sas_scsi_ioctl(ata_shost_to_port(scsidev->host), + return ata_sas_scsi_ioctl(ata_shost_to_host(scsidev->host), scsidev, cmd, arg); } EXPORT_SYMBOL_GPL(ata_scsi_ioctl); @@ -1157,8 +1172,8 @@ static int ata_scsi_dev_config(struct scsi_device *sdev, int ata_scsi_slave_config(struct scsi_device *sdev) { - struct ata_port *ap = ata_shost_to_port(sdev->host); - struct ata_device *dev = __ata_scsi_find_dev(ap, sdev); + struct ata_host *host = ata_shost_to_host(sdev->host); + struct ata_device *dev = __ata_scsi_find_dev(host, sdev); int rc = 0; ata_scsi_sdev_config(sdev); @@ -1185,27 +1200,34 @@ int ata_scsi_slave_config(struct scsi_device *sdev) */ void ata_scsi_slave_destroy(struct scsi_device *sdev) { - struct ata_port *ap = ata_shost_to_port(sdev->host); + struct ata_host *host = ata_shost_to_host(sdev->host); struct request_queue *q = sdev->request_queue; unsigned long flags; struct ata_device *dev; + bool new_eh = true; - if (!ap->ops->error_handler) - return; - - spin_lock_irqsave(ap->lock, flags); - dev = __ata_scsi_find_dev(ap, sdev); + spin_lock_irqsave(&host->lock, flags); + dev = __ata_scsi_find_dev(host, sdev); if (dev && dev->sdev) { + struct ata_port *ap = dev->link->ap; + + if (!ap->ops->error_handler) + new_eh = false; + + else { /* SCSI device already in CANCEL state, no need to offline it */ dev->sdev = NULL; dev->flags |= ATA_DFLAG_DETACH; ata_port_schedule_eh(ap); + } } - spin_unlock_irqrestore(ap->lock, flags); + spin_unlock_irqrestore(&host->lock, flags); - kfree(q->dma_drain_buffer); - q->dma_drain_buffer = NULL; - q->dma_drain_size = 0; + if (new_eh) { + kfree(q->dma_drain_buffer); + q->dma_drain_buffer = NULL; + q->dma_drain_size = 0; + } } /** @@ -1225,25 +1247,25 @@ void ata_scsi_slave_destroy(struct scsi_device *sdev) */ int ata_scsi_change_queue_depth(struct scsi_device *sdev, int queue_depth) { - struct ata_port *ap = ata_shost_to_port(sdev->host); + struct ata_host *host = ata_shost_to_host(sdev->host); struct ata_device *dev; unsigned long flags; if (queue_depth < 1 || queue_depth == sdev->queue_depth) return sdev->queue_depth; - dev = ata_scsi_find_dev(ap, sdev); + dev = ata_scsi_find_dev(host, sdev); if (!dev || !ata_dev_enabled(dev)) return sdev->queue_depth; /* NCQ enabled? */ - spin_lock_irqsave(ap->lock, flags); + spin_lock_irqsave(&host->lock, flags); dev->flags &= ~ATA_DFLAG_NCQ_OFF; if (queue_depth == 1 || !ata_ncq_enabled(dev)) { dev->flags |= ATA_DFLAG_NCQ_OFF; queue_depth = 1; } - spin_unlock_irqrestore(ap->lock, flags); + spin_unlock_irqrestore(&host->lock, flags); /* limit and apply queue depth */ queue_depth = min(queue_depth, sdev->host->can_queue); @@ -2690,21 +2712,20 @@ static struct ata_device *ata_find_dev(struct ata_port *ap, int devno) return NULL; } -static struct ata_device *__ata_scsi_find_dev(struct ata_port *ap, +static struct ata_device *__ata_scsi_find_dev(struct ata_host *host, const struct scsi_device *scsidev) { int devno; + struct ata_port *ap; - /* skip commands not addressed to targets we simulate */ - if (!sata_pmp_attached(ap)) { - if (unlikely(scsidev->channel || scsidev->lun)) - return NULL; - devno = scsidev->id; - } else { - if (unlikely(scsidev->id || scsidev->lun)) - return NULL; - devno = scsidev->channel; - } + if (scsidev->channel > host->n_ports) + return NULL; + + ap = host->ports[scsidev->channel]; + if (ata_port_is_dummy(ap)) + return NULL; + + devno = scsidev->id; return ata_find_dev(ap, devno); } @@ -2725,10 +2746,10 @@ static struct ata_device *__ata_scsi_find_dev(struct ata_port *ap, * RETURNS: * Associated ATA device, or %NULL if not found. */ -static struct ata_device * -ata_scsi_find_dev(struct ata_port *ap, const struct scsi_device *scsidev) +struct ata_device * +ata_scsi_find_dev(struct ata_host *host, const struct scsi_device *scsidev) { - struct ata_device *dev = __ata_scsi_find_dev(ap, scsidev); + struct ata_device *dev = __ata_scsi_find_dev(host, scsidev); if (unlikely(!dev || !ata_dev_enabled(dev))) return NULL; @@ -2983,15 +3004,13 @@ static inline ata_xlat_func_t ata_get_xlat_func(struct ata_device *dev, u8 cmd) * Prints the contents of a SCSI command via printk(). */ -static inline void ata_scsi_dump_cdb(struct ata_port *ap, - struct scsi_cmnd *cmd) +static inline void ata_scsi_dump_cdb(struct scsi_cmnd *cmd) { #ifdef ATA_DEBUG struct scsi_device *scsidev = cmd->device; u8 *scsicmd = cmd->cmnd; - DPRINTK("CDB (%u:%d,%d,%d) %02x %02x %02x %02x %02x %02x %02x %02x %02x\n", - ap->print_id, + DPRINTK("CDB (%d,%d,%d) %02x %02x %02x %02x %02x %02x %02x %02x %02x\n", scsidev->channel, scsidev->id, scsidev->lun, scsicmd[0], scsicmd[1], scsicmd[2], scsicmd[3], scsicmd[4], scsicmd[5], scsicmd[6], scsicmd[7], @@ -3069,20 +3088,20 @@ static inline int __ata_scsi_queuecmd(struct scsi_cmnd *scmd, */ int ata_scsi_queuecmd(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *)) { - struct ata_port *ap; struct ata_device *dev; + struct ata_host *host; struct scsi_device *scsidev = cmd->device; struct Scsi_Host *shost = scsidev->host; int rc = 0; - ap = ata_shost_to_port(shost); + host = ata_shost_to_host(shost); spin_unlock(shost->host_lock); - spin_lock(ap->lock); + spin_lock(&host->lock); - ata_scsi_dump_cdb(ap, cmd); + ata_scsi_dump_cdb(cmd); - dev = ata_scsi_find_dev(ap, scsidev); + dev = ata_scsi_find_dev(host, scsidev); if (likely(dev)) rc = __ata_scsi_queuecmd(cmd, done, dev); else { @@ -3090,7 +3109,7 @@ int ata_scsi_queuecmd(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *)) done(cmd); } - spin_unlock(ap->lock); + spin_unlock(&host->lock); spin_lock(shost->host_lock); return rc; } @@ -3217,56 +3236,43 @@ void ata_scsi_simulate(struct ata_device *dev, struct scsi_cmnd *cmd, int ata_scsi_add_hosts(struct ata_host *host, struct scsi_host_template *sht) { - int i, rc; - - for (i = 0; i < host->n_ports; i++) { - struct ata_port *ap = host->ports[i]; - struct Scsi_Host *shost; + int rc; + struct Scsi_Host *shost; - rc = -ENOMEM; - shost = scsi_host_alloc(sht, sizeof(struct ata_port *)); - if (!shost) - goto err_alloc; + shost = scsi_host_alloc(sht, sizeof(struct ata_host *)); + if (!shost) + return -ENOMEM; - *(struct ata_port **)&shost->hostdata[0] = ap; - ap->scsi_host = shost; + *(struct ata_host **)&shost->hostdata[0] = host; + host->scsi_host = shost; - shost->transportt = &ata_scsi_transport_template; - shost->unique_id = ap->print_id; - shost->max_id = 16; - shost->max_lun = 1; - shost->max_channel = 1; - shost->max_cmd_len = 16; + shost->transportt = &ata_scsi_transport_template; + shost->unique_id = host->print_id; + shost->max_id = 32; + shost->max_lun = 1; + shost->max_channel = 32; + shost->max_cmd_len = 16; - /* Schedule policy is determined by ->qc_defer() - * callback and it needs to see every deferred qc. - * Set host_blocked to 1 to prevent SCSI midlayer from - * automatically deferring requests. - */ - shost->max_host_blocked = 1; + /* Schedule policy is determined by ->qc_defer() + * callback and it needs to see every deferred qc. + * Set host_blocked to 1 to prevent SCSI midlayer from + * automatically deferring requests. + */ + shost->max_host_blocked = 1; - rc = scsi_add_host(ap->scsi_host, ap->host->dev); - if (rc) - goto err_add; + rc = scsi_add_host(shost, host->dev); + if (rc) { + scsi_host_put(shost); + return rc; } return 0; - - err_add: - scsi_host_put(host->ports[i]->scsi_host); - err_alloc: - while (--i >= 0) { - struct Scsi_Host *shost = host->ports[i]->scsi_host; - - scsi_remove_host(shost); - scsi_host_put(shost); - } - return rc; } void ata_scsi_scan_host(struct ata_port *ap, int sync) { int tries = 5; + struct ata_host *host = ap->host; struct ata_device *last_failed_dev = NULL; struct ata_link *link; struct ata_device *dev; @@ -3278,7 +3284,7 @@ void ata_scsi_scan_host(struct ata_port *ap, int sync) ata_for_each_link(link, ap, EDGE) { ata_for_each_dev(dev, link, ENABLED) { struct scsi_device *sdev; - int channel = 0, id = 0; + int id = 0; if (dev->sdev) continue; @@ -3286,9 +3292,10 @@ void ata_scsi_scan_host(struct ata_port *ap, int sync) if (ata_is_host_link(link)) id = dev->devno; else - channel = link->pmp; + id = link->pmp; - sdev = __scsi_add_device(ap->scsi_host, channel, id, 0, + sdev = __scsi_add_device(host->scsi_host, + ap->port_no, id, 0, NULL); if (!IS_ERR(sdev)) { dev->sdev = sdev; @@ -3376,6 +3383,7 @@ int ata_scsi_offline_dev(struct ata_device *dev) static void ata_scsi_remove_dev(struct ata_device *dev) { struct ata_port *ap = dev->link->ap; + struct ata_host *host = ap->host; struct scsi_device *sdev; unsigned long flags; @@ -3385,7 +3393,7 @@ static void ata_scsi_remove_dev(struct ata_device *dev) * be removed if there is __scsi_device_get() interface which * increments reference counts regardless of device state. */ - mutex_lock(&ap->scsi_host->scan_mutex); + mutex_lock(&host->scsi_host->scan_mutex); spin_lock_irqsave(ap->lock, flags); /* clearing dev->sdev is protected by host lock */ @@ -3411,7 +3419,7 @@ static void ata_scsi_remove_dev(struct ata_device *dev) } spin_unlock_irqrestore(ap->lock, flags); - mutex_unlock(&ap->scsi_host->scan_mutex); + mutex_unlock(&host->scsi_host->scan_mutex); if (sdev) { ata_dev_printk(dev, KERN_INFO, "detaching (SCSI %s)\n", @@ -3517,25 +3525,28 @@ void ata_scsi_hotplug(struct work_struct *work) static int ata_scsi_user_scan(struct Scsi_Host *shost, unsigned int channel, unsigned int id, unsigned int lun) { - struct ata_port *ap = ata_shost_to_port(shost); + struct ata_port *ap; + struct ata_host *host = ata_shost_to_host(shost); unsigned long flags; int devno, rc = 0; + if (channel == SCAN_WILD_CARD) + ap = host->ports[0]; + else { + if (channel > host->n_ports) + return -EINVAL; + ap = host->ports[channel]; + } + if (!ap->ops->error_handler) return -EOPNOTSUPP; if (lun != SCAN_WILD_CARD && lun) return -EINVAL; - if (!sata_pmp_attached(ap)) { - if (channel != SCAN_WILD_CARD && channel) - return -EINVAL; - devno = id; - } else { - if (id != SCAN_WILD_CARD && id) - return -EINVAL; - devno = channel; - } + if (id != SCAN_WILD_CARD && id) + return -EINVAL; + devno = id; spin_lock_irqsave(ap->lock, flags); @@ -3749,7 +3760,7 @@ int ata_sas_queuecmd(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *), { int rc = 0; - ata_scsi_dump_cdb(ap, cmd); + ata_scsi_dump_cdb(cmd); if (likely(ata_dev_enabled(ap->link.device))) rc = __ata_scsi_queuecmd(cmd, done, ap->link.device); diff --git a/drivers/ata/libata.h b/drivers/ata/libata.h index 89a1e00..af890b4 100644 --- a/drivers/ata/libata.h +++ b/drivers/ata/libata.h @@ -205,4 +205,7 @@ extern u8 ata_irq_on(struct ata_port *ap); extern void ata_pio_task(struct work_struct *work); #endif /* CONFIG_ATA_SFF */ +struct ata_device * +ata_scsi_find_dev(struct ata_host *host, const struct scsi_device *scsidev); + #endif /* __LIBATA_H__ */ diff --git a/drivers/scsi/libsas/sas_ata.c b/drivers/scsi/libsas/sas_ata.c index e155011..758df0b 100644 --- a/drivers/scsi/libsas/sas_ata.c +++ b/drivers/scsi/libsas/sas_ata.c @@ -375,6 +375,7 @@ int sas_ata_init_host_and_port(struct domain_device *found_dev, ha->dev, sata_port_info.flags, &sas_sata_ops); + found_dev->sata_dev.ata_host.scsi_host = shost; ap = ata_sas_port_alloc(&found_dev->sata_dev.ata_host, &sata_port_info, shost); @@ -385,7 +386,6 @@ int sas_ata_init_host_and_port(struct domain_device *found_dev, ap->private_data = found_dev; ap->cbl = ATA_CBL_SATA; - ap->scsi_host = shost; found_dev->sata_dev.ap = ap; return 0; diff --git a/include/linux/libata.h b/include/linux/libata.h index 3d501db..2ea4dce 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h @@ -507,10 +507,12 @@ struct ata_ioports { #endif /* CONFIG_ATA_SFF */ struct ata_host { + struct Scsi_Host *scsi_host; /* our co-allocated scsi host */ spinlock_t lock; struct device *dev; void __iomem * const *iomap; unsigned int n_ports; + unsigned int print_id; /* user visible unique host ID */ void *private_data; struct ata_port_operations *ops; unsigned long flags; @@ -690,7 +692,6 @@ struct ata_link { }; struct ata_port { - struct Scsi_Host *scsi_host; /* our co-allocated scsi host */ struct ata_port_operations *ops; spinlock_t *lock; /* Flags owned by the EH context. Only EH should touch these once the @@ -947,7 +948,7 @@ extern void ata_host_init(struct ata_host *, struct device *, extern int ata_scsi_detect(struct scsi_host_template *sht); extern int ata_scsi_ioctl(struct scsi_device *dev, int cmd, void __user *arg); extern int ata_scsi_queuecmd(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *)); -extern int ata_sas_scsi_ioctl(struct ata_port *ap, struct scsi_device *dev, +extern int ata_sas_scsi_ioctl(struct ata_host *, struct scsi_device *dev, int cmd, void __user *arg); extern void ata_sas_port_destroy(struct ata_port *); extern struct ata_port *ata_sas_port_alloc(struct ata_host *, @@ -1472,9 +1473,9 @@ static inline unsigned int __ac_err_mask(u8 status) return mask; } -static inline struct ata_port *ata_shost_to_port(struct Scsi_Host *host) +static inline struct ata_host *ata_shost_to_host(struct Scsi_Host *host) { - return *(struct ata_port **)&host->hostdata[0]; + return *(struct ata_host **)&host->hostdata[0]; } static inline int ata_check_ready(u8 status)
Linux version 2.6.30-rc2-scsihost1-00368-gaefe647-dirty (jgarzik@xxxxxxxxx) (gcc version 4.3.2 20081105 (Red Hat 4.3.2-7) (GCC) ) #2 SMP Wed Apr 22 03:24:22 EDT 2009 Command line: ro root=UUID=f12abe85-327f-4e7d-9b06-5bb07624196d nogui KERNEL supported cpus: Intel GenuineIntel AMD AuthenticAMD Centaur CentaurHauls BIOS-provided physical RAM map: BIOS-e820: 0000000000000000 - 000000000009cc00 (usable) BIOS-e820: 000000000009cc00 - 00000000000a0000 (reserved) BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved) BIOS-e820: 0000000000100000 - 00000000bcdc2000 (usable) BIOS-e820: 00000000bcdc2000 - 00000000bcfda000 (ACPI NVS) BIOS-e820: 00000000bcfda000 - 00000000bf6bd000 (usable) BIOS-e820: 00000000bf6bd000 - 00000000bf6bf000 (reserved) BIOS-e820: 00000000bf6bf000 - 00000000bf714000 (usable) BIOS-e820: 00000000bf714000 - 00000000bf7bf000 (ACPI NVS) BIOS-e820: 00000000bf7bf000 - 00000000bf7e7000 (usable) BIOS-e820: 00000000bf7e7000 - 00000000bf7ff000 (ACPI data) BIOS-e820: 00000000bf7ff000 - 00000000bf800000 (usable) BIOS-e820: 00000000bf800000 - 00000000c0000000 (reserved) BIOS-e820: 00000000f8000000 - 00000000fd000000 (reserved) BIOS-e820: 00000000ffe00000 - 0000000100000000 (reserved) BIOS-e820: 0000000100000000 - 0000000140000000 (usable) DMI 2.5 present. last_pfn = 0x140000 max_arch_pfn = 0x100000000 MTRR default type: uncachable MTRR fixed ranges enabled: 00000-9FFFF write-back A0000-BFFFF uncachable C0000-DFFFF write-protect E0000-FFFFF uncachable MTRR variable ranges enabled: 0 base 000000000 mask F80000000 write-back 1 base 080000000 mask FC0000000 write-back 2 base 100000000 mask FC0000000 write-back 3 disabled 4 disabled 5 disabled 6 disabled 7 disabled x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106 e820 update range: 00000000c0000000 - 0000000100000000 (usable) ==> (reserved) last_pfn = 0xbf800 max_arch_pfn = 0x100000000 init_memory_mapping: 0000000000000000-00000000bf800000 0000000000 - 00bf800000 page 2M kernel direct mapping tables up to bf800000 @ 8000-c000 init_memory_mapping: 0000000100000000-0000000140000000 0100000000 - 0140000000 page 2M kernel direct mapping tables up to 140000000 @ a000-10000 RAMDISK: 37c54000 - 37fef547 ACPI: RSDP 00000000000fe020 00024 (v02 INTEL ) ACPI: XSDT 00000000bf7fe120 0006C (v01 INTEL DX58SO 0000084F 01000013) ACPI: FACP 00000000bf7fd000 000F4 (v03 INTEL DX58SO 0000084F MSFT 0100000D) ACPI Warning (tbfadt-0562): Optional field Pm2ControlBlock has zero address or length: 0000000000000450/0 [20090320] ACPI Warning (tbfadt-0612): Invalid length for Pm2ControlBlock: 0, using default 8 [20090320] ACPI: DSDT 00000000bf7f8000 043CE (v02 INTEL DX58SO 0000084F MSFT 0100000D) ACPI: FACS 00000000bf726000 00040 ACPI: APIC 00000000bf7f7000 00138 (v02 INTEL DX58SO 0000084F MSFT 0100000D) ACPI: WDDT 00000000bf7f6000 00040 (v01 INTEL DX58SO 0000084F MSFT 0100000D) ACPI: MCFG 00000000bf7f5000 0003C (v01 INTEL DX58SO 0000084F MSFT 0100000D) ACPI: ASF! 00000000bf7f4000 000AC (v32 INTEL DX58SO 0000084F MSFT 0100000D) ACPI: SSDT 00000000bf7ea000 070AC (v01 INTEL SSDT PM 0000084F MSFT 0100000D) ACPI: DMAR 00000000bf7e7000 00140 (v01 INTEL DX58SO 0000084F MSFT 0100000D) ACPI: WDTT 00000000bf7f2000 0020C (v01 INTEL DX58SO 0000084F MSFT 0100000D) ACPI: ASPT 00000000bf7f3000 00034 (v04 INTEL PerfTune 0000084F MSFT 0100000D) ACPI: Local APIC address 0xfee00000 (8 early reservations) ==> bootmem [0000000000 - 0140000000] #0 [0000000000 - 0000001000] BIOS data page ==> [0000000000 - 0000001000] #1 [0000006000 - 0000008000] TRAMPOLINE ==> [0000006000 - 0000008000] #2 [0000200000 - 0004d99a64] TEXT DATA BSS ==> [0000200000 - 0004d99a64] #3 [0037c54000 - 0037fef547] RAMDISK ==> [0037c54000 - 0037fef547] #4 [000009cc00 - 0000100000] BIOS reserved ==> [000009cc00 - 0000100000] #5 [0004d9a000 - 0004d9a15e] BRK ==> [0004d9a000 - 0004d9a15e] #6 [0000008000 - 000000a000] PGTABLE ==> [0000008000 - 000000a000] #7 [000000a000 - 000000b000] PGTABLE ==> [000000a000 - 000000b000] [ffffe20000000000-ffffe200045fffff] PMD -> [ffff880028200000-ffff88002c7fffff] on node 0 Zone PFN ranges: DMA 0x00000000 -> 0x00001000 DMA32 0x00001000 -> 0x00100000 Normal 0x00100000 -> 0x00140000 Movable zone start PFN for each node early_node_map[7] active PFN ranges 0: 0x00000000 -> 0x0000009c 0: 0x00000100 -> 0x000bcdc2 0: 0x000bcfda -> 0x000bf6bd 0: 0x000bf6bf -> 0x000bf714 0: 0x000bf7bf -> 0x000bf7e7 0: 0x000bf7ff -> 0x000bf800 0: 0x00100000 -> 0x00140000 On node 0 totalpages: 1045695 DMA zone: 56 pages used for memmap DMA zone: 105 pages reserved DMA zone: 3835 pages, LIFO batch:0 DMA32 zone: 14280 pages used for memmap DMA32 zone: 765275 pages, LIFO batch:31 Normal zone: 3584 pages used for memmap Normal zone: 258560 pages, LIFO batch:31 ACPI: PM-Timer IO Port: 0x408 ACPI: Local APIC address 0xfee00000 ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled) ACPI: LAPIC (acpi_id[0x01] lapic_id[0x02] enabled) ACPI: LAPIC (acpi_id[0x02] lapic_id[0x04] enabled) ACPI: LAPIC (acpi_id[0x03] lapic_id[0x06] enabled) ACPI: LAPIC (acpi_id[0x04] lapic_id[0x01] enabled) ACPI: LAPIC (acpi_id[0x05] lapic_id[0x03] enabled) ACPI: LAPIC (acpi_id[0x06] lapic_id[0x05] enabled) ACPI: LAPIC (acpi_id[0x07] lapic_id[0x07] enabled) ACPI: LAPIC (acpi_id[0x01] lapic_id[0x10] disabled) ACPI: LAPIC (acpi_id[0x03] lapic_id[0x12] disabled) ACPI: LAPIC (acpi_id[0x05] lapic_id[0x14] disabled) ACPI: LAPIC (acpi_id[0x07] lapic_id[0x16] disabled) ACPI: LAPIC (acpi_id[0x09] lapic_id[0x11] disabled) ACPI: LAPIC (acpi_id[0x0b] lapic_id[0x13] disabled) ACPI: LAPIC (acpi_id[0x0d] lapic_id[0x15] disabled) ACPI: LAPIC (acpi_id[0x0f] lapic_id[0x17] disabled) ACPI: LAPIC_NMI (acpi_id[0x00] high level lint[0x1]) ACPI: LAPIC_NMI (acpi_id[0x01] high level lint[0x1]) ACPI: LAPIC_NMI (acpi_id[0x02] high level lint[0x1]) ACPI: LAPIC_NMI (acpi_id[0x03] high level lint[0x1]) ACPI: LAPIC_NMI (acpi_id[0x04] high level lint[0x1]) ACPI: LAPIC_NMI (acpi_id[0x05] high level lint[0x1]) ACPI: LAPIC_NMI (acpi_id[0x06] high level lint[0x1]) ACPI: LAPIC_NMI (acpi_id[0x07] high level lint[0x1]) ACPI: LAPIC_NMI (acpi_id[0x08] high level lint[0x1]) ACPI: LAPIC_NMI (acpi_id[0x09] high level lint[0x1]) ACPI: LAPIC_NMI (acpi_id[0x0a] high level lint[0x1]) ACPI: LAPIC_NMI (acpi_id[0x0b] high level lint[0x1]) ACPI: LAPIC_NMI (acpi_id[0x0c] high level lint[0x1]) ACPI: LAPIC_NMI (acpi_id[0x0d] high level lint[0x1]) ACPI: LAPIC_NMI (acpi_id[0x0e] high level lint[0x1]) ACPI: LAPIC_NMI (acpi_id[0x0f] high level lint[0x1]) ACPI: IOAPIC (id[0x08] address[0xfec00000] gsi_base[0]) IOAPIC[0]: apic_id 8, version 0, address 0xfec00000, GSI 0-23 ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl) ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level) ACPI: IRQ0 used by override. ACPI: IRQ2 used by override. ACPI: IRQ9 used by override. Using ACPI (MADT) for SMP configuration information SMP: Allowing 16 CPUs, 8 hotplug CPUs nr_irqs_gsi: 24 Allocating PCI resources starting at c4000000 (gap: c0000000:38000000) NR_CPUS:4096 nr_cpumask_bits:16 nr_cpu_ids:16 nr_node_ids:1 PERCPU: Embedded 25 pages at ffff88002c800000, static data 70816 bytes Built 1 zonelists in Zone order, mobility grouping on. Total pages: 1027670 Kernel command line: ro root=UUID=f12abe85-327f-4e7d-9b06-5bb07624196d nogui Initializing CPU#0 NR_IRQS:4352 PID hash table entries: 4096 (order: 12, 32768 bytes) Extended CMOS year: 2000 Fast TSC calibration using PIT Detected 3200.122 MHz processor. Console: colour VGA+ 80x25 console [tty0] enabled Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes) Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes) Checking aperture... No AGP bridge found PCI-DMA: Using software bounce buffering for IO (SWIOTLB) Placing 64MB software IO TLB between ffff880020000000 - ffff880024000000 software IO TLB at phys 0x20000000 - 0x24000000 Memory: 3946412k/5242880k available (3281k kernel code, 1060100k absent, 235492k reserved, 2494k data, 404k init) Calibrating delay loop (skipped), value calculated using timer frequency.. 6400.24 BogoMIPS (lpj=12800488) Mount-cache hash table entries: 256 CPU: Physical Processor ID: 0 CPU: Processor Core ID: 0 CPU: L1 I cache: 32K, L1 D cache: 32K CPU: L2 cache: 256K CPU: L3 cache: 8192K CPU0: Thermal monitoring enabled (TM1) CPU 0 MCA banks CMCI:2 CMCI:3 CMCI:5 CMCI:6 CMCI:8 using mwait in idle threads. ACPI: Core revision 20090320 Setting APIC routing to flat ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1 CPU0: Genuine Intel(R) CPU 000 @ 3.20GHz stepping 04 Booting processor 1 APIC 0x2 ip 0x6000 Initializing CPU#1 Calibrating delay using timer specific routine.. 6400.36 BogoMIPS (lpj=12800729) CPU: Physical Processor ID: 0 CPU: Processor Core ID: 1 CPU: L1 I cache: 32K, L1 D cache: 32K CPU: L2 cache: 256K CPU: L3 cache: 8192K CPU1: Thermal monitoring enabled (TM1) CPU 1 MCA banks CMCI:2 CMCI:3 CMCI:5 SHD:6 SHD:8 x86 PAT enabled: cpu 1, old 0x7040600070406, new 0x7010600070106 CPU1: Genuine Intel(R) CPU 000 @ 3.20GHz stepping 04 Skipping synchronization checks as TSC is reliable. Booting processor 2 APIC 0x4 ip 0x6000 Initializing CPU#2 Calibrating delay using timer specific routine.. 6400.36 BogoMIPS (lpj=12800733) CPU: Physical Processor ID: 0 CPU: Processor Core ID: 2 CPU: L1 I cache: 32K, L1 D cache: 32K CPU: L2 cache: 256K CPU: L3 cache: 8192K CPU2: Thermal monitoring enabled (TM1) CPU 2 MCA banks CMCI:2 CMCI:3 CMCI:5 SHD:6 SHD:8 x86 PAT enabled: cpu 2, old 0x7040600070406, new 0x7010600070106 CPU2: Genuine Intel(R) CPU 000 @ 3.20GHz stepping 04 Skipping synchronization checks as TSC is reliable. Booting processor 3 APIC 0x6 ip 0x6000 Initializing CPU#3 Calibrating delay using timer specific routine.. 6400.36 BogoMIPS (lpj=12800726) CPU: Physical Processor ID: 0 CPU: Processor Core ID: 3 CPU: L1 I cache: 32K, L1 D cache: 32K CPU: L2 cache: 256K CPU: L3 cache: 8192K CPU3: Thermal monitoring enabled (TM1) CPU 3 MCA banks CMCI:2 CMCI:3 CMCI:5 SHD:6 SHD:8 x86 PAT enabled: cpu 3, old 0x7040600070406, new 0x7010600070106 CPU3: Genuine Intel(R) CPU 000 @ 3.20GHz stepping 04 Skipping synchronization checks as TSC is reliable. Booting processor 4 APIC 0x1 ip 0x6000 Initializing CPU#4 Calibrating delay using timer specific routine.. 6400.36 BogoMIPS (lpj=12800724) CPU: Physical Processor ID: 0 CPU: Processor Core ID: 0 CPU: L1 I cache: 32K, L1 D cache: 32K CPU: L2 cache: 256K CPU: L3 cache: 8192K CPU4: Thermal monitoring enabled (TM1) CPU 4 MCA banks SHD:2 SHD:3 SHD:5 SHD:6 SHD:8 x86 PAT enabled: cpu 4, old 0x7040600070406, new 0x7010600070106 CPU4: Genuine Intel(R) CPU 000 @ 3.20GHz stepping 04 Skipping synchronization checks as TSC is reliable. Booting processor 5 APIC 0x3 ip 0x6000 Initializing CPU#5 Calibrating delay using timer specific routine.. 6400.36 BogoMIPS (lpj=12800736) CPU: Physical Processor ID: 0 CPU: Processor Core ID: 1 CPU: L1 I cache: 32K, L1 D cache: 32K CPU: L2 cache: 256K CPU: L3 cache: 8192K CPU5: Thermal monitoring enabled (TM1) CPU 5 MCA banks SHD:2 SHD:3 SHD:5 SHD:6 SHD:8 x86 PAT enabled: cpu 5, old 0x7040600070406, new 0x7010600070106 CPU5: Genuine Intel(R) CPU 000 @ 3.20GHz stepping 04 Skipping synchronization checks as TSC is reliable. Booting processor 6 APIC 0x5 ip 0x6000 Initializing CPU#6 Calibrating delay using timer specific routine.. 6400.36 BogoMIPS (lpj=12800728) CPU: Physical Processor ID: 0 CPU: Processor Core ID: 2 CPU: L1 I cache: 32K, L1 D cache: 32K CPU: L2 cache: 256K CPU: L3 cache: 8192K CPU6: Thermal monitoring enabled (TM1) CPU 6 MCA banks SHD:2 SHD:3 SHD:5 SHD:6 SHD:8 x86 PAT enabled: cpu 6, old 0x7040600070406, new 0x7010600070106 CPU6: Genuine Intel(R) CPU 000 @ 3.20GHz stepping 04 Skipping synchronization checks as TSC is reliable. Booting processor 7 APIC 0x7 ip 0x6000 Initializing CPU#7 Calibrating delay using timer specific routine.. 6400.36 BogoMIPS (lpj=12800726) CPU: Physical Processor ID: 0 CPU: Processor Core ID: 3 CPU: L1 I cache: 32K, L1 D cache: 32K CPU: L2 cache: 256K CPU: L3 cache: 8192K CPU7: Thermal monitoring enabled (TM1) CPU 7 MCA banks SHD:2 SHD:3 SHD:5 SHD:6 SHD:8 x86 PAT enabled: cpu 7, old 0x7040600070406, new 0x7010600070106 CPU7: Genuine Intel(R) CPU 000 @ 3.20GHz stepping 04 Skipping synchronization checks as TSC is reliable. Brought up 8 CPUs Total of 8 processors activated (51202.79 BogoMIPS). net_namespace: 1720 bytes NET: Registered protocol family 16 ACPI FADT declares the system doesn't support PCIe ASPM, so disable it ACPI: bus type pci registered dca service started, version 1.8 PCI: MCFG configuration 0: base f8000000 segment 0 buses 0 - 63 PCI: MCFG area at f8000000 reserved in E820 PCI: Using MMCONFIG at f8000000 - fbffffff PCI: Using configuration type 1 for base access bio: create slab <bio-0> at 0 ACPI: EC: Look up EC in DSDT ACPI: Interpreter enabled ACPI: (supports S0 S1 S3 S5) ACPI: Using IOAPIC for interrupt routing ACPI: No dock devices found. ACPI: PCI Root Bridge [PCI0] (0000:00) pci 0000:00:01.0: PME# supported from D0 D3hot D3cold pci 0000:00:01.0: PME# disabled pci 0000:00:03.0: PME# supported from D0 D3hot D3cold pci 0000:00:03.0: PME# disabled pci 0000:00:07.0: PME# supported from D0 D3hot D3cold pci 0000:00:07.0: PME# disabled pci 0000:00:19.0: reg 10 32bit mmio: [0xc7200000-0xc721ffff] pci 0000:00:19.0: reg 14 32bit mmio: [0xc7223000-0xc7223fff] pci 0000:00:19.0: reg 18 io port: [0x5100-0x511f] pci 0000:00:19.0: PME# supported from D0 D3hot D3cold pci 0000:00:19.0: PME# disabled pci 0000:00:1a.0: reg 20 io port: [0x50e0-0x50ff] pci 0000:00:1a.1: reg 20 io port: [0x50c0-0x50df] pci 0000:00:1a.2: reg 20 io port: [0x50a0-0x50bf] pci 0000:00:1a.7: reg 10 32bit mmio: [0xc7222000-0xc72223ff] pci 0000:00:1a.7: PME# supported from D0 D3hot D3cold pci 0000:00:1a.7: PME# disabled pci 0000:00:1b.0: reg 10 64bit mmio: [0xf0000000-0xf0003fff] pci 0000:00:1b.0: PME# supported from D0 D3hot D3cold pci 0000:00:1b.0: PME# disabled pci 0000:00:1c.0: PME# supported from D0 D3hot D3cold pci 0000:00:1c.0: PME# disabled pci 0000:00:1c.1: PME# supported from D0 D3hot D3cold pci 0000:00:1c.1: PME# disabled pci 0000:00:1c.4: PME# supported from D0 D3hot D3cold pci 0000:00:1c.4: PME# disabled pci 0000:00:1d.0: reg 20 io port: [0x5080-0x509f] pci 0000:00:1d.1: reg 20 io port: [0x5060-0x507f] pci 0000:00:1d.2: reg 20 io port: [0x5040-0x505f] pci 0000:00:1d.7: reg 10 32bit mmio: [0xc7221000-0xc72213ff] pci 0000:00:1d.7: PME# supported from D0 D3hot D3cold pci 0000:00:1d.7: PME# disabled pci 0000:00:1f.0: Force enabled HPET at 0xfed00000 pci 0000:00:1f.0: quirk: region 0400-047f claimed by ICH6 ACPI/GPIO/TCO pci 0000:00:1f.0: quirk: region 0500-053f claimed by ICH6 GPIO pci 0000:00:1f.0: ICH7 LPC Generic IO decode 1 PIO at 0680 (mask 007f) pci 0000:00:1f.0: ICH7 LPC Generic IO decode 2 PIO at 0810 (mask 007f) pci 0000:00:1f.2: reg 10 io port: [0x5128-0x512f] pci 0000:00:1f.2: reg 14 io port: [0x5134-0x5137] pci 0000:00:1f.2: reg 18 io port: [0x5120-0x5127] pci 0000:00:1f.2: reg 1c io port: [0x5130-0x5133] pci 0000:00:1f.2: reg 20 io port: [0x5020-0x503f] pci 0000:00:1f.2: reg 24 32bit mmio: [0xc7220000-0xc72207ff] pci 0000:00:1f.2: PME# supported from D3hot pci 0000:00:1f.2: PME# disabled pci 0000:00:1f.3: reg 10 64bit mmio: [0xf0004000-0xf00040ff] pci 0000:00:1f.3: reg 20 io port: [0x5000-0x501f] pci 0000:02:00.0: PME# supported from D0 D3hot D3cold pci 0000:02:00.0: PME# disabled pci 0000:00:03.0: bridge io port: [0x3000-0x4fff] pci 0000:00:03.0: bridge 32bit mmio: [0xc0000000-0xc6ffffff] pci 0000:00:03.0: bridge 64bit mmio pref: [0xd0000000-0xefffffff] pci 0000:03:00.0: PME# supported from D0 D3hot D3cold pci 0000:03:00.0: PME# disabled pci 0000:03:02.0: PME# supported from D0 D3hot D3cold pci 0000:03:02.0: PME# disabled pci 0000:02:00.0: bridge io port: [0x3000-0x4fff] pci 0000:02:00.0: bridge 32bit mmio: [0xc0000000-0xc6ffffff] pci 0000:02:00.0: bridge 64bit mmio pref: [0xd0000000-0xefffffff] pci 0000:04:00.0: reg 10 32bit mmio: [0xc6000000-0xc6ffffff] pci 0000:04:00.0: reg 14 64bit mmio: [0xe0000000-0xefffffff] pci 0000:04:00.0: reg 1c 64bit mmio: [0xc4000000-0xc5ffffff] pci 0000:04:00.0: reg 24 io port: [0x4000-0x407f] pci 0000:04:00.0: reg 30 32bit mmio: [0xfffe0000-0xffffffff] pci 0000:03:00.0: bridge io port: [0x4000-0x4fff] pci 0000:03:00.0: bridge 32bit mmio: [0xc4000000-0xc6ffffff] pci 0000:03:00.0: bridge 64bit mmio pref: [0xe0000000-0xefffffff] pci 0000:05:00.0: reg 10 32bit mmio: [0xc2000000-0xc2ffffff] pci 0000:05:00.0: reg 14 64bit mmio: [0xd0000000-0xdfffffff] pci 0000:05:00.0: reg 1c 64bit mmio: [0xc0000000-0xc1ffffff] pci 0000:05:00.0: reg 24 io port: [0x3000-0x307f] pci 0000:05:00.0: reg 30 32bit mmio: [0xfffe0000-0xffffffff] pci 0000:03:02.0: bridge io port: [0x3000-0x3fff] pci 0000:03:02.0: bridge 32bit mmio: [0xc0000000-0xc2ffffff] pci 0000:03:02.0: bridge 64bit mmio pref: [0xd0000000-0xdfffffff] pci 0000:09:00.0: reg 10 io port: [0x2018-0x201f] pci 0000:09:00.0: reg 14 io port: [0x2024-0x2027] pci 0000:09:00.0: reg 18 io port: [0x2010-0x2017] pci 0000:09:00.0: reg 1c io port: [0x2020-0x2023] pci 0000:09:00.0: reg 20 io port: [0x2000-0x200f] pci 0000:09:00.0: reg 24 32bit mmio: [0xc7100000-0xc71003ff] pci 0000:09:00.0: supports D1 pci 0000:09:00.0: PME# supported from D0 D1 D3hot pci 0000:09:00.0: PME# disabled pci 0000:00:1c.4: bridge io port: [0x2000-0x2fff] pci 0000:00:1c.4: bridge 32bit mmio: [0xc7100000-0xc71fffff] pci 0000:0a:02.0: reg 10 32bit mmio: [0xc7020000-0xc703ffff] pci 0000:0a:02.0: reg 14 32bit mmio: [0xc7000000-0xc701ffff] pci 0000:0a:02.0: reg 18 io port: [0x1000-0x103f] pci 0000:0a:02.0: reg 30 32bit mmio: [0xfffe0000-0xffffffff] pci 0000:0a:02.0: PME# supported from D0 D3hot D3cold pci 0000:0a:02.0: PME# disabled pci 0000:0a:03.0: reg 10 32bit mmio: [0xc7044000-0xc70447ff] pci 0000:0a:03.0: reg 14 32bit mmio: [0xc7040000-0xc7043fff] pci 0000:0a:03.0: supports D1 D2 pci 0000:0a:03.0: PME# supported from D0 D1 D2 D3hot pci 0000:0a:03.0: PME# disabled pci 0000:00:1e.0: transparent bridge pci 0000:00:1e.0: bridge io port: [0x1000-0x1fff] pci 0000:00:1e.0: bridge 32bit mmio: [0xc7000000-0xc70fffff] pci_bus 0000:00: on NUMA node 0 ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.P32_._PRT] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PEG1._PRT] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PEG3._PRT] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PEG7._PRT] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PEX0._PRT] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PEX1._PRT] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PEX4._PRT] ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 7 9 10 *11 12 14 15) ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 7 9 10 *11 12 14 15) ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 6 7 9 *10 11 12 14 15) ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 7 9 10 *11 12 14 15) ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 6 7 9 *10 11 12 14 15) ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 *5 6 7 9 10 11 12 14 15) ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 *5 6 7 9 10 11 12 14 15) ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 6 7 9 *10 11 12 14 15) usbcore: registered new interface driver usbfs usbcore: registered new interface driver hub usbcore: registered new device driver usb PCI: Using ACPI for IRQ routing DMAR:Host address width 39 DMAR:DRHD (flags: 0x00000000)base: 0x00000000fe711000 DMAR:DRHD (flags: 0x00000001)base: 0x00000000fe710000 DMAR:RMRR base: 0x00000000000e9000 end: 0x00000000000e9fff DMAR:RMRR base: 0x00000000000ea000 end: 0x00000000000eafff DMAR:RMRR base: 0x00000000000eb000 end: 0x00000000000ebfff DMAR:RMRR base: 0x00000000000e6000 end: 0x00000000000e6fff DMAR:RMRR base: 0x00000000000e7000 end: 0x00000000000e7fff DMAR:RMRR base: 0x00000000000e8000 end: 0x00000000000e8fff DMAR:RMRR base: 0x00000000000ec000 end: 0x00000000000eefff hpet clockevent registered HPET: 4 timers in total, 0 timers will be used for per-cpu timer hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0, 0 hpet0: 4 comparators, 64-bit 14.318180 MHz counter Switched to high resolution mode on CPU 0 Switched to high resolution mode on CPU 2 Switched to high resolution mode on CPU 3 Switched to high resolution mode on CPU 1 Switched to high resolution mode on CPU 5 Switched to high resolution mode on CPU 6 Switched to high resolution mode on CPU 7 Switched to high resolution mode on CPU 4 pnp: PnP ACPI init ACPI: bus type pnp registered pnp: PnP ACPI: found 8 devices ACPI: ACPI bus type pnp unregistered system 00:05: ioport range 0x500-0x53f has been reserved system 00:05: ioport range 0x400-0x47f has been reserved system 00:05: ioport range 0x680-0x6ff has been reserved pci 0000:00:01.0: PCI bridge, secondary bus 0000:01 pci 0000:00:01.0: IO window: disabled pci 0000:00:01.0: MEM window: disabled pci 0000:00:01.0: PREFETCH window: disabled pci 0000:04:00.0: BAR 6: can't allocate mem resource [0xf0000000-0xefffffff] pci 0000:03:00.0: PCI bridge, secondary bus 0000:04 pci 0000:03:00.0: IO window: 0x4000-0x4fff pci 0000:03:00.0: MEM window: 0xc4000000-0xc6ffffff pci 0000:03:00.0: PREFETCH window: 0x000000e0000000-0x000000efffffff pci 0000:05:00.0: BAR 6: can't allocate mem resource [0xe0000000-0xdfffffff] pci 0000:03:02.0: PCI bridge, secondary bus 0000:05 pci 0000:03:02.0: IO window: 0x3000-0x3fff pci 0000:03:02.0: MEM window: 0xc0000000-0xc2ffffff pci 0000:03:02.0: PREFETCH window: 0x000000d0000000-0x000000dfffffff pci 0000:02:00.0: PCI bridge, secondary bus 0000:03 pci 0000:02:00.0: IO window: 0x3000-0x4fff pci 0000:02:00.0: MEM window: 0xc0000000-0xc6ffffff pci 0000:02:00.0: PREFETCH window: 0x000000d0000000-0x000000efffffff pci 0000:00:03.0: PCI bridge, secondary bus 0000:02 pci 0000:00:03.0: IO window: 0x3000-0x4fff pci 0000:00:03.0: MEM window: 0xc0000000-0xc6ffffff pci 0000:00:03.0: PREFETCH window: 0x000000d0000000-0x000000efffffff pci 0000:00:07.0: PCI bridge, secondary bus 0000:06 pci 0000:00:07.0: IO window: disabled pci 0000:00:07.0: MEM window: disabled pci 0000:00:07.0: PREFETCH window: disabled pci 0000:00:1c.0: PCI bridge, secondary bus 0000:07 pci 0000:00:1c.0: IO window: disabled pci 0000:00:1c.0: MEM window: disabled pci 0000:00:1c.0: PREFETCH window: disabled pci 0000:00:1c.1: PCI bridge, secondary bus 0000:08 pci 0000:00:1c.1: IO window: disabled pci 0000:00:1c.1: MEM window: disabled pci 0000:00:1c.1: PREFETCH window: disabled pci 0000:00:1c.4: PCI bridge, secondary bus 0000:09 pci 0000:00:1c.4: IO window: 0x2000-0x2fff pci 0000:00:1c.4: MEM window: 0xc7100000-0xc71fffff pci 0000:00:1c.4: PREFETCH window: disabled pci 0000:00:1e.0: PCI bridge, secondary bus 0000:0a pci 0000:00:1e.0: IO window: 0x1000-0x1fff pci 0000:00:1e.0: MEM window: 0xc7000000-0xc70fffff pci 0000:00:1e.0: PREFETCH window: 0x000000c7300000-0x000000c73fffff pci 0000:00:01.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16 pci 0000:00:01.0: setting latency timer to 64 pci 0000:00:03.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16 pci 0000:00:03.0: setting latency timer to 64 pci 0000:02:00.0: setting latency timer to 64 pci 0000:03:00.0: setting latency timer to 64 pci 0000:03:02.0: setting latency timer to 64 pci 0000:00:07.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16 pci 0000:00:07.0: setting latency timer to 64 pci 0000:00:1c.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17 pci 0000:00:1c.0: setting latency timer to 64 pci 0000:00:1c.1: PCI INT B -> GSI 16 (level, low) -> IRQ 16 pci 0000:00:1c.1: setting latency timer to 64 pci 0000:00:1c.4: PCI INT A -> GSI 17 (level, low) -> IRQ 17 pci 0000:00:1c.4: setting latency timer to 64 pci 0000:00:1e.0: setting latency timer to 64 pci_bus 0000:00: resource 0 io: [0x00-0xffff] pci_bus 0000:00: resource 1 mem: [0x000000-0xffffffffffffffff] pci_bus 0000:01: resource 0 mem: [0x0-0x0] pci_bus 0000:01: resource 1 mem: [0x0-0x0] pci_bus 0000:01: resource 2 mem: [0x0-0x0] pci_bus 0000:01: resource 3 mem: [0x0-0x0] pci_bus 0000:02: resource 0 io: [0x3000-0x4fff] pci_bus 0000:02: resource 1 mem: [0xc0000000-0xc6ffffff] pci_bus 0000:02: resource 2 mem: [0xd0000000-0xefffffff] pci_bus 0000:02: resource 3 mem: [0x0-0x0] pci_bus 0000:03: resource 0 io: [0x3000-0x4fff] pci_bus 0000:03: resource 1 mem: [0xc0000000-0xc6ffffff] pci_bus 0000:03: resource 2 mem: [0xd0000000-0xefffffff] pci_bus 0000:03: resource 3 mem: [0x0-0x0] pci_bus 0000:04: resource 0 io: [0x4000-0x4fff] pci_bus 0000:04: resource 1 mem: [0xc4000000-0xc6ffffff] pci_bus 0000:04: resource 2 mem: [0xe0000000-0xefffffff] pci_bus 0000:04: resource 3 mem: [0x0-0x0] pci_bus 0000:05: resource 0 io: [0x3000-0x3fff] pci_bus 0000:05: resource 1 mem: [0xc0000000-0xc2ffffff] pci_bus 0000:05: resource 2 mem: [0xd0000000-0xdfffffff] pci_bus 0000:05: resource 3 mem: [0x0-0x0] pci_bus 0000:06: resource 0 mem: [0x0-0x0] pci_bus 0000:06: resource 1 mem: [0x0-0x0] pci_bus 0000:06: resource 2 mem: [0x0-0x0] pci_bus 0000:06: resource 3 mem: [0x0-0x0] pci_bus 0000:07: resource 0 mem: [0x0-0x0] pci_bus 0000:07: resource 1 mem: [0x0-0x0] pci_bus 0000:07: resource 2 mem: [0x0-0x0] pci_bus 0000:07: resource 3 mem: [0x0-0x0] pci_bus 0000:08: resource 0 mem: [0x0-0x0] pci_bus 0000:08: resource 1 mem: [0x0-0x0] pci_bus 0000:08: resource 2 mem: [0x0-0x0] pci_bus 0000:08: resource 3 mem: [0x0-0x0] pci_bus 0000:09: resource 0 io: [0x2000-0x2fff] pci_bus 0000:09: resource 1 mem: [0xc7100000-0xc71fffff] pci_bus 0000:09: resource 2 mem: [0x0-0x0] pci_bus 0000:09: resource 3 mem: [0x0-0x0] pci_bus 0000:0a: resource 0 io: [0x1000-0x1fff] pci_bus 0000:0a: resource 1 mem: [0xc7000000-0xc70fffff] pci_bus 0000:0a: resource 2 mem: [0xc7300000-0xc73fffff] pci_bus 0000:0a: resource 3 io: [0x00-0xffff] pci_bus 0000:0a: resource 4 mem: [0x000000-0xffffffffffffffff] NET: Registered protocol family 2 IP route cache hash table entries: 131072 (order: 8, 1048576 bytes) TCP established hash table entries: 262144 (order: 10, 4194304 bytes) TCP bind hash table entries: 65536 (order: 8, 1048576 bytes) TCP: Hash tables configured (established 262144 bind 65536) TCP reno registered NET: Registered protocol family 1 checking if image is initramfs... rootfs image is initramfs; unpacking... Freeing initrd memory: 3693k freed Intel AES-NI instructions are not detected. audit: initializing netlink socket (disabled) type=2000 audit(1240390430.888:1): initialized HugeTLB registered 2 MB page size, pre-allocated 0 pages msgmni has been set to 7716 alg: No test for stdrng (krng) Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254) io scheduler noop registered io scheduler anticipatory registered (default) io scheduler deadline registered io scheduler cfq registered pci 0000:05:00.0: Boot video device pcieport-driver 0000:00:01.0: irq 24 for MSI/MSI-X pcieport-driver 0000:00:01.0: setting latency timer to 64 pcieport-driver 0000:00:03.0: irq 25 for MSI/MSI-X pcieport-driver 0000:00:03.0: setting latency timer to 64 pcieport-driver 0000:00:07.0: irq 26 for MSI/MSI-X pcieport-driver 0000:00:07.0: setting latency timer to 64 pcieport-driver 0000:00:1c.0: irq 27 for MSI/MSI-X pcieport-driver 0000:00:1c.0: setting latency timer to 64 pcieport-driver 0000:00:1c.1: irq 28 for MSI/MSI-X pcieport-driver 0000:00:1c.1: setting latency timer to 64 pcieport-driver 0000:00:1c.4: irq 29 for MSI/MSI-X pcieport-driver 0000:00:1c.4: setting latency timer to 64 aer 0000:00:01.0:pcie02: AER service couldn't init device: no _OSC support aer 0000:00:03.0:pcie02: AER service couldn't init device: no _OSC support aer 0000:00:07.0:pcie02: AER service couldn't init device: no _OSC support pci_hotplug: PCI Hot Plug PCI Core version: 0.5 input: Power Button (FF) as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input0 ACPI: Power Button (FF) [PWRF] input: Sleep Button (CM) as /devices/LNXSYSTM:00/device:00/PNP0C0E:00/input/input1 ACPI: Sleep Button (CM) [SLPB] Monitor-Mwait will be used to enter C-1 state Monitor-Mwait will be used to enter C-3 state ACPI: CPU0 (power states: C1[C1] C2[C3]) processor ACPI_CPU:00: registered as cooling_device0 ACPI: Processor [CPU0] (supports 8 throttling states) ACPI: CPU1 (power states: C1[C1] C2[C3]) processor ACPI_CPU:01: registered as cooling_device1 ACPI: Processor [CPU1] (supports 8 throttling states) ACPI: CPU2 (power states: C1[C1] C2[C3]) processor ACPI_CPU:02: registered as cooling_device2 ACPI: Processor [CPU2] (supports 8 throttling states) ACPI: CPU3 (power states: C1[C1] C2[C3]) processor ACPI_CPU:03: registered as cooling_device3 ACPI: Processor [CPU3] (supports 8 throttling states) ACPI: CPU4 (power states: C1[C1] C2[C3]) processor ACPI_CPU:04: registered as cooling_device4 ACPI: Processor [CPU4] (supports 8 throttling states) ACPI: CPU5 (power states: C1[C1] C2[C3]) processor ACPI_CPU:05: registered as cooling_device5 ACPI: Processor [CPU5] (supports 8 throttling states) ACPI: CPU6 (power states: C1[C1] C2[C3]) processor ACPI_CPU:06: registered as cooling_device6 ACPI: Processor [CPU6] (supports 8 throttling states) ACPI: CPU7 (power states: C1[C1] C2[C3]) processor ACPI_CPU:07: registered as cooling_device7 ACPI: Processor [CPU7] (supports 8 throttling states) Linux agpgart interface v0.103 Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a NS16550A brd: module loaded usbcore: registered new interface driver libusual PNP: No PS/2 controller found. Probing ports directly. serio: i8042 KBD port at 0x60,0x64 irq 1 serio: i8042 AUX port at 0x60,0x64 irq 12 mice: PS/2 mouse device common for all mice input: PC Speaker as /devices/platform/pcspkr/input/input2 cpuidle: using governor ladder usbcore: registered new interface driver hiddev usbcore: registered new interface driver usbhid usbhid: v2.6:USB HID core driver Advanced Linux Sound Architecture Driver Version 1.0.19. ALSA device list: No soundcards found. TCP cubic registered NET: Registered protocol family 10 lo: Disabled Privacy Extensions Freeing unused kernel memory: 404k freed Write protecting the kernel read-only data: 4276k ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver ehci_hcd 0000:00:1a.7: PCI INT C -> GSI 18 (level, low) -> IRQ 18 ehci_hcd 0000:00:1a.7: setting latency timer to 64 ehci_hcd 0000:00:1a.7: EHCI Host Controller ehci_hcd 0000:00:1a.7: new USB bus registered, assigned bus number 1 ehci_hcd 0000:00:1a.7: debug port 1 ehci_hcd 0000:00:1a.7: cache line size of 32 is not supported ehci_hcd 0000:00:1a.7: irq 18, io mem 0xc7222000 ehci_hcd 0000:00:1a.7: USB 2.0 started, EHCI 1.00 usb usb1: New USB device found, idVendor=1d6b, idProduct=0002 usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 usb usb1: Product: EHCI Host Controller usb usb1: Manufacturer: Linux 2.6.30-rc2-scsihost1-00368-gaefe647-dirty ehci_hcd usb usb1: SerialNumber: 0000:00:1a.7 usb usb1: configuration #1 chosen from 1 choice hub 1-0:1.0: USB hub found hub 1-0:1.0: 6 ports detected ehci_hcd 0000:00:1d.7: PCI INT A -> GSI 23 (level, low) -> IRQ 23 ehci_hcd 0000:00:1d.7: setting latency timer to 64 ehci_hcd 0000:00:1d.7: EHCI Host Controller ehci_hcd 0000:00:1d.7: new USB bus registered, assigned bus number 2 ehci_hcd 0000:00:1d.7: debug port 1 ehci_hcd 0000:00:1d.7: cache line size of 32 is not supported ehci_hcd 0000:00:1d.7: irq 23, io mem 0xc7221000 ehci_hcd 0000:00:1d.7: USB 2.0 started, EHCI 1.00 usb usb2: New USB device found, idVendor=1d6b, idProduct=0002 usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1 usb usb2: Product: EHCI Host Controller usb usb2: Manufacturer: Linux 2.6.30-rc2-scsihost1-00368-gaefe647-dirty ehci_hcd usb usb2: SerialNumber: 0000:00:1d.7 usb usb2: configuration #1 chosen from 1 choice hub 2-0:1.0: USB hub found hub 2-0:1.0: 6 ports detected uhci_hcd: USB Universal Host Controller Interface driver uhci_hcd 0000:00:1a.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16 uhci_hcd 0000:00:1a.0: setting latency timer to 64 uhci_hcd 0000:00:1a.0: UHCI Host Controller uhci_hcd 0000:00:1a.0: new USB bus registered, assigned bus number 3 uhci_hcd 0000:00:1a.0: irq 16, io base 0x000050e0 usb usb3: New USB device found, idVendor=1d6b, idProduct=0001 usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1 usb usb3: Product: UHCI Host Controller usb usb3: Manufacturer: Linux 2.6.30-rc2-scsihost1-00368-gaefe647-dirty uhci_hcd usb usb3: SerialNumber: 0000:00:1a.0 usb usb3: configuration #1 chosen from 1 choice hub 3-0:1.0: USB hub found hub 3-0:1.0: 2 ports detected uhci_hcd 0000:00:1a.1: PCI INT B -> GSI 21 (level, low) -> IRQ 21 uhci_hcd 0000:00:1a.1: setting latency timer to 64 uhci_hcd 0000:00:1a.1: UHCI Host Controller uhci_hcd 0000:00:1a.1: new USB bus registered, assigned bus number 4 uhci_hcd 0000:00:1a.1: irq 21, io base 0x000050c0 usb usb4: New USB device found, idVendor=1d6b, idProduct=0001 usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1 usb usb4: Product: UHCI Host Controller usb usb4: Manufacturer: Linux 2.6.30-rc2-scsihost1-00368-gaefe647-dirty uhci_hcd usb usb4: SerialNumber: 0000:00:1a.1 usb usb4: configuration #1 chosen from 1 choice hub 4-0:1.0: USB hub found hub 4-0:1.0: 2 ports detected uhci_hcd 0000:00:1a.2: PCI INT D -> GSI 19 (level, low) -> IRQ 19 uhci_hcd 0000:00:1a.2: setting latency timer to 64 uhci_hcd 0000:00:1a.2: UHCI Host Controller uhci_hcd 0000:00:1a.2: new USB bus registered, assigned bus number 5 uhci_hcd 0000:00:1a.2: irq 19, io base 0x000050a0 usb usb5: New USB device found, idVendor=1d6b, idProduct=0001 usb usb5: New USB device strings: Mfr=3, Product=2, SerialNumber=1 usb usb5: Product: UHCI Host Controller usb usb5: Manufacturer: Linux 2.6.30-rc2-scsihost1-00368-gaefe647-dirty uhci_hcd usb usb5: SerialNumber: 0000:00:1a.2 usb usb5: configuration #1 chosen from 1 choice hub 5-0:1.0: USB hub found hub 5-0:1.0: 2 ports detected uhci_hcd 0000:00:1d.0: PCI INT A -> GSI 23 (level, low) -> IRQ 23 uhci_hcd 0000:00:1d.0: setting latency timer to 64 uhci_hcd 0000:00:1d.0: UHCI Host Controller uhci_hcd 0000:00:1d.0: new USB bus registered, assigned bus number 6 uhci_hcd 0000:00:1d.0: irq 23, io base 0x00005080 usb usb6: New USB device found, idVendor=1d6b, idProduct=0001 usb usb6: New USB device strings: Mfr=3, Product=2, SerialNumber=1 usb usb6: Product: UHCI Host Controller usb usb6: Manufacturer: Linux 2.6.30-rc2-scsihost1-00368-gaefe647-dirty uhci_hcd usb usb6: SerialNumber: 0000:00:1d.0 usb usb6: configuration #1 chosen from 1 choice hub 6-0:1.0: USB hub found hub 6-0:1.0: 2 ports detected uhci_hcd 0000:00:1d.1: PCI INT B -> GSI 19 (level, low) -> IRQ 19 uhci_hcd 0000:00:1d.1: setting latency timer to 64 uhci_hcd 0000:00:1d.1: UHCI Host Controller uhci_hcd 0000:00:1d.1: new USB bus registered, assigned bus number 7 uhci_hcd 0000:00:1d.1: irq 19, io base 0x00005060 usb usb7: New USB device found, idVendor=1d6b, idProduct=0001 usb usb7: New USB device strings: Mfr=3, Product=2, SerialNumber=1 usb usb7: Product: UHCI Host Controller usb usb7: Manufacturer: Linux 2.6.30-rc2-scsihost1-00368-gaefe647-dirty uhci_hcd usb usb7: SerialNumber: 0000:00:1d.1 usb usb7: configuration #1 chosen from 1 choice hub 7-0:1.0: USB hub found hub 7-0:1.0: 2 ports detected uhci_hcd 0000:00:1d.2: PCI INT C -> GSI 18 (level, low) -> IRQ 18 uhci_hcd 0000:00:1d.2: setting latency timer to 64 uhci_hcd 0000:00:1d.2: UHCI Host Controller uhci_hcd 0000:00:1d.2: new USB bus registered, assigned bus number 8 uhci_hcd 0000:00:1d.2: irq 18, io base 0x00005040 usb usb8: New USB device found, idVendor=1d6b, idProduct=0001 usb usb8: New USB device strings: Mfr=3, Product=2, SerialNumber=1 usb usb8: Product: UHCI Host Controller usb usb8: Manufacturer: Linux 2.6.30-rc2-scsihost1-00368-gaefe647-dirty uhci_hcd usb usb8: SerialNumber: 0000:00:1d.2 usb usb8: configuration #1 chosen from 1 choice hub 8-0:1.0: USB hub found hub 8-0:1.0: 2 ports detected SCSI subsystem initialized Driver 'sd' needs updating - please use bus_type methods libata version 3.00 loaded. ahci 0000:00:1f.2: version 3.0 ahci 0000:00:1f.2: PCI INT A -> GSI 19 (level, low) -> IRQ 19 ahci 0000:00:1f.2: irq 30 for MSI/MSI-X ahci 0000:00:1f.2: AHCI 0001.0200 32 slots 6 ports 3 Gbps 0x3f impl SATA mode ahci 0000:00:1f.2: flags: 64bit ncq sntf pm led clo pio slum part ems ahci 0000:00:1f.2: setting latency timer to 64 scsi0 : ahci ata1: SATA max UDMA/133 irq_stat 0x00400040, connection status changed irq 30 ata2: SATA max UDMA/133 abar m2048@0xc7220000 port 0xc7220180 irq 30 ata3: SATA max UDMA/133 irq_stat 0x00400040 irq 30, connection status changed ata4: SATA max UDMA/133 abar m2048@0xc7220000 port 0xc7220280 irq 30 ata5: SATA max UDMA/133 abar m2048@0xc7220000 port 0xc7220300 irq 30 ata6: SATA max UDMA/133 irq_stat 0x00400040, connection status changed ahci 0000:09:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16 ahci 0000:09:00.0: controller can't do NCQ, turning off CAP_NCQ ahci 0000:09:00.0: controller can't do PMP, turning off CAP_PMP ahci 0000:09:00.0: MV_AHCI HACK: port_map 7 -> 3 ahci 0000:09:00.0: Disabling your PATA port. Use the boot option 'ahci.marvell_enable=0' to avoid this. ahci: SSS flag set, parallel bus scan disabled ahci 0000:09:00.0: AHCI 0001.0000 32 slots 3 ports 3 Gbps 0x3 impl IDE mode ahci 0000:09:00.0: flags: 64bit stag led slum part ahci 0000:09:00.0: setting latency timer to 64 scsi1 : ahci ata7: SATA max UDMA/133 abar m1024@0xc7100000 port 0xc7100100 irq 16 ata8: SATA max UDMA/133 abar m1024@0xc7100000 port 0xc7100180 irq 16 ata9: DUMMY ata7: SATA link down (SStatus 0 SControl 300) usb 4-1: new low speed USB device using uhci_hcd and address 2 usb 4-1: New USB device found, idVendor=045e, idProduct=0047 usb 4-1: New USB device strings: Mfr=1, Product=3, SerialNumber=0 usb 4-1: Product: Microsoft 5-Button Mouse with IntelliEye(TM) usb 4-1: Manufacturer: Microsoft usb 4-1: configuration #1 chosen from 1 choice input: Microsoft Microsoft 5-Button Mouse with IntelliEye(TM) as /devices/pci0000:00/0000:00:1a.1/usb4/4-1/4-1:1.0/input/input3 generic-usb 0003:045E:0047.0001: input,hidraw0: USB HID v1.10 Mouse [Microsoft Microsoft 5-Button Mouse with IntelliEye(TM)] on usb-0000:00:1a.1-1/input0 ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300) ata1.00: ATA-8: ST3500320AS, SD15, max UDMA/133 ata1.00: 976773168 sectors, multi 0: LBA48 NCQ (depth 31/32) ata1.00: configured for UDMA/133 usb 4-2: new low speed USB device using uhci_hcd and address 3 ata2: SATA link down (SStatus 0 SControl 300) usb 4-2: New USB device found, idVendor=045e, idProduct=000b usb 4-2: New USB device strings: Mfr=0, Product=1, SerialNumber=0 usb 4-2: Product: Microsoft Natural Keyboard Elite usb 4-2: configuration #1 chosen from 1 choice input: Microsoft Natural Keyboard Elite as /devices/pci0000:00/0000:00:1a.1/usb4/4-2/4-2:1.0/input/input4 generic-usb 0003:045E:000B.0002: input,hidraw1: USB HID v1.10 Keyboard [Microsoft Natural Keyboard Elite] on usb-0000:00:1a.1-2/input0 ata3: SATA link up 3.0 Gbps (SStatus 123 SControl 300) ata3.00: ATA-8: G.SKILL 128GB SSD, 02.10104, max UDMA/100 ata3.00: 250445824 sectors, multi 0: LBA ata3.00: configured for UDMA/100 ata4: SATA link down (SStatus 0 SControl 300) ata5: SATA link down (SStatus 0 SControl 300) ata6: SATA link up 1.5 Gbps (SStatus 113 SControl 300) ata6.00: ATAPI: PIONEER BD-ROM BDC-202, 1.04, max UDMA/66 ata6.00: configured for UDMA/66 scsi 0:0:0:0: Direct-Access ATA ST3500320AS SD15 PQ: 0 ANSI: 5 sd 0:0:0:0: [sda] 976773168 512-byte hardware sectors: (500 GB/465 GiB) sd 0:0:0:0: [sda] Write Protect is off sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00 sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA sda:<5>scsi 0:2:0:0: Direct-Access ATA G.SKILL 128GB SS 02.1 PQ: 0 ANSI: 5 sd 0:2:0:0: [sdb] 250445824 512-byte hardware sectors: (128 GB/119 GiB) sd 0:2:0:0: [sdb] Write Protect is off sd 0:2:0:0: [sdb] Mode Sense: 00 3a 00 00 sd 0:2:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA sdb: sdb1 sd 0:2:0:0: [sdb] Attached SCSI disk scsi 0:5:0:0: CD-ROM PIONEER BD-ROM BDC-202 1.04 PQ: 0 ANSI: 5 sda1 sda2 sda3 sda4 < sda5 sda6 > sd 0:0:0:0: [sda] Attached SCSI disk ata8: SATA link down (SStatus 0 SControl 300) kjournald starting. Commit interval 5 seconds EXT3-fs: mounted filesystem with writeback data mode. udevd version 127 started e1000e: Intel(R) PRO/1000 Network Driver - 0.3.3.4-k4 e1000e: Copyright (c) 1999-2008 Intel Corporation. e1000e 0000:00:19.0: PCI INT A -> GSI 20 (level, low) -> IRQ 20 e1000e 0000:00:19.0: setting latency timer to 64 e1000e 0000:00:19.0: irq 31 for MSI/MSI-X 0000:00:19.0: eth0: (PCI Express:2.5GB/s:Width x1) 00:1c:c0:79:c8:c2 0000:00:19.0: eth0: Intel(R) PRO/1000 Network Connection 0000:00:19.0: eth0: MAC: 7, PHY: 8, PBA No: ffffff-0ff HDA Intel 0000:00:1b.0: PCI INT A -> GSI 22 (level, low) -> IRQ 22 HDA Intel 0000:00:1b.0: setting latency timer to 64 firewire_ohci 0000:0a:03.0: PCI INT A -> GSI 19 (level, low) -> IRQ 19 sd 0:0:0:0: Attached scsi generic sg0 type 0 sd 0:2:0:0: Attached scsi generic sg1 type 0 scsi 0:5:0:0: Attached scsi generic sg2 type 5 firewire_ohci: Added fw-ohci device 0000:0a:03.0, OHCI version 1.10 Driver 'sr' needs updating - please use bus_type methods sr0: scsi3-mmc drive: 32x/32x writer dvd-ram cd/rw xa/form2 cdda tray Uniform CD-ROM driver Revision: 3.20 sr 0:5:0:0: Attached scsi CD-ROM sr0 i801_smbus 0000:00:1f.3: PCI INT B -> GSI 18 (level, low) -> IRQ 18 firewire_core: created device fw0: GUID 0090270002258426, S400 EXT3 FS on sda2, internal journal kjournald starting. Commit interval 5 seconds EXT3 FS on sda1, internal journal EXT3-fs: mounted filesystem with writeback data mode. kjournald starting. Commit interval 5 seconds EXT3 FS on sda3, internal journal EXT3-fs: mounted filesystem with writeback data mode. kjournald starting. Commit interval 5 seconds EXT3 FS on sdb1, internal journal EXT3-fs: mounted filesystem with writeback data mode. kjournald starting. Commit interval 5 seconds EXT3 FS on sda6, internal journal EXT3-fs: mounted filesystem with writeback data mode. Adding 6144820k swap on /dev/sda5. Priority:-1 extents:1 across:6144820k platform microcode: firmware: requesting intel-ucode/06-1a-04 platform microcode: firmware: requesting intel-ucode/06-1a-04 platform microcode: firmware: requesting intel-ucode/06-1a-04 platform microcode: firmware: requesting intel-ucode/06-1a-04 platform microcode: firmware: requesting intel-ucode/06-1a-04 platform microcode: firmware: requesting intel-ucode/06-1a-04 platform microcode: firmware: requesting intel-ucode/06-1a-04 platform microcode: firmware: requesting intel-ucode/06-1a-04 Microcode Update Driver: v2.00 <tigran@xxxxxxxxxxxxxxxxxxxx>, Peter Oruba Microcode Update Driver: v2.00 removed. e1000e 0000:00:19.0: irq 31 for MSI/MSI-X e1000e 0000:00:19.0: irq 31 for MSI/MSI-X ADDRCONF(NETDEV_UP): eth0: link is not ready NET: Registered protocol family 17 e1000e: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX/TX ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready RPC: Registered udp transport module. RPC: Registered tcp transport module. Bridge firewalling registered virbr0: starting userspace STP failed, starting kernel STP ip_tables: (C) 2000-2006 Netfilter Core Team nf_conntrack version 0.5.0 (16384 buckets, 65536 max) CONFIG_NF_CT_ACCT is deprecated and will be removed soon. Please use nf_conntrack.acct=1 kernel paramater, acct=1 nf_conntrack module option or sysctl net.netfilter.nf_conntrack_acct=1 to enable it. virbr0: no IPv6 routers present fuse init (API version 7.11)