Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 30 Nov 2017 16:13:36 +0000 (08:13 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 30 Nov 2017 16:13:36 +0000 (08:13 -0800)
Pull s390 fixes from Martin Schwidefsky:

 - SPDX identifiers are added to more of the s390 specific files.

 - The ELF_ET_DYN_BASE base patch from Kees is reverted, with the change
   some old 31-bit programs crash.

 - Bug fixes and cleanups.

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (29 commits)
  s390/gs: add compat regset for the guarded storage broadcast control block
  s390: revert ELF_ET_DYN_BASE base changes
  s390: Remove redundant license text
  s390: crypto: Remove redundant license text
  s390: include: Remove redundant license text
  s390: kernel: Remove redundant license text
  s390: add SPDX identifiers to the remaining files
  s390: appldata: add SPDX identifiers to the remaining files
  s390: pci: add SPDX identifiers to the remaining files
  s390: mm: add SPDX identifiers to the remaining files
  s390: crypto: add SPDX identifiers to the remaining files
  s390: kernel: add SPDX identifiers to the remaining files
  s390: sthyi: add SPDX identifiers to the remaining files
  s390: drivers: Remove redundant license text
  s390: crypto: Remove redundant license text
  s390: virtio: add SPDX identifiers to the remaining files
  s390: scsi: zfcp_aux: add SPDX identifier
  s390: net: add SPDX identifiers to the remaining files
  s390: char: add SPDX identifiers to the remaining files
  s390: cio: add SPDX identifiers to the remaining files
  ...

1  2 
arch/s390/kernel/time.c
arch/s390/mm/cmm.c
drivers/s390/block/dasd.c
drivers/s390/net/fsm.c

diff --combined arch/s390/kernel/time.c
@@@ -1,3 -1,4 +1,4 @@@
+ // SPDX-License-Identifier: GPL-2.0
  /*
   *    Time of day based timer functions.
   *
@@@ -523,7 -524,7 +524,7 @@@ static void __init stp_reset(void
        }
  }
  
 -static void stp_timeout(unsigned long dummy)
 +static void stp_timeout(struct timer_list *unused)
  {
        queue_work(time_sync_wq, &stp_work);
  }
@@@ -532,7 -533,7 +533,7 @@@ static int __init stp_init(void
  {
        if (!test_bit(CLOCK_SYNC_HAS_STP, &clock_sync_flags))
                return 0;
 -      setup_timer(&stp_timer, stp_timeout, 0UL);
 +      timer_setup(&stp_timer, stp_timeout, 0);
        time_init_wq();
        if (!stp_online)
                return 0;
diff --combined arch/s390/mm/cmm.c
@@@ -1,3 -1,4 +1,4 @@@
+ // SPDX-License-Identifier: GPL-2.0
  /*
   *  Collaborative memory management interface.
   *
@@@ -56,10 -57,10 +57,10 @@@ static DEFINE_SPINLOCK(cmm_lock)
  
  static struct task_struct *cmm_thread_ptr;
  static DECLARE_WAIT_QUEUE_HEAD(cmm_thread_wait);
 -static DEFINE_TIMER(cmm_timer, NULL);
  
 -static void cmm_timer_fn(unsigned long);
 +static void cmm_timer_fn(struct timer_list *);
  static void cmm_set_timer(void);
 +static DEFINE_TIMER(cmm_timer, cmm_timer_fn);
  
  static long cmm_alloc_pages(long nr, long *counter,
                            struct cmm_page_array **list)
@@@ -194,11 -195,13 +195,11 @@@ static void cmm_set_timer(void
                if (mod_timer(&cmm_timer, jiffies + cmm_timeout_seconds*HZ))
                        return;
        }
 -      cmm_timer.function = cmm_timer_fn;
 -      cmm_timer.data = 0;
        cmm_timer.expires = jiffies + cmm_timeout_seconds*HZ;
        add_timer(&cmm_timer);
  }
  
 -static void cmm_timer_fn(unsigned long ignored)
 +static void cmm_timer_fn(struct timer_list *unused)
  {
        long nr;
  
@@@ -1,3 -1,4 +1,4 @@@
+ // SPDX-License-Identifier: GPL-2.0
  /*
   * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com>
   *                Horst Hummel <Horst.Hummel@de.ibm.com>
@@@ -70,8 -71,8 +71,8 @@@ static void do_restore_device(struct wo
  static void do_reload_device(struct work_struct *);
  static void do_requeue_requests(struct work_struct *);
  static void dasd_return_cqr_cb(struct dasd_ccw_req *, void *);
 -static void dasd_device_timeout(unsigned long);
 -static void dasd_block_timeout(unsigned long);
 +static void dasd_device_timeout(struct timer_list *);
 +static void dasd_block_timeout(struct timer_list *);
  static void __dasd_process_erp(struct dasd_device *, struct dasd_ccw_req *);
  static void dasd_profile_init(struct dasd_profile *, struct dentry *);
  static void dasd_profile_exit(struct dasd_profile *);
@@@ -119,7 -120,9 +120,7 @@@ struct dasd_device *dasd_alloc_device(v
                     (void (*)(unsigned long)) dasd_device_tasklet,
                     (unsigned long) device);
        INIT_LIST_HEAD(&device->ccw_queue);
 -      init_timer(&device->timer);
 -      device->timer.function = dasd_device_timeout;
 -      device->timer.data = (unsigned long) device;
 +      timer_setup(&device->timer, dasd_device_timeout, 0);
        INIT_WORK(&device->kick_work, do_kick_device);
        INIT_WORK(&device->restore_device, do_restore_device);
        INIT_WORK(&device->reload_device, do_reload_device);
@@@ -161,7 -164,9 +162,7 @@@ struct dasd_block *dasd_alloc_block(voi
                     (unsigned long) block);
        INIT_LIST_HEAD(&block->ccw_queue);
        spin_lock_init(&block->queue_lock);
 -      init_timer(&block->timer);
 -      block->timer.function = dasd_block_timeout;
 -      block->timer.data = (unsigned long) block;
 +      timer_setup(&block->timer, dasd_block_timeout, 0);
        spin_lock_init(&block->profile.lock);
  
        return block;
@@@ -1556,12 -1561,12 +1557,12 @@@ EXPORT_SYMBOL(dasd_start_IO)
   * The head of the ccw queue will have status DASD_CQR_IN_IO for 1),
   * DASD_CQR_QUEUED for 2) and 3).
   */
 -static void dasd_device_timeout(unsigned long ptr)
 +static void dasd_device_timeout(struct timer_list *t)
  {
        unsigned long flags;
        struct dasd_device *device;
  
 -      device = (struct dasd_device *) ptr;
 +      device = from_timer(device, t, timer);
        spin_lock_irqsave(get_ccwdev_lock(device->cdev), flags);
        /* re-activate request queue */
        dasd_device_remove_stop_bits(device, DASD_STOPPED_PENDING);
@@@ -2624,12 -2629,12 +2625,12 @@@ EXPORT_SYMBOL(dasd_cancel_req)
   * is waiting for something that may not come reliably, (e.g. a state
   * change interrupt)
   */
 -static void dasd_block_timeout(unsigned long ptr)
 +static void dasd_block_timeout(struct timer_list *t)
  {
        unsigned long flags;
        struct dasd_block *block;
  
 -      block = (struct dasd_block *) ptr;
 +      block = from_timer(block, t, timer);
        spin_lock_irqsave(get_ccwdev_lock(block->base->cdev), flags);
        /* re-activate request queue */
        dasd_device_remove_stop_bits(block->base, DASD_STOPPED_PENDING);
diff --combined drivers/s390/net/fsm.c
@@@ -1,3 -1,4 +1,4 @@@
+ // SPDX-License-Identifier: GPL-2.0
  /**
   * A generic FSM based on fsm used in isdn4linux
   *
@@@ -129,9 -130,8 +130,9 @@@ fsm_getstate_str(fsm_instance *fi
  }
  
  static void
 -fsm_expire_timer(fsm_timer *this)
 +fsm_expire_timer(struct timer_list *t)
  {
 +      fsm_timer *this = from_timer(this, t, tl);
  #if FSM_TIMER_DEBUG
        printk(KERN_DEBUG "fsm(%s): Timer %p expired\n",
               this->fi->name, this);
@@@ -143,11 -143,13 +144,11 @@@ voi
  fsm_settimer(fsm_instance *fi, fsm_timer *this)
  {
        this->fi = fi;
 -      this->tl.function = (void *)fsm_expire_timer;
 -      this->tl.data = (long)this;
  #if FSM_TIMER_DEBUG
        printk(KERN_DEBUG "fsm(%s): Create timer %p\n", fi->name,
               this);
  #endif
 -      init_timer(&this->tl);
 +      timer_setup(&this->tl, fsm_expire_timer, 0);
  }
  
  void
@@@ -169,7 -171,7 +170,7 @@@ fsm_addtimer(fsm_timer *this, int milli
               this->fi->name, this, millisec);
  #endif
  
 -      setup_timer(&this->tl, (void *)fsm_expire_timer, (long)this);
 +      timer_setup(&this->tl, fsm_expire_timer, 0);
        this->expire_event = event;
        this->event_arg = arg;
        this->tl.expires = jiffies + (millisec * HZ) / 1000;
@@@ -188,7 -190,7 +189,7 @@@ fsm_modtimer(fsm_timer *this, int milli
  #endif
  
        del_timer(&this->tl);
 -      setup_timer(&this->tl, (void *)fsm_expire_timer, (long)this);
 +      timer_setup(&this->tl, fsm_expire_timer, 0);
        this->expire_event = event;
        this->event_arg = arg;
        this->tl.expires = jiffies + (millisec * HZ) / 1000;