1. 11 Sep, 2009 40 commits
    • Eric Paris's avatar
      fsnotify: remove group_num altogether · cf71f3cf
      Eric Paris authored
      The original fsnotify interface has a group-num which was intended to be
      able to find a group after it was added.  I no longer think this is a
      necessary thing to do and so we remove the group_num.
      Signed-off-by: default avatarEric Paris <eparis@redhat.com>
      cf71f3cf
    • Eric Paris's avatar
      fsnotify: lock annotation for event replacement · 9514271c
      Eric Paris authored
      fsnotify_replace_event need to lock both the old and the new event.  This
      causes lockdep to get all pissed off since it dosn't know this is safe.
      It's safe in this case since the new event is impossible to be reached from
      other places in the kernel.
      Signed-off-by: default avatarEric Paris <eparis@redhat.com>
      9514271c
    • Eric Paris's avatar
      fsnotify: replace an event on a list · 77797eeb
      Eric Paris authored
      fanotify would like to clone events already on its notification list, make
      changes to the new event, and then replace the old event on the list with
      the new event.  This patch implements the replace functionality of that
      process.
      Signed-off-by: default avatarEric Paris <eparis@redhat.com>
      77797eeb
    • Eric Paris's avatar
      fsnotify: clone existing events · 02dab3d4
      Eric Paris authored
      fsnotify_clone_event will take an event, clone it, and return the cloned
      event to the caller.  Since events may be in use by multiple fsnotify
      groups simultaneously certain event entries (such as the mask) cannot be
      changed after the event was created.  Since fanotify would like to merge
      events happening on the same file it needs a new clean event to work with
      so it can change any fields it wishes.
      Signed-off-by: default avatarEric Paris <eparis@redhat.com>
      02dab3d4
    • Eric Paris's avatar
      fsnotify: per group notification queue merge types · 97cf8524
      Eric Paris authored
      inotify only wishes to merge a new event with the last event on the
      notification fifo.  fanotify is willing to merge any events including by
      means of bitwise OR masks of multiple events together.  This patch moves
      the inotify event merging logic out of the generic fsnotify notification.c
      and into the inotify code.  This allows each use of fsnotify to provide
      their own merge functionality.
      Signed-off-by: default avatarEric Paris <eparis@redhat.com>
      97cf8524
    • Eric Paris's avatar
      fsnotify: send struct file when sending events to parents when possible · b96ead47
      Eric Paris authored
      fanotify needs a path in order to open an fd to the object which changed.
      Currently notifications to inode's parents are done using only the inode.
      For some parental notification we have the entire file, send that so
      fanotify can use it.
      Signed-off-by: default avatarEric Paris <eparis@redhat.com>
      b96ead47
    • Eric Paris's avatar
      fsnotify: pass a file instead of an inode to open, read, and write · bce8d165
      Eric Paris authored
      fanotify, the upcoming notification system actually needs a struct path so it can
      do opens in the context of listeners, and it needs a file so it can get f_flags
      from the original process.  Close was the only operation that already was passing
      a struct file to the notification hook.  This patch passes a file for access,
      modify, and open as well as they are easily available to these hooks.
      Signed-off-by: default avatarEric Paris <eparis@redhat.com>
      bce8d165
    • Eric Paris's avatar
      fsnotify: include data in should_send calls · b601884c
      Eric Paris authored
      fanotify is going to need to look at file->private_data to know if an event
      should be sent or not.  This passes the data (which might be a file,
      dentry, inode, or none) to the should_send function calls so fanotify can
      get that information when available
      Signed-off-by: default avatarEric Paris <eparis@redhat.com>
      b601884c
    • Eric Paris's avatar
      fsnotify: provide the data type to should_send_event · ff0cc020
      Eric Paris authored
      fanotify is only interested in event types which contain enough information
      to open the original file in the context of the fanotify listener.  Since
      fanotify may not want to send events if that data isn't present we pass
      the data type to the should_send_event function call so fanotify can express
      its lack of interest.
      Signed-off-by: default avatarEric Paris <eparis@redhat.com>
      ff0cc020
    • Eric Paris's avatar
      fsnotify: use kmem_cache_zalloc to simplify event initialization · 867ea98e
      Eric Paris authored
      fsnotify event initialization is done entry by entry with almost everything
      set to either 0 or NULL.  Use kmem_cache_zalloc and only initialize things
      that need non-zero initialization.  Also means we don't have to change
      initialization entries based on the config options.
      Signed-off-by: default avatarEric Paris <eparis@redhat.com>
      867ea98e
    • Eric Paris's avatar
      fsnotify: kzalloc fsnotify groups · ef288c46
      Eric Paris authored
      Use kzalloc for fsnotify_groups so that none of the fields can leak any
      information accidentally.
      Signed-off-by: default avatarEric Paris <eparis@redhat.com>
      ef288c46
    • Eric Paris's avatar
      inotify: use container_of instead of casting · 679b0575
      Eric Paris authored
      inotify_free_mark casts directly from an fsnotify_mark_entry to an
      inotify_inode_mark_entry.  This works, but should use container_of instead
      for future proofing.
      Signed-off-by: default avatarEric Paris <eparis@redhat.com>
      679b0575
    • Eric Paris's avatar
      fsnotify: use fsnotify_create_event to allocate the q_overflow event · cd799603
      Eric Paris authored
      Currently fsnotify defines a static fsnotify event which is sent when a
      group overflows its allotted queue length.  This patch just allocates that
      event from the event cache rather than defining it statically.  There is no
      known reason that the current implementation is wrong, but this makes sure the
      event is initialized and created like any other.
      Signed-off-by: default avatarEric Paris <eparis@redhat.com>
      cd799603
    • Eric Paris's avatar
      Audit: rearrange audit_context to save 16 bytes per struct · e5b98075
      Eric Paris authored
      pahole pointed out that on x86_64 struct audit_context can be rearrainged
      to save 16 bytes per struct.  Since we have an audit_context per task this
      can acually be a pretty significant gain.
      Signed-off-by: default avatarEric Paris <eparis@redhat.com>
      e5b98075
    • Eric Paris's avatar
      Audit: reorganize struct audit_watch to save 8 bytes · abca45ed
      Eric Paris authored
      pahole showed that struct audit_watch had two holes:
      
      struct audit_watch {
              atomic_t                   count;                /*     0     4 */
      
              /* XXX 4 bytes hole, try to pack */
      
              char *                     path;                 /*     8     8 */
              dev_t                      dev;                  /*    16     4 */
      
              /* XXX 4 bytes hole, try to pack */
      
              long unsigned int          ino;                  /*    24     8 */
              struct audit_parent *      parent;               /*    32     8 */
              struct list_head           wlist;                /*    40    16 */
              struct list_head           rules;                /*    56    16 */
              /* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */
      
              /* size: 72, cachelines: 2, members: 7 */
              /* sum members: 64, holes: 2, sum holes: 8 */
              /* last cacheline: 8 bytes */
      };      /* definitions: 1 */
      
      by moving dev after count we save 8 bytes,  actually improving cacheline
      usage.  There are typically very few of these in the kernel so it won't be
      a large savings, but it's a good thing no matter what.
      Signed-off-by: default avatarEric Paris <eparis@redhat.com>
      abca45ed
    • Eric Paris's avatar
      Audit: audit watch init should not be before fsnotify init · f7d7c698
      Eric Paris authored
      Audit watch init and fsnotify init both use subsys_initcall() but since the
      audit watch code is linked in before the fsnotify code the audit watch code
      would be using the fsnotify srcu struct before it was initialized.  This
      patch fixes that problem by moving audit watch init to device_initcall() so
      it happens after fsnotify is ready.
      Reported-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      Signed-off-by: default avatarEric Paris <eparis@redhat.com>
      Tested-by : Sachin Sant <sachinp@in.ibm.com>
      f7d7c698
    • Eric Paris's avatar
      Audit: split audit watch Kconfig · 36ad2da5
      Eric Paris authored
      Audit watch should depend on CONFIG_AUDIT_SYSCALL and should select
      FSNOTIFY.  This splits the spagetti like mixing of audit_watch and
      audit_filter code so they can be configured seperately.
      Signed-off-by: default avatarEric Paris <eparis@redhat.com>
      36ad2da5
    • Eric Paris's avatar
      Audit: audit watches depend on fsnotify · 64d9ec23
      Eric Paris authored
      CONFIG_AUDIT builds audit_watches which depend on fsnotify.  Make
      CONFIG_AUDIT select fsnotify.
      Reported-by: default avatarAlexander Beregalov <a.beregalov@gmail.com>
      Signed-off-by: default avatarEric Paris <eparis@redhat.com>
      64d9ec23
    • Eric Paris's avatar
      inotify: deprecate the inotify kernel interface · 0c5173d4
      Eric Paris authored
      There are no longer any users of the inotify kernel interface.  Mark it for
      removal as fsnotify is more generic and is easier to use.  There are no
      known out of tree users of the inotify kernel interface.
      Signed-off-by: default avatarEric Paris <eparis@redhat.com>
      0c5173d4
    • Eric Paris's avatar
      audit: reimplement audit_trees using fsnotify rather than inotify · 9d92ade8
      Eric Paris authored
      Simply switch audit_trees from using inotify to using fsnotify for it's
      inode pinning and disappearing act information.
      Signed-off-by: default avatarEric Paris <eparis@redhat.com>
      9d92ade8
    • Eric Paris's avatar
      fsnotify: allow addition of duplicate fsnotify marks · 34e7a321
      Eric Paris authored
      This patch allows a task to add a second fsnotify mark to an inode for the
      same group.  This mark will be added to the end of the inode's list and
      this will never be found by the stand fsnotify_find_mark() function.   This
      is useful if a user wants to add a new mark before removing the old one.
      Signed-off-by: default avatarEric Paris <eparis@redhat.com>
      34e7a321
    • Eric Paris's avatar
      fsnotify: duplicate fsnotify_mark_entry data between 2 marks · 19f7590c
      Eric Paris authored
      Simple copy fsnotify information from one mark to another in preparation
      for the second mark to replace the first.
      Signed-off-by: default avatarEric Paris <eparis@redhat.com>
      19f7590c
    • Eric Paris's avatar
      audit: do not get and put just to free a watch · 7d75472e
      Eric Paris authored
      deleting audit watch rules is not currently done under audit_filter_mutex.
      It was done this way because we could not hold the mutex during inotify
      manipulation.  Since we are using fsnotify we don't need to do the extra
      get/put pair nor do we need the private list on which to store the parents
      while they are about to be freed.
      Signed-off-by: default avatarEric Paris <eparis@redhat.com>
      7d75472e
    • Eric Paris's avatar
      audit: redo audit watch locking and refcnt in light of fsnotify · 434c7950
      Eric Paris authored
      fsnotify can handle mutexes to be held across all fsnotify operations since
      it deals strickly in spinlocks.  This can simplify and reduce some of the
      audit_filter_mutex taking and dropping.
      Signed-off-by: default avatarEric Paris <eparis@redhat.com>
      434c7950
    • Eric Paris's avatar
      audit: convert audit watches to use fsnotify instead of inotify · 5e750a07
      Eric Paris authored
      Audit currently uses inotify to pin inodes in core and to detect when
      watched inodes are deleted or unmounted.  This patch uses fsnotify instead
      of inotify.
      Signed-off-by: default avatarEric Paris <eparis@redhat.com>
      5e750a07
    • Eric Paris's avatar
      Audit: clean up the audit_watch split · 704a7501
      Eric Paris authored
      No real changes, just cleanup to the audit_watch split patch which we done
      with minimal code changes for easy review.  Now fix interfaces to make
      things work better.
      Signed-off-by: default avatarEric Paris <eparis@redhat.com>
      704a7501
    • Eric Paris's avatar
      inotify: simplify the inotify idr handling · 8eefe9e3
      Eric Paris authored
      This patch moves all of the idr editing operations into their own idr
      functions.  It makes it easier to prove locking correctness and to to
      understand the code flow.
      Signed-off-by: default avatarEric Paris <eparis@redhat.com>
      8eefe9e3
    • Eric Paris's avatar
      fsnotify: do not set group for a mark before it is on the i_list · ead19115
      Eric Paris authored
      fsnotify_add_mark is supposed to add a mark to the g_list and i_list and to
      set the group and inode for the mark.  fsnotify_destroy_mark_by_entry uses
      the fact that ->group != NULL to know if this group should be destroyed or
      if it's already been done.
      
      But fsnotify_add_mark sets the group and inode before it actually adds the
      mark to the i_list and g_list.  This can result in a race in inotify, it
      requires 3 threads.
      
      sys_inotify_add_watch("file")	sys_inotify_add_watch("file")	sys_inotify_rm_watch([a])
      inotify_update_watch()
      inotify_new_watch()
      inotify_add_to_idr()
         ^--- returns wd = [a]
      				inotfiy_update_watch()
      				inotify_new_watch()
      				inotify_add_to_idr()
      				fsnotify_add_mark()
      				   ^--- returns wd = [b]
      				returns to userspace;
      								inotify_idr_find([a])
      								   ^--- gives us the pointer from task 1
      fsnotify_add_mark()
         ^--- this is going to set the mark->group and mark->inode fields, but will
      return -EEXIST because of the race with [b].
      								fsnotify_destroy_mark()
      								   ^--- since ->group != NULL we call back
      									into inotify_freeing_mark() which calls
      								inotify_remove_from_idr([a])
      
      since fsnotify_add_mark() failed we call:
      inotify_remove_from_idr([a])     <------WHOOPS it's not in the idr, this could
      					have been any entry added later!
      
      The fix is to make sure we don't set mark->group until we are sure the mark is
      on the inode and fsnotify_add_mark will return success.
      Signed-off-by: default avatarEric Paris <eparis@redhat.com>
      ead19115
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · 332a3392
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (102 commits)
        crypto: sha-s390 - Fix warnings in import function
        crypto: vmac - New hash algorithm for intel_txt support
        crypto: api - Do not displace newly registered algorithms
        crypto: ansi_cprng - Fix module initialization
        crypto: xcbc - Fix alignment calculation of xcbc_tfm_ctx
        crypto: fips - Depend on ansi_cprng
        crypto: blkcipher - Do not use eseqiv on stream ciphers
        crypto: ctr - Use chainiv on raw counter mode
        Revert crypto: fips - Select CPRNG
        crypto: rng - Fix typo
        crypto: talitos - add support for 36 bit addressing
        crypto: talitos - align locks on cache lines
        crypto: talitos - simplify hmac data size calculation
        crypto: mv_cesa - Add support for Orion5X crypto engine
        crypto: cryptd - Add support to access underlaying shash
        crypto: gcm - Use GHASH digest algorithm
        crypto: ghash - Add GHASH digest algorithm for GCM
        crypto: authenc - Convert to ahash
        crypto: api - Fix aligned ctx helper
        crypto: hmac - Prehash ipad/opad
        ...
      332a3392
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6 · a9c86d42
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: (377 commits)
        ASoC: au1x: PSC-AC97 bugfixes
        ALSA: dummy - Increase MAX_PCM_SUBSTREAMS to 128
        ALSA: dummy - Add debug proc file
        ALSA: Add const prefix to proc helper functions
        ALSA: Re-export snd_pcm_format_name() function
        ALSA: hda - Use auto model for HP laptops with ALC268 codec
        ALSA: cs46xx - Fix minimum period size
        ASoC: Fix WM835x Out4 capture enumeration
        ALSA: Remove unneeded ifdef from sound/core.h
        ALSA: Remove struct snd_monitor_file from public sound/core.h
        ASoC: Remove unuused hw_read_t
        sound: oxygen: work around MCE when changing volume
        ALSA: dummy - Fake buffer allocations
        ALSA: hda/realtek: Added support for CLEVO M540R subsystem, 6 channel + digital
        ASoC: fix pxa2xx-ac97.c breakage
        ALSA: dummy - Fix the timer calculation in systimer mode
        ALSA: dummy - Add more description
        ALSA: dummy - Better jiffies handling
        ALSA: dummy - Support high-res timer mode
        ALSA: Release v1.0.21
        ...
      a9c86d42
    • Linus Torvalds's avatar
      Merge branch 'writeback' of git://git.kernel.dk/linux-2.6-block · a12e4d30
      Linus Torvalds authored
      * 'writeback' of git://git.kernel.dk/linux-2.6-block:
        writeback: check for registered bdi in flusher add and inode dirty
        writeback: add name to backing_dev_info
        writeback: add some debug inode list counters to bdi stats
        writeback: get rid of pdflush completely
        writeback: switch to per-bdi threads for flushing data
        writeback: move dirty inodes from super_block to backing_dev_info
        writeback: get rid of generic_sync_sb_inodes() export
      a12e4d30
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6 · 89af571c
      Linus Torvalds authored
      * 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6: (54 commits)
        [S390] tape: Use pr_xxx instead of dev_xxx in shared driver code
        [S390] Wire up page fault events for software perf counters.
        [S390] Remove smp_cpu_not_running.
        [S390] Get rid of cpuid.h header file.
        [S390] Limit cpu detection to 256 physical cpus.
        [S390] tape: Fix device online messages
        [S390] Enable guest page hinting by default.
        [S390] use generic scatterlist.h
        [S390] s390dbf: Add description for usage of "%s" in sprintf events
        [S390] Initialize __LC_THREAD_INFO early.
        [S390] fix recursive locking on page_table_lock
        [S390] kvm: use console_initcall() to initialize s390 virtio console
        [S390] tape: reversed order of labels
        [S390] hypfs: Use "%u" instead of "%d" for unsigned ints in snprintf
        [S390] kernel: Print an error message if kernel NSS cannot be defined
        [S390] zcrypt: Free ap_device if dev_set_name fails.
        [S390] zcrypt: Use spin_lock_bh in suspend callback
        [S390] xpram: Remove checksum validation for suspend/resume
        [S390] vmur: Invalid allocation sequence for vmur class
        [S390] hypfs: remove useless variable qname
        ...
      89af571c
    • Linus Torvalds's avatar
      Merge branch 'kmemleak' of git://linux-arm.org/linux-2.6 · 1b195b17
      Linus Torvalds authored
      * 'kmemleak' of git://linux-arm.org/linux-2.6:
        kmemleak: Improve the "Early log buffer exceeded" error message
        kmemleak: fix sparse warning for static declarations
        kmemleak: fix sparse warning over overshadowed flags
        kmemleak: move common painting code together
        kmemleak: add clear command support
        kmemleak: use bool for true/false questions
        kmemleak: Do no create the clean-up thread during kmemleak_disable()
        kmemleak: Scan all thread stacks
        kmemleak: Don't scan uninitialized memory when kmemcheck is enabled
        kmemleak: Ignore the aperture memory hole on x86_64
        kmemleak: Printing of the objects hex dump
        kmemleak: Do not report alloc_bootmem blocks as leaks
        kmemleak: Save the stack trace for early allocations
        kmemleak: Mark the early log buffer as __initdata
        kmemleak: Dump object information on request
        kmemleak: Allow rescheduling during an object scanning
      1b195b17
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband · 2490138c
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband: (48 commits)
        RDMA/iwcm: Reject the connection when the cm_id is destroyed
        RDMA/cxgb3: Clean up properly on FW mismatch failures
        RDMA/cxgb3: Don't ignore insert_handle() failures
        MAINTAINERS: InfiniBand/RDMA mailing list transition to vger
        IB/mad: Allow tuning of QP0 and QP1 sizes
        IB/mad: Fix possible lock-lock-timer deadlock
        RDMA/nes: Map MTU to IB_MTU_* and correctly report link state
        RDMA/nes: Rework the disconn routine for terminate and flushing
        RDMA/nes: Use the flush code to fill in cqe error
        RDMA/nes: Make poll_cq return correct number of wqes during flush
        RDMA/nes: Use flush mechanism to set status for wqe in error
        RDMA/nes: Implement Terminate Packet
        RDMA/nes: Add CQ error handling
        RDMA/nes: Clean out CQ completions when QP is destroyed
        RDMA/nes: Change memory allocation for cqp request to GFP_ATOMIC
        RDMA/nes: Allocate work item for disconnect event handling
        RDMA/nes: Update refcnt during disconnect
        IB/mthca: Don't allow userspace open while recovering from catastrophic error
        IB/mthca: Distinguish multiple devices in /proc/interrupts
        IB/mthca: Annotate CQ locking
        ...
      2490138c
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of... · f6f79190
      Linus Torvalds authored
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6: (57 commits)
        binfmt_elf: fix PT_INTERP bss handling
        TPM: Fixup boot probe timeout for tpm_tis driver
        sysfs: Add labeling support for sysfs
        LSM/SELinux: inode_{get,set,notify}secctx hooks to access LSM security context information.
        VFS: Factor out part of vfs_setxattr so it can be called from the SELinux hook for inode_setsecctx.
        KEYS: Add missing linux/tracehook.h #inclusions
        KEYS: Fix default security_session_to_parent()
        Security/SELinux: includecheck fix kernel/sysctl.c
        KEYS: security_cred_alloc_blank() should return int under all circumstances
        IMA: open new file for read
        KEYS: Add a keyctl to install a process's session keyring on its parent [try #6]
        KEYS: Extend TIF_NOTIFY_RESUME to (almost) all architectures [try #6]
        KEYS: Do some whitespace cleanups [try #6]
        KEYS: Make /proc/keys use keyid not numread as file position [try #6]
        KEYS: Add garbage collection for dead, revoked and expired keys. [try #6]
        KEYS: Flag dead keys to induce EKEYREVOKED [try #6]
        KEYS: Allow keyctl_revoke() on keys that have SETATTR but not WRITE perm [try #6]
        KEYS: Deal with dead-type keys appropriately [try #6]
        CRED: Add some configurable debugging [try #6]
        selinux: Support for the new TUN LSM hooks
        ...
      f6f79190
    • Catalin Marinas's avatar
      kmemleak: Improve the "Early log buffer exceeded" error message · addd72c1
      Catalin Marinas authored
      Based on a suggestion from Jaswinder, clarify what the user would need
      to do to avoid this error message from kmemleak.
      Reported-by: default avatarJaswinder Singh Rajput <jaswinder@kernel.org>
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      addd72c1
    • Michael Holzheu's avatar
      [S390] tape: Use pr_xxx instead of dev_xxx in shared driver code · 59e36927
      Michael Holzheu authored
      For messages from the tape core that is shared between the 3590 and 34xx
      tape disciplines, we want to have the "tape" prefix instead of "tape_3590"
      or "tape_34xx". In order to fix this, we now use the pr_xxx printk macros.
      Signed-off-by: default avatarMichael Holzheu <holzheu@linux.vnet.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      59e36927
    • Heiko Carstens's avatar
    • Heiko Carstens's avatar
      [S390] Remove smp_cpu_not_running. · 5c0b912e
      Heiko Carstens authored
      smp_cpu_not_running() and cpu_stopped() are doing the same.
      Remove one and also get rid of the last hard_smp_processor_id() leftover.
      Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      5c0b912e
    • Heiko Carstens's avatar
      [S390] Get rid of cpuid.h header file. · e86a6ed6
      Heiko Carstens authored
      Merge cpuid.h header file into cpu.h.
      While at it convert from typedef to struct declaration and also
      convert cio code to use proper lowcore structure instead of casts.
      Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      e86a6ed6