COMPATIBLE_IOCTL(BIODASDRLSE)
COMPATIBLE_IOCTL(BIODASDSLCK)
COMPATIBLE_IOCTL(BIODASDINFO)
+COMPATIBLE_IOCTL(BIODASDINFO2)
COMPATIBLE_IOCTL(BIODASDFMT)
+COMPATIBLE_IOCTL(BIODASDPRRST)
+COMPATIBLE_IOCTL(BIODASDQUIESCE)
+COMPATIBLE_IOCTL(BIODASDRESUME)
+COMPATIBLE_IOCTL(BIODASDPRRD)
+COMPATIBLE_IOCTL(BIODASDPSRD)
+COMPATIBLE_IOCTL(BIODASDGATTR)
+COMPATIBLE_IOCTL(BIODASDSATTR)
+
#endif
#if defined(CONFIG_S390_TAPE) || defined(CONFIG_S390_TAPE_MODULE)
put_user(reclen, &dirent->d_reclen);
copy_to_user(dirent->d_name, name, namlen);
put_user(0, dirent->d_name + namlen);
- ((char *) dirent) += reclen;
- buf->current_dir = dirent;
+ buf->current_dir = ((void *)dirent) + reclen;
buf->count -= reclen;
return 0;
}
#include "compat_linux.h" /* needed for _psw_t32 */
-typedef struct
-{
+typedef struct {
__u32 cr[3];
-} per_cr_words32 __attribute__((packed));
+} per_cr_words32;
-typedef struct
-{
+typedef struct {
__u16 perc_atmid; /* 0x096 */
__u32 address; /* 0x098 */
__u8 access_id; /* 0x0a1 */
-} per_lowcore_words32 __attribute__((packed));
+} per_lowcore_words32;
-typedef struct
-{
+typedef struct {
union {
per_cr_words32 words;
- } control_regs __attribute__((packed));
+ } control_regs;
/*
* Use these flags instead of setting em_instruction_fetch
* directly they are used so that single stepping can be
union {
per_lowcore_words32 words;
} lowcore;
-} per_struct32 __attribute__((packed));
+} per_struct32;
struct user_regs_struct32
{
EXPORT_SYMBOL_NOVERS(_oi_bitmap);
EXPORT_SYMBOL_NOVERS(_ni_bitmap);
EXPORT_SYMBOL_NOVERS(_zb_findmap);
+EXPORT_SYMBOL_NOVERS(_sb_findmap);
EXPORT_SYMBOL_NOVERS(__copy_from_user_asm);
EXPORT_SYMBOL_NOVERS(__copy_to_user_asm);
EXPORT_SYMBOL_NOVERS(__clear_user_asm);
EXPORT_SYMBOL_NOVERS(do_call_softirq);
EXPORT_SYMBOL(sys_wait4);
EXPORT_SYMBOL(cpcmd);
-EXPORT_SYMBOL(smp_call_function_on);
EXPORT_SYMBOL(sys_ioctl);
put_cpu();
return 0;
}
+EXPORT_SYMBOL(smp_call_function_on);
static inline void do_send_stop(void)
{
- u32 dummy;
+ unsigned long dummy;
int i, rc;
/* stop all processors */
static inline void do_store_status(void)
{
unsigned long low_core_addr;
- u32 dummy;
+ unsigned long dummy;
int i, rc;
/* store status of all processors in their lowcores (real 0) */
if (lowcore_ptr[i] == NULL || async_stack == 0ULL)
panic("smp_boot_cpus failed to allocate memory\n");
- memcpy(lowcore_ptr[i], &S390_lowcore, sizeof(struct _lowcore));
+ *(lowcore_ptr[i]) = S390_lowcore;
lowcore_ptr[i]->async_stack = async_stack + (ASYNC_SIZE);
}
set_prefix((u32)(unsigned long) lowcore_ptr[smp_processor_id()]);
pgm_check_table[9] = ÷_exception;
pgm_check_table[0x10] = &do_segment_exception;
pgm_check_table[0x11] = &do_page_exception;
- pgm_check_table[0x10] = &do_segment_exception;
- pgm_check_table[0x11] = &do_page_exception;
pgm_check_table[0x12] = &translation_exception;
pgm_check_table[0x13] = &special_op_exception;
#ifndef CONFIG_ARCH_S390X
pa->index = 0;
*list = pa;
}
- if (page < 0x80000000UL)
- diag10(page);
+ diag10(page);
pa->pages[pa->index++] = page;
(*counter)++;
pages--;
void diag10(unsigned long addr)
{
-#ifdef __s390x__
- if (addr >= 0x80000000)
+ if (addr >= 0x7ff00000)
return;
+#ifdef __s390x__
asm volatile ("sam31\n\t"
"diag %0,%0,0x10\n\t"
"sam64" : : "a" (addr) );
typedef s32 compat_daddr_t;
typedef u32 compat_caddr_t;
typedef __kernel_fsid_t compat_fsid_t;
+typedef s32 compat_timer_t;
typedef s32 compat_int_t;
typedef s32 compat_long_t;
* Signal processor with parameter and return status
*/
extern __inline__ sigp_ccode
-signal_processor_ps(__u32 *statusptr, unsigned long parameter,
+signal_processor_ps(unsigned long *statusptr, unsigned long parameter,
__u16 cpu_addr, sigp_order_code order_code)
{
sigp_ccode ccode;