Print this page
NEX-18214 unplug of multipathed disks doesn't produce EC_DEV_REMOVE/ESC_DISK event
Reviewed by: Rick McNeal <rick.mcneal@nexenta.com>
Reviewed by: Dan Fields <dan.fields@nexenta.com>
Revert "NEX-18214 unplug of multipathed disks doesn't produce EC_DEV_REMOVE/ESC_DISK event"
This reverts commit b0f7e47b60b115c1bb6c07dc5aa150cc519790e7.
NEX-18214 unplug of multipathed disks doesn't produce EC_DEV_REMOVE/ESC_DISK event
Reviewed by: Rick McNeal <rick.mcneal@nexenta.com>
Reviewed by: Dan Fields <dan.fields@nexenta.com>
NEX-17446 cleanup of hot unplugged disks fails intermittently
Reviewed by: Dan Fields <dan.fields@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Reviewed by: Rick McNeal <rick.mcneal@nexenta.com>
NEX-17521 Unable to install Nexentastor on Lenovo SR650 platform
8702 PCI addresses with physaddr > 0xffffffff can't be mapped in
8703 pci/npe DDI_CTLOPS_REGSIZE should be 64-bit aware
8704 want OFF_MAX in the kernel
8705 unsupported 64-bit prefetch memory on pci-pci bridge
Contributed by: Robert Mustacchi <rm@joyent.com>
Reviewed by: Patrick Mooney <patrick.mooney@joyent.com>
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Reviewed by: Albert Lee <trisk@forkgnu.org>
9550 Create hub symlinks for xhci devices
Contributed by: Alexander Pyhalov <apyhalov@gmail.com>
Reviewed by: Andy Stormont <astormont@racktopsystems.com>
Reviewed by: Robert Mustacchi <rm@joyent.com>
Reviewed by: Toomas Soome <tsoome@me.com>
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com>

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/sys/ddi_impldefs.h
          +++ new/usr/src/uts/common/sys/ddi_impldefs.h
↓ open down ↓ 10 lines elided ↑ open up ↑
  11   11   * and limitations under the License.
  12   12   *
  13   13   * When distributing Covered Code, include this CDDL HEADER in each
  14   14   * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15   15   * If applicable, add the following below this CDDL HEADER, with the
  16   16   * fields enclosed by brackets "[]" replaced with your own identifying
  17   17   * information: Portions Copyright [yyyy] [name of copyright owner]
  18   18   *
  19   19   * CDDL HEADER END
  20   20   */
       21 +
  21   22  /*
  22   23   * Copyright (c) 1991, 2010, Oracle and/or its affiliates. All rights reserved.
  23   24   * Copyright 2012 Garrett D'Amore <garrett@damore.org>.  All rights reserved.
  24   25   * Copyright 2016 Joyent, Inc.
  25   26   * Copyright (c) 2016 by Delphix. All rights reserved.
       27 + * Copyright 2018 Nexenta Systems, Inc.
  26   28   */
  27   29  
  28   30  #ifndef _SYS_DDI_IMPLDEFS_H
  29   31  #define _SYS_DDI_IMPLDEFS_H
  30   32  
  31   33  #include <sys/types.h>
  32   34  #include <sys/param.h>
  33   35  #include <sys/t_lock.h>
  34   36  #include <sys/ddipropdefs.h>
  35   37  #include <sys/devops.h>
↓ open down ↓ 242 lines elided ↑ open up ↑
 278  280  
 279  281          /* ndi 'flavors' */
 280  282          ndi_flavor_t    devi_flavor;            /* flavor assigned by parent */
 281  283          ndi_flavor_t    devi_flavorv_n;         /* number of child-flavors */
 282  284          void            **devi_flavorv;         /* child-flavor specific data */
 283  285  
 284  286          /* Owned by hotplug framework */
 285  287          struct ddi_hp_cn_handle *devi_hp_hdlp;   /* hotplug handle list */
 286  288  
 287  289          struct in_node  *devi_in_node; /* pointer to devinfo node's in_node_t */
 288      -
 289      -        /* detach event data */
 290      -        char    *devi_ev_path;
 291      -        int     devi_ev_instance;
 292  290  };
 293  291  
 294  292  #define DEVI(dev_info_type)     ((struct dev_info *)(dev_info_type))
 295  293  
 296  294  /*
 297  295   * NB: The 'name' field, for compatibility with old code (both existing
 298  296   * device drivers and userland code), is now defined as the name used
 299  297   * to bind the node to a device driver, and not the device node name.
 300  298   * If the device node name does not define a binding to a device driver,
 301  299   * and the framework uses a different algorithm to create the binding to
↓ open down ↓ 305 lines elided ↑ open up ↑
 607  605  #define DEVI_NO_BIND            0x00000010 /* prevent driver binding */
 608  606  #define DEVI_CACHED_DEVID       0x00000020 /* devid cached in devid cache */
 609  607  #define DEVI_PHCI_SIGNALS_VHCI  0x00000040 /* pHCI ndi_devi_exit signals vHCI */
 610  608  #define DEVI_REBIND             0x00000080 /* post initchild driver rebind */
 611  609  #define DEVI_RETIRED            0x00000100 /* device is retired */
 612  610  #define DEVI_RETIRING           0x00000200 /* being evaluated for retire */
 613  611  #define DEVI_R_CONSTRAINT       0x00000400 /* constraints have been applied  */
 614  612  #define DEVI_R_BLOCKED          0x00000800 /* constraints block retire  */
 615  613  #define DEVI_CT_NOP             0x00001000 /* NOP contract event occurred */
 616  614  #define DEVI_PCI_DEVICE         0x00002000 /* dip is PCI */
      615 +#define DEVI_GONE               0x00004000 /* device is physically removed */
 617  616  
 618  617  #define DEVI_BUSY_CHANGING(dip) (DEVI(dip)->devi_flags & DEVI_BUSY)
 619  618  #define DEVI_BUSY_OWNED(dip)    (DEVI_BUSY_CHANGING(dip) &&     \
 620  619          ((DEVI(dip))->devi_busy_thread == curthread))
 621  620  
 622  621  #define DEVI_IS_PCI(dip)        (DEVI(dip)->devi_flags & DEVI_PCI_DEVICE)
 623  622  #define DEVI_SET_PCI(dip)       (DEVI(dip)->devi_flags |= (DEVI_PCI_DEVICE))
 624  623  
      624 +#define DEVI_IS_GONE(dip)       (DEVI(dip)->devi_flags & DEVI_GONE)
      625 +#define DEVI_SET_GONE(dip)      (DEVI(dip)->devi_flags |= DEVI_GONE)
      626 +#define DEVI_UNSET_GONE(dip)    (DEVI(dip)->devi_flags &= ~DEVI_GONE)
      627 +
 625  628  char    *i_ddi_devi_class(dev_info_t *);
 626  629  int     i_ddi_set_devi_class(dev_info_t *, char *, int);
 627  630  
 628  631  /*
 629  632   * This structure represents one piece of bus space occupied by a given
 630  633   * device. It is used in an array for devices with multiple address windows.
 631  634   */
 632  635  struct regspec {
 633  636          uint_t regspec_bustype;         /* cookie for bus type it's on */
 634  637          uint_t regspec_addr;            /* address of reg relative to bus */
↓ open down ↓ 619 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX