~ubuntu-branches/ubuntu/wily/linux-ti-omap4/wily

« back to all changes in this revision

Viewing changes to drivers/xen/events.c

  • Committer: Package Import Robot
  • Author(s): Paolo Pisati, Paolo Pisati
  • Date: 2013-07-11 18:35:20 UTC
  • Revision ID: package-import@ubuntu.com-20130711183520-htnf1x4y5r11hndr
Tags: 3.5.0-229.42
* Release Tracking Bug
  - LP: #1199276

[ Paolo Pisati ]

* [Config] CONFIG_ATH9K_LEGACY_RATE_CONTROL is not set

Show diffs side-by-side

added added

removed removed

Lines of Context:
1267
1267
{
1268
1268
        int start_word_idx, start_bit_idx;
1269
1269
        int word_idx, bit_idx;
1270
 
        int i;
 
1270
        int i, irq;
1271
1271
        int cpu = get_cpu();
1272
1272
        struct shared_info *s = HYPERVISOR_shared_info;
1273
1273
        struct vcpu_info *vcpu_info = __this_cpu_read(xen_vcpu);
1275
1275
 
1276
1276
        do {
1277
1277
                unsigned long pending_words;
 
1278
                unsigned long pending_bits;
 
1279
                struct irq_desc *desc;
1278
1280
 
1279
1281
                vcpu_info->evtchn_upcall_pending = 0;
1280
1282
 
1285
1287
                /* Clear master flag /before/ clearing selector flag. */
1286
1288
                wmb();
1287
1289
#endif
 
1290
                if ((irq = per_cpu(virq_to_irq, cpu)[VIRQ_TIMER]) != -1) {
 
1291
                        int evtchn = evtchn_from_irq(irq);
 
1292
                        word_idx = evtchn / BITS_PER_LONG;
 
1293
                        pending_bits = evtchn % BITS_PER_LONG;
 
1294
                        if (active_evtchns(cpu, s, word_idx) & (1ULL << pending_bits)) {
 
1295
                                desc = irq_to_desc(irq);
 
1296
                                if (desc)
 
1297
                                        generic_handle_irq_desc(irq, desc);
 
1298
                        }
 
1299
                }
 
1300
 
1288
1301
                pending_words = xchg(&vcpu_info->evtchn_pending_sel, 0);
1289
1302
 
1290
1303
                start_word_idx = __this_cpu_read(current_word_idx);
1293
1306
                word_idx = start_word_idx;
1294
1307
 
1295
1308
                for (i = 0; pending_words != 0; i++) {
1296
 
                        unsigned long pending_bits;
1297
1309
                        unsigned long words;
1298
1310
 
1299
1311
                        words = MASK_LSBS(pending_words, word_idx);
1322
1334
 
1323
1335
                        do {
1324
1336
                                unsigned long bits;
1325
 
                                int port, irq;
1326
 
                                struct irq_desc *desc;
 
1337
                                int port;
1327
1338
 
1328
1339
                                bits = MASK_LSBS(pending_bits, bit_idx);
1329
1340