Merge tag 's390-5.4-2' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 26 Sep 2019 18:30:16 +0000 (11:30 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 26 Sep 2019 18:30:16 +0000 (11:30 -0700)
Pull more s390 updates from Vasily Gorbik:

 - Fix three kasan findings

 - Add PERF_EVENT_IOC_PERIOD ioctl support

 - Add Crypto Express7S support and extend sysfs attributes for pkey

 - Minor common I/O layer documentation corrections

* tag 's390-5.4-2' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
  s390/cio: exclude subchannels with no parent from pseudo check
  s390/cio: avoid calling strlen on null pointer
  s390/topology: avoid firing events before kobjs are created
  s390/cpumf: Remove mixed white space
  s390/cpum_sf: Support ioctl PERF_EVENT_IOC_PERIOD
  s390/zcrypt: CEX7S exploitation support
  s390/cio: fix intparm documentation
  s390/pkey: Add sysfs attributes to emit AES CIPHER key blobs

1  2 
drivers/s390/cio/ccwgroup.c

index 0005ec9285aa833a8d74c3828e65c9397e1d8b7a,ae66875a934d2647c5a9521a678190b5e34d6844..b42a937366683c1faed8c29fa6f26509e63d2e47
@@@ -372,7 -372,7 +372,7 @@@ int ccwgroup_create_dev(struct device *
                goto error;
        }
        /* Check for trailing stuff. */
-       if (i == num_devices && strlen(buf) > 0) {
+       if (i == num_devices && buf && strlen(buf) > 0) {
                rc = -EINVAL;
                goto error;
        }
@@@ -581,6 -581,11 +581,6 @@@ int ccwgroup_driver_register(struct ccw
  }
  EXPORT_SYMBOL(ccwgroup_driver_register);
  
 -static int __ccwgroup_match_all(struct device *dev, const void *data)
 -{
 -      return 1;
 -}
 -
  /**
   * ccwgroup_driver_unregister() - deregister a ccw group driver
   * @cdriver: driver to be deregistered
@@@ -592,7 -597,8 +592,7 @@@ void ccwgroup_driver_unregister(struct 
        struct device *dev;
  
        /* We don't want ccwgroup devices to live longer than their driver. */
 -      while ((dev = driver_find_device(&cdriver->driver, NULL, NULL,
 -                                       __ccwgroup_match_all))) {
 +      while ((dev = driver_find_next_device(&cdriver->driver, NULL))) {
                struct ccwgroup_device *gdev = to_ccwgroupdev(dev);
  
                ccwgroup_ungroup(gdev);
  }
  EXPORT_SYMBOL(ccwgroup_driver_unregister);
  
 -static int __ccwgroupdev_check_busid(struct device *dev, const void *id)
 -{
 -      const char *bus_id = id;
 -
 -      return (strcmp(bus_id, dev_name(dev)) == 0);
 -}
 -
  /**
   * get_ccwgroupdev_by_busid() - obtain device from a bus id
   * @gdrv: driver the device is owned by
@@@ -618,7 -631,8 +618,7 @@@ struct ccwgroup_device *get_ccwgroupdev
  {
        struct device *dev;
  
 -      dev = driver_find_device(&gdrv->driver, NULL, bus_id,
 -                               __ccwgroupdev_check_busid);
 +      dev = driver_find_device_by_name(&gdrv->driver, bus_id);
  
        return dev ? to_ccwgroupdev(dev) : NULL;
  }