mirror of
https://github.com/torvalds/linux.git
synced 2024-11-11 06:31:49 +00:00
asm-generic/ia64 fixes, mark as orphaned
Commit2b49ddcef2
("ia64: convert to legacy_timer_tick") from my timer series I merged through the asm-generic tree caused a regression on all ia64 machines, as bisected by Adrian Glaubitz. Tony Luck is no longer really working on ia64, so instead of merging the fix through his tree, we ended up deciding that I'd merge the fix myself along a patch to mark the architecture as Orphaned and a compile time warning fix I made while working on the regression. Signed-off-by: Arnd Bergmann <arnd@arndb.de> -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmAS2WIACgkQmmx57+YA GNmXYA/9GJU7n3FJZQ+QVR2KQEBQfmMPUddWNzr8jNh9h19QQrSw3xVPRy5zHMwt kh0Jv/3CXAH1HelKw2UyTLTCiptjCKf7tBgAgklGTccxSvNJc1AKDRYxKGu8m5YI qF0WQiBZk95bA20G9JUOEX4Z/7chmcqPB4OQLDIAXdI5G1mUgXqQb+G+aRlPbTkG PSwZAxtU5H+//NvOfsD21yw4EVdonjR5nnhQthNo2X2mHuB2uAGa3zWFlKSoWSA5 M6aiUu5opMA4OAE5t15sGeR/FvBkYrV1kSS9IaCYSsEIV+Chkz/dfgEifzvyW92r 59xMwYTP9T55tSpb/Xrr2OP2htTKqRPHgKouSdRJbIctSxYfPPoNK6HwQat6Zmjy zxD0/2/6HcFkCBRpQCzzIM6C+ttBpSeSfqcfoQhqEXsoqPab0xvKWaIxD9MJ7v6g Kl/w0/ZYEZWMfOUO3xFwr2jYs6VP+n9Rz50uJ1yKqk2OdU/JKpcj+ZqLIYKkCeOt XB2DoQIPpGyF3sxoQHoXllsrnYyHrhlgaRc1uudEwPMtzns1sO0zfmplDbAwMO8t vZ4w+tHJpMSUvdSX29nxPWl1SACqRnn2y3036Hm82blDTDOqDbhhlUKL9Loab1Rp k08DGMJjmuQAIh0dOaJEz4LzMlNMPwwKUHzO9dniYTpjCNa7moY= =/6IF -----END PGP SIGNATURE----- Merge tag 'asm-generic-fixes-v5.11' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic Pull ia64 fixes from Arnd Bergmann: "asm-generic/ia64 fixes, and mark as orphaned Commit2b49ddcef2
("ia64: convert to legacy_timer_tick") from my timer series I merged through the asm-generic tree caused a regression on all ia64 machines, as bisected by Adrian Glaubitz. Tony Luck is no longer really working on ia64, so instead of merging the fix through his tree, we ended up deciding that I'd merge the fix myself along a patch to mark the architecture as Orphaned and a compile time warning fix I made while working on the regression" [ HPE no longer accepts orders for new Itanium hardware, and Intel stopped accepting orders a year ago. While intel is still officially shipping chips until July 29, 2021, it's unlikely that any such orders actually exist. It's dead, Jim. - Linus ] * tag 'asm-generic-fixes-v5.11' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic: ia64: Mark architecture as orphaned ia64: fix xchg() warning ia64: fix timer cleanup regression
This commit is contained in:
commit
228345bf98
@ -8433,11 +8433,8 @@ F: drivers/i3c/
|
||||
F: include/linux/i3c/
|
||||
|
||||
IA64 (Itanium) PLATFORM
|
||||
M: Tony Luck <tony.luck@intel.com>
|
||||
M: Fenghua Yu <fenghua.yu@intel.com>
|
||||
L: linux-ia64@vger.kernel.org
|
||||
S: Odd Fixes
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux.git
|
||||
S: Orphan
|
||||
F: Documentation/ia64/
|
||||
F: arch/ia64/
|
||||
|
||||
|
@ -54,7 +54,7 @@ extern void ia64_xchg_called_with_bad_pointer(void);
|
||||
})
|
||||
|
||||
#define xchg(ptr, x) \
|
||||
((__typeof__(*(ptr))) __xchg((unsigned long) (x), (ptr), sizeof(*(ptr))))
|
||||
({(__typeof__(*(ptr))) __xchg((unsigned long) (x), (ptr), sizeof(*(ptr)));})
|
||||
|
||||
/*
|
||||
* Atomic compare and exchange. Compare OLD with MEM, if identical,
|
||||
|
@ -171,30 +171,35 @@ void vtime_account_hardirq(struct task_struct *tsk)
|
||||
static irqreturn_t
|
||||
timer_interrupt (int irq, void *dev_id)
|
||||
{
|
||||
unsigned long cur_itm, new_itm, ticks;
|
||||
unsigned long new_itm;
|
||||
|
||||
if (cpu_is_offline(smp_processor_id())) {
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
new_itm = local_cpu_data->itm_next;
|
||||
cur_itm = ia64_get_itc();
|
||||
|
||||
if (!time_after(cur_itm, new_itm)) {
|
||||
if (!time_after(ia64_get_itc(), new_itm))
|
||||
printk(KERN_ERR "Oops: timer tick before it's due (itc=%lx,itm=%lx)\n",
|
||||
cur_itm, new_itm);
|
||||
ticks = 1;
|
||||
} else {
|
||||
ticks = DIV_ROUND_UP(cur_itm - new_itm,
|
||||
local_cpu_data->itm_delta);
|
||||
new_itm += ticks * local_cpu_data->itm_delta;
|
||||
ia64_get_itc(), new_itm);
|
||||
|
||||
while (1) {
|
||||
new_itm += local_cpu_data->itm_delta;
|
||||
|
||||
legacy_timer_tick(smp_processor_id() == time_keeper_id);
|
||||
|
||||
local_cpu_data->itm_next = new_itm;
|
||||
|
||||
if (time_after(new_itm, ia64_get_itc()))
|
||||
break;
|
||||
|
||||
/*
|
||||
* Allow IPIs to interrupt the timer loop.
|
||||
*/
|
||||
local_irq_enable();
|
||||
local_irq_disable();
|
||||
}
|
||||
|
||||
if (smp_processor_id() != time_keeper_id)
|
||||
ticks = 0;
|
||||
|
||||
legacy_timer_tick(ticks);
|
||||
|
||||
do {
|
||||
/*
|
||||
* If we're too close to the next clock tick for
|
||||
|
Loading…
Reference in New Issue
Block a user