~ubuntu-branches/ubuntu/lucid/linux-rt/lucid

« back to all changes in this revision

Viewing changes to arch/s390/kernel/module.c

  • Committer: Bazaar Package Importer
  • Author(s): Luke Yelavich
  • Date: 2009-08-05 23:00:52 UTC
  • Revision ID: james.westby@ubuntu.com-20090805230052-7xedvqcyk9dnnxb2
Tags: 2.6.31-1.1
New upstream release

Show diffs side-by-side

added added

removed removed

Lines of Context:
56
56
void module_free(struct module *mod, void *module_region)
57
57
{
58
58
        vfree(module_region);
59
 
        /* FIXME: If module_region == mod->init_region, trim exception
60
 
           table entries. */
61
59
}
62
60
 
63
61
static void
310
308
                        info->plt_initialized = 1;
311
309
                }
312
310
                if (r_type == R_390_PLTOFF16 ||
313
 
                    r_type == R_390_PLTOFF32
314
 
                    || r_type == R_390_PLTOFF64
315
 
                        )
 
311
                    r_type == R_390_PLTOFF32 ||
 
312
                    r_type == R_390_PLTOFF64)
316
313
                        val = me->arch.plt_offset - me->arch.got_offset +
317
314
                                info->plt_offset + rela->r_addend;
318
 
                else
319
 
                        val =  (Elf_Addr) me->module_core +
320
 
                                me->arch.plt_offset + info->plt_offset + 
321
 
                                rela->r_addend - loc;
 
315
                else {
 
316
                        if (!((r_type == R_390_PLT16DBL &&
 
317
                               val - loc + 0xffffUL < 0x1ffffeUL) ||
 
318
                              (r_type == R_390_PLT32DBL &&
 
319
                               val - loc + 0xffffffffULL < 0x1fffffffeULL)))
 
320
                                val = (Elf_Addr) me->module_core +
 
321
                                        me->arch.plt_offset +
 
322
                                        info->plt_offset;
 
323
                        val += rela->r_addend - loc;
 
324
                }
322
325
                if (r_type == R_390_PLT16DBL)
323
326
                        *(unsigned short *) loc = val >> 1;
324
327
                else if (r_type == R_390_PLTOFF16)