/**
   *    wakeup_readers - wake up readers waiting on a channel
-  *    @data: contains the the channel buffer
 - *    @work: work struct that contains the channel buffer
++ *    @data: contains the channel buffer
   *
 - *    This is the work function used to defer reader waking.  The
 - *    reason waking is deferred is that calling directly from write
 - *    causes problems if you're writing from say the scheduler.
 + *    This is the timer function used to defer reader waking.
   */
 -static void wakeup_readers(struct work_struct *work)
 +static void wakeup_readers(unsigned long data)
  {
 -      struct rchan_buf *buf =
 -              container_of(work, struct rchan_buf, wake_readers.work);
 +      struct rchan_buf *buf = (struct rchan_buf *)data;
        wake_up_interruptible(&buf->read_wait);
  }